{ pkgs, lib, config, ... }:

let
  fqdn = "mail.cochrun.xyz";
  dn = "cochrun.xyz";
in
with lib;
{
  services.caddy = {
    virtualHosts = {
      "mail.cochrun.xyz".extraConfig = ''
        tls internal {
          key_type rsa2048
        } 
        respond "Hello DMS"
      '' ;
    };   
  };
  mailserver = {
    enable = true;
    fqdn = fqdn;
    domains = [ dn ];
    enableManageSieve = true;
    mailDirectory = "/home/chris/mailserver/docker-data/mail-data";
    mailboxes = {
      Archive = {
        auto = "subsribe";
        specialUse = "Archive";
      };
      Drafts = {
        auto = "subscribe";
        specialUse = "Drafts";
      };
      Junk = {
        auto = "subscribe";
        specialUse = "Junk";
      };
      Sent = {
        auto = "subscribe";
        specialUse = "Sent";
      };
      Trash = {
        auto = "no";
        specialUse = "Trash";
      };
    };
    useFsLayout = true;
    hierarchySeparator = "/";
    certificateScheme = "acme";
    certificateFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${fqdn}/${fqdn}.crt";
    keyFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${fqdn}/${fqdn}.key";
    loginAccounts = {
      "chris@cochrun.xyz" = {
        hashedPasswordFile = "/home/chris/mailp";
        aliases = [
          "postmaster@cochrun.xyz"
          "cxda@cochrun.xyz"
          "ceth@cochrun.xyz"
          "clocb@cochrun.xyz"
          "higdry@cochrun.xyz"
          "clin@cochrun.xyz"
        ];
      };
    };
  };
}