{ config, lib, pkgs, ... }: {
  users.users.parsedmarc = {
    isSystemUser = true;
    createHome = true;
    home = "/services/parsedmarc";
    group = config.users.groups.clicks.name;
    shell = pkgs.bashInteractive;
  };
  sops.secrets = lib.pipe [ "imap_password" "maxmind_license_key" ] [
    (map (name: {
      inherit name;
      value = {
        mode = "0400";
        owner = config.users.users.parsedmarc.name;
        group = config.users.users.parsedmarc.group;
        sopsFile = ../../secrets/dmarc.json;
        format = "json";
      };
    }))
    builtins.listToAttrs
  ];

  services.parsedmarc = {
    enable = true;
    settings.imap = {
      host = "mail.clicks.codes";
      user = "dmarc@clicks.codes";
      password = { _secret = config.sops.secrets.imap_password.path; };
    };
    settings.smtp.to = [];
    settings.mailbox = {
      watch = true;
      delete = false;
    };
    settings.elasticsearch.hosts = lib.mkForce [ "http://localhost:9200" ];
  };
  services.geoipupdate.settings = {
    AccountID = 863877;
    LicenseKey = { _secret = config.sops.secrets.maxmind_license_key.path; };
  };
  systemd.services.geoipupdate-create-db-dir.script = lib.mkForce ''
    set -o errexit -o pipefail -o nounset -o errtrace
    shopt -s inherit_errexit

    mkdir -p ${config.services.geoipupdate.settings.DatabaseDirectory}
    chmod 0750 ${config.services.geoipupdate.settings.DatabaseDirectory}

    chgrp clicks ${config.services.geoipupdate.settings.DatabaseDirectory}
    # The license agreement does not allow us to let non-clicks users access the database
  '';
}
