about summary refs log tree commit diff
path: root/modules/nixos/postgresql.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/postgresql.nix')
-rw-r--r--modules/nixos/postgresql.nix98
1 files changed, 0 insertions, 98 deletions
diff --git a/modules/nixos/postgresql.nix b/modules/nixos/postgresql.nix
deleted file mode 100644
index 5081340..0000000
--- a/modules/nixos/postgresql.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  this,
-  ...
-}:
-with lib;
-let
-  cfg = config.nixfiles.modules.postgresql;
-in
-{
-  options.nixfiles.modules.postgresql = {
-    enable = mkEnableOption "PostgreSQL";
-
-    package = mkOption {
-      type = types.package;
-      default = pkgs.postgresql_15;
-      description = "PostgreSQL package to use.";
-    };
-
-    extraPostStart = mkOption {
-      type = with types; listOf str;
-      default = [ ];
-      description = ''
-        Additional post-startup commands.
-
-        This could be used to provide a crude interface to grant permissions and
-        such.
-      '';
-    };
-  };
-
-  config = mkIf cfg.enable {
-    assertions = [
-      {
-        assertion = any (x: x == "en_GB.UTF-8/UTF-8") config.i18n.supportedLocales;
-        message = "The locale must be available";
-      }
-    ];
-
-    ark.directories = [ config.services.postgresql.dataDir ];
-
-    services = {
-      postgresql = {
-        enable = true;
-
-        inherit (cfg) package;
-
-        # In hindsight, it was a poor choice to use ICU as a locale provider.
-        # Now each time ICU version is bumped, I need to carefully upgrade each
-        # database to match the version.
-        initdbArgs = [
-          "--encoding=UTF8"
-          "--locale-provider=icu"
-          "--icu-locale=en_GB@collation=posix"
-          "--locale=en_GB.UTF-8"
-          "--lc-collate=C"
-          "--lc-ctype=C"
-        ];
-
-        # This crutch is here because some services cannot work via a UNIX
-        # socket connection and I can't be bothered to configure proper
-        # authentication.
-        authentication = ''
-          local all all trust
-        '';
-      };
-
-      prometheus.exporters.postgres = {
-        enable = true;
-        listenAddress = mkDefault this.wireguard.ipv4.address;
-        port = mkDefault 9187;
-      };
-    };
-
-    systemd.services.postgresql.postStart = optionalString (
-      cfg.extraPostStart != [ ]
-    ) concatLines cfg.extraPostStart;
-
-    environment.sessionVariables.PSQLRC = toString (
-      pkgs.writeText "psqlrc" ''
-        \set QUIET 1
-
-        \timing
-        \x auto
-        \pset null '[NULL]'
-        \set PROMPT1 '%[%033[1m%]%M %n@%/%R%[%033[0m%]% λ '
-        \set PROMPT2 '    … > '
-        \set VERBOSITY verbose
-        \set HISTCONTROL ignoredups
-        \set HISTFILE /dev/null
-
-        \unset QUIET
-      ''
-    );
-  };
-}

Consider giving Nix/NixOS a try! <3