{ 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;
}