{ pkgs, config, ... }: { services.postgresql = { enable = true; package = pkgs.postgresql_14; #ensureDatabases = [ "nextcloud" ]; #ensureUsers = [ # { # name = "nextcloud"; # ensurePermissions = { # "DATABASE nextcloud" = "ALL PRIVILEGES"; # }; # } #]; 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: