{ config, lib, pkgs, ... }: { services.prometheus = { enable = true; webExternalUrl = "https://stats.hacc.space"; exporters = { dovecot = { enable = true; scopes = [ "user" "global" ]; socketPath = "/var/run/dovecot2/old-stats"; }; nginx.enable = true; node.enable = true; postfix = { enable = true; systemd.enable = true; }; rspamd.enable = true; }; scrapeConfigs = (lib.mapAttrsToList (name: val: { job_name = "${name}-${config.networking.hostName}"; static_configs = [{ targets = [ "localhost:${toString val.port}" ]; labels.host = config.networking.hostName; }]; } ) (lib.filterAttrs (_: val: val.enable) config.services.prometheus.exporters)); }; services.dovecot2.extraConfig = '' mail_plugins = $mail_plugins old_stats service old-stats { unix_listener old-stats { user = dovecot-exporter group = dovecot-exporter } } ''; services.nginx.statusPage = true; }