summaryrefslogtreecommitdiff
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
- ''
- );
- };
-}