Fix db
This commit is contained in:
@@ -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 ''
|
systemd.services.postgresql.postStart = lib.mkAfter ''
|
||||||
${lib.concatMapStringsSep "\n" (name: ''
|
${lib.concatMapStringsSep "\n" (name: ''
|
||||||
$PSQL -tAc "ALTER DATABASE ${name}_db OWNER TO ${name}_user;"
|
$PSQL -tAc "ALTER DATABASE ${name}_db OWNER TO ${name}_user;"
|
||||||
|
|
||||||
if [ -f "${config.sops.secrets."${name}_pass".path}" ]; then
|
if [ -f "${config.sops.secrets."${name}_pass".path}" ]; then
|
||||||
PASS=$(cat "${config.sops.secrets."${name}_pass".path}")
|
PASS=$(cat "${config.sops.secrets."${name}_pass".path}")
|
||||||
$PSQL -tAc "ALTER USER ${name}_user WITH PASSWORD '$PASS';"
|
$PSQL -tAc "ALTER USER ${name}_user WITH PASSWORD '$PASS';"
|
||||||
fi
|
fi
|
||||||
'') allApps}
|
'') allApps}
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
{ config, pkgs, lib, ... }:{
|
{ config, pkgs, lib, ... }:{
|
||||||
imports = [ ./sops ./nftables ./openssh ./containers ];
|
imports = [ ./containers ./database ./nftables ./openssh ./sops ];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user