Wip Migrate podman

This commit is contained in:
soraefir
2026-05-06 01:05:32 +02:00
parent b2d040d414
commit fd7797c6e7
5 changed files with 65 additions and 20 deletions

View File

@@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
listNames = config.syscfg.server.db;
containerNames = lib.mapAttrsToList
(name: cfg: name)
(lib.filterAttrs (name: cfg: cfg.db or false) config.syscfg.server.containers);
allApps = lib.unique (listNames ++ containerNames);
in {
services.postgresql = {
enable = true;
ensureDatabases = map (name: "${name}_db") allApps;
ensureUsers = map (name: { name = "${name}_user"; }) allApps;
backup = {
enable = true;
location = "/var/lib/postgresql/backups";
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}
'';
}