nixos-config/modules/postgresql.nix

45 lines
964 B
Nix

{ 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: