{ pkgs, config, ... }: { services.postgresql = { enable = true; package = pkgs.postgresql_14; enableTCPIP = true; ensureUsers = [ { name = "zbx_monitor"; ensurePermissions = { "FUNCTION pg_catalog.pg_ls_dir(text)" = "EXECUTE"; "FUNCTION pg_catalog.pg_stat_file(text)" = "EXECUTE"; "FUNCTION pg_catalog.pg_ls_waldir()" = "EXECUTE"; }; } ]; }; services.postgresqlBackup = { enable = true; startAt = "*-*-* *:30:00"; compression = "zstd"; databases = [ "postgres" ]; }; services.logrotate = { paths.postgresqlBackup = { path = "${config.services.postgresqlBackup.location}/*.sql.zstd"; user = "postgres"; group = "postgres"; keep = 24; frequency = "hourly"; extraConfig = '' dateext dateformat _%Y-%m-%d:%H extension = .zstd ''; }; }; } # vim: set et ts=2 sw=2 ai: