2022-12-14 14:24:46 +01:00
|
|
|
{ pkgs, config, lib, ... }:
|
2021-11-23 11:17:26 +01:00
|
|
|
{
|
|
|
|
|
services.postgresql = {
|
|
|
|
|
enable = true;
|
2022-12-14 14:46:15 +01:00
|
|
|
package = lib.mkDefault pkgs.postgresql_15;
|
2022-09-22 21:50:15 +02:00
|
|
|
enableTCPIP = true;
|
2022-08-03 11:14:15 +02:00
|
|
|
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";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
2021-11-23 11:17:26 +01:00
|
|
|
};
|
2022-01-15 13:22:32 +01:00
|
|
|
|
|
|
|
|
services.postgresqlBackup = {
|
|
|
|
|
enable = true;
|
|
|
|
|
startAt = "*-*-* *:30:00";
|
|
|
|
|
compression = "zstd";
|
2022-07-19 12:13:40 +02:00
|
|
|
databases = [
|
|
|
|
|
"postgres"
|
|
|
|
|
];
|
2022-01-15 13:22:32 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
services.logrotate = {
|
2022-11-18 13:52:09 +01:00
|
|
|
settings = {
|
|
|
|
|
"${config.services.postgresqlBackup.location}/*.sql.zstd" = {
|
|
|
|
|
su = "postgres postgres";
|
|
|
|
|
rotate = 24;
|
|
|
|
|
frequency = "hourly";
|
|
|
|
|
dateext = true;
|
|
|
|
|
dateformat = "_%Y-%m-%d:%H";
|
|
|
|
|
extension = ".zstd";
|
|
|
|
|
};
|
2022-01-15 13:22:32 +01:00
|
|
|
};
|
|
|
|
|
};
|
2021-11-23 11:17:26 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# vim: set et ts=2 sw=2 ai:
|