42 lines
926 B
Nix
42 lines
926 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 = {
|
|
settings = {
|
|
"${config.services.postgresqlBackup.location}/*.sql.zstd" = {
|
|
su = "postgres postgres";
|
|
rotate = 24;
|
|
frequency = "hourly";
|
|
dateext = true;
|
|
dateformat = "_%Y-%m-%d:%H";
|
|
extension = ".zstd";
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
# vim: set et ts=2 sw=2 ai:
|