dotfiles/nixos/modules/services/postgresql.nix
2024-10-19 18:22:29 -05:00

39 lines
955 B
Nix
Executable file

{flake, ...}: let
inherit (flake.config.system.device) server;
inherit (flake.config.service.instance) 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}
'';
}