{flake, ...}: let inherit (flake.config.machines.devices) server; inherit (flake.config.services.instances) postgresql; service = postgresql; in { services = { postgresqlBackup = { enable = true; location = service.paths.path0; databases = ["mastodon" "nextcloud" "peertube" "forgejo" "wiki"]; }; postgresql = { enable = true; }; }; networking = { firewall = { allowedTCPPorts = [ service.ports.port0 ]; }; }; fileSystems."/var/lib/postgresql" = { device = service.paths.path0; fsType = "none"; options = ["bind"]; depends = [server.storage0.mount]; }; systemd.tmpfiles.rules = ["Z ${service.paths.path0} 700 ${service.name} ${service.name} -"]; users.users.${service.name}.extraGroups = ["nextcloud" "mastodon" "forgejo"]; system.activationScripts.postgresCommands = '' chown -R ${service.name}:${service.name} ${service.paths.path0} ''; }