{ self, config, lib, pkgs, ... }: with self.lib.nginx; { services.prometheus = { enable = true; enableReload = true; retentionTime = "14d"; listenAddress = "10.10.0.1"; webExternalUrl = "https://prometheus.vapor.systems"; exporters = { postgres = { enable = true; }; }; globalConfig = { scrape_interval = "10s"; }; scrapeConfigs = [ { job_name = "node"; static_configs = [ { targets = [ "ettves:${toString config.services.prometheus.exporters.node.port}" ]; } { targets = [ "phaenn:${toString config.services.prometheus.exporters.node.port}" ]; } ]; } { job_name = "zfs"; static_configs = [ { targets = [ "ettves:${toString config.services.prometheus.exporters.zfs.port}" ]; } { targets = [ "phaenn:${toString config.services.prometheus.exporters.zfs.port}" ]; } ]; } { job_name = "smartctl"; static_configs = [ { targets = [ "ettves:${toString config.services.prometheus.exporters.smartctl.port}" ]; } { targets = [ "phaenn:${toString config.services.prometheus.exporters.smartctl.port}" ]; } ]; } { job_name = "postgres"; static_configs = [ { targets = [ "ettves:${toString config.services.prometheus.exporters.postgres.port}" ]; } ]; } { job_name = "nginx"; static_configs = [ { targets = [ "ettves:${toString config.services.prometheus.exporters.nginx.port}" ]; } { targets = [ "phaenn:${toString config.services.prometheus.exporters.nginx.port}" ]; } ]; } { job_name = "quassel"; static_configs = [ { targets = [ "localhost:${toString config.services.quassel.settings.metrics.port}" ]; } ]; } { job_name = "authentik"; static_configs = [ { targets = [ "ettves:9300" ]; } { targets = [ "ettves:9303" ]; } { targets = [ "ettves:9304" ]; } ]; } ]; }; services.nginx.statusPage = true; services.udev.extraRules = '' SUBSYSTEM=="nvme", KERNEL=="nvme[0-9]*", GROUP="disk" ''; security.acme.certs = { "vapor.systems" = { extraDomainNames = [ "*.vapor.systems" ]; }; }; services.nginx = { enable = true; virtualHosts = { "prometheus.vapor.systems" = (proxyDomain "vapor.systems" "http://10.10.0.1:9090/"); }; }; }