nix-configs/modules/services/postgres.nix
Lucy Hochkamp 28dc0896b9
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
ci/woodpecker/cron/dependency-pr Pipeline was successful
navidrome
2025-12-04 00:21:41 +01:00

40 lines
1 KiB
Nix

{
pkgs,
lib,
config,
...
}:
let
cfg = config.xyno.services.postgres;
in
{
options.xyno.services.postgres.enable = lib.mkEnableOption "enables postgres";
config = lib.mkIf cfg.enable {
services.postgresql = {
enable = true;
package = pkgs.postgresql_18;
enableJIT = true;
extensions = ps: with ps; [ timescaledb-apache ];
identMap = ''
# ArbitraryMapName systemUser DBUser
superuser_map root postgres
superuser_map postgres postgres
# Let other names login as themselves
superuser_map /^(.*)$ \1
'';
};
services.prometheus.exporters.postgres = lib.mkIf config.xyno.services.monitoring.enable {
enable = true;
};
xyno.services.monitoring.exporters.postgres = config.services.prometheus.exporters.postgres.port;
xyno.impermanence.directories = [ "/var/lib/postgresql" ];
services.borgmatic.settings.postgresql_databases = [
{
name = "all"; # gets run as root anyways so can log in
}
];
};
}