{ config, lib, pkgs, ... }: let cfg = config.vhack.postgresql; in { options.vhack.postgresql = { enable = lib.mkEnableOption "postgresql"; }; config = lib.mkIf cfg.enable { vhack.persist.directories = [ "/var/lib/postgresql" ]; vhack.services.backup = { exclude = [ "/var/lib/postgresql" # included in the db dump ]; backupPrepare.postgresql = '' ${lib.getExe pkgs.sudo} -u postgres \ ${lib.getExe' "pg_dumpall" pkgs.postgresql} \ --clean \ --if-exists \ --quote-all-identifiers | ${lib.getExe pkgs.xz} \ --compress \ -9 \ --extreme \ --threads=0 > /srv/db_backup.sql.xz ''; }; services.postgresql.enable = true; }; }