This commit is contained in:
soraefir
2026-05-06 01:24:32 +02:00
parent a8c8740b14
commit 4a86b856fb
2 changed files with 23 additions and 21 deletions

View File

@@ -10,26 +10,28 @@ let
allApps = lib.unique (listNames ++ containerNames); allApps = lib.unique (listNames ++ containerNames);
in { in {
services.postgresql = { config = lib.mkIf ( builtins.length allApps > 0) {
enable = true; services.postgresql = {
ensureDatabases = map (name: "${name}_db") allApps; enable = true;
ensureUsers = map (name: { name = "${name}_user"; }) allApps; ensureDatabases = map (name: "${name}_db") allApps;
backup = { ensureUsers = map (name: { name = "${name}_user"; }) allApps;
enable = true; backup = {
location = "/var/lib/postgresql/backups"; enable = true;
startAt = "-- 04:00:00"; # Runs every day at 4 AM location = "/var/lib/postgresql/backups";
backupAll = true; # Backs up all databases and roles startAt = "-- 04:00:00"; # Runs every day at 4 AM
backupAll = true; # Backs up all databases and roles
};
}; };
systemd.services.postgresql.postStart = lib.mkAfter ''
${lib.concatMapStringsSep "\n" (name: ''
$PSQL -tAc "ALTER DATABASE ${name}_db OWNER TO ${name}_user;"
if [ -f "${config.sops.secrets."${name}_pass".path}" ]; then
PASS=$(cat "${config.sops.secrets."${name}_pass".path}")
$PSQL -tAc "ALTER USER ${name}_user WITH PASSWORD '$PASS';"
fi
'') allApps}
'';
}; };
systemd.services.postgresql.postStart = lib.mkAfter ''
${lib.concatMapStringsSep "\n" (name: ''
$PSQL -tAc "ALTER DATABASE ${name}_db OWNER TO ${name}_user;"
if [ -f "${config.sops.secrets."${name}_pass".path}" ]; then
PASS=$(cat "${config.sops.secrets."${name}_pass".path}")
$PSQL -tAc "ALTER USER ${name}_user WITH PASSWORD '$PASS';"
fi
'') allApps}
'';
} }

View File

@@ -1,3 +1,3 @@
{ config, pkgs, lib, ... }:{ { config, pkgs, lib, ... }:{
imports = [ ./sops ./nftables ./openssh ./containers ]; imports = [ ./containers ./database ./nftables ./openssh ./sops ];
} }