2022-09-25 00:31:22 +02:00
|
|
|
{ pkgs, lib, ... }:
|
|
|
|
|
let
|
|
|
|
|
db = "zabbix";
|
|
|
|
|
version = "latest";
|
|
|
|
|
port = "8999";
|
|
|
|
|
domain = "zbx.mc-fucker.cool";
|
|
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
services.postgresql = {
|
|
|
|
|
ensureDatabases = [ db ];
|
|
|
|
|
ensureUsers = [
|
|
|
|
|
{
|
|
|
|
|
name = db;
|
|
|
|
|
ensurePermissions = {
|
|
|
|
|
"DATABASE ${db}" = "ALL PRIVILEGES";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
extraPlugins = [ (pkgs.callPackage ../packages/timescaledb/timescaledb.nix {}) ];
|
|
|
|
|
settings = {
|
|
|
|
|
shared_preload_libraries = "timescaledb";
|
|
|
|
|
};
|
|
|
|
|
authentication = "host ${db} ${db} zabbix-server.mc-fucker.vpn.mc-fucker.cool md5";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
services.zabbixServer = {
|
|
|
|
|
enable = true;
|
|
|
|
|
database = {
|
|
|
|
|
createLocally = false;
|
|
|
|
|
socket = "/run/postgresql";
|
|
|
|
|
passwordFile = /etc/nixos/keys/zabbix_db.key;
|
|
|
|
|
};
|
|
|
|
|
package = (pkgs.callPackages ../packages/zabbix/server.nix { postgresqlSupport = true; }).${version};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
services.zabbixWeb = {
|
|
|
|
|
enable = true;
|
|
|
|
|
package = (pkgs.callPackages ../packages/zabbix/web.nix {}).${version};
|
|
|
|
|
database = {
|
|
|
|
|
socket = "/run/postgresql";
|
|
|
|
|
};
|
|
|
|
|
virtualHost = {
|
|
|
|
|
hostName = domain;
|
|
|
|
|
adminAddr = "noreply@mc-fucker.cool";
|
|
|
|
|
listen = [
|
|
|
|
|
{
|
|
|
|
|
port = (lib.strings.toInt port);
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
services.nginx.virtualHosts.${domain} = {
|
|
|
|
|
forceSSL = true;
|
|
|
|
|
enableACME = true;
|
|
|
|
|
locations."/" = {
|
|
|
|
|
proxyPass = "http://localhost:${port}";
|
|
|
|
|
};
|
2022-10-30 15:51:48 +01:00
|
|
|
extraConfig = ''
|
|
|
|
|
access_log /var/log/nginx/${domain}_access.log;
|
|
|
|
|
error_log /var/log/nginx/${domain}_error.log;
|
|
|
|
|
'';
|
2022-09-25 00:31:22 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# vim: set et ts=2 sw=2 ai:
|