setting up nix mailserver

This commit is contained in:
Chris Cochrun 2024-12-26 13:36:57 -06:00
parent 4d7f393319
commit 6a5c8eeda9
2 changed files with 59 additions and 52 deletions

View file

@ -1,52 +1,66 @@
{ pkgs, lib, config, ... }:
let
fqdn = "mail.cochrun.xyz";
dn = "cochrun.xyz";
in
with lib;
{
mailserver = {
enable = true;
fqdn = "mail.cochrun.xyz";
domains = [ "cochrun.xyz" ];
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";
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"
];
};
};
};
useFsLayout = true;
hierarchySeparator = "/";
certificateScheme = "acme";
certificateFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.cochrun.xyz/mail.cochrun.xyz.crt";
keyFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.cochrun.xyz/mail.cochrun.xyz.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"
]
}
}
}
}

View file

@ -8,6 +8,7 @@
../../modules/servers.nix
../../pkgs/base-packages.nix
../../modules/audiobookshelf.nix
../../modules/mailserver.nix
# ../../modules/matrix.nix
];
@ -299,14 +300,6 @@
reverse_proxy http://127.0.0.1:3000
'';
};
virtualHosts = {
"mail.cochrun.xyz".extraConfig = ''
tls internal {
key_type rsa2048
}
respond "Hello DMS"
'' ;
};
virtualHosts = {
"jelly.cochrun.xyz".extraConfig = ''
reverse_proxy localhost:8096