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, ... }: { pkgs, lib, config, ... }:
let
fqdn = "mail.cochrun.xyz";
dn = "cochrun.xyz";
in
with lib; with lib;
{ {
mailserver = { services.caddy = {
enable = true; virtualHosts = {
fqdn = "mail.cochrun.xyz"; "mail.cochrun.xyz".extraConfig = ''
domains = [ "cochrun.xyz" ]; tls internal {
enableManageSieve = true; key_type rsa2048
mailDirectory = "/home/chris/mailserver/docker-data/mail-data"; }
mailboxes = { respond "Hello DMS"
Archive = { '' ;
auto = "subsribe"; };
specialUse = "Archive"; };
} mailserver = {
Drafts = { enable = true;
auto = "subscribe"; fqdn = fqdn;
specialUse = "Drafts"; domains = [ dn ];
}; enableManageSieve = true;
Junk = { mailDirectory = "/home/chris/mailserver/docker-data/mail-data";
auto = "subscribe"; mailboxes = {
specialUse = "Junk"; Archive = {
}; auto = "subsribe";
Sent = { specialUse = "Archive";
auto = "subscribe"; };
specialUse = "Sent"; Drafts = {
}; auto = "subscribe";
Trash = { specialUse = "Drafts";
auto = "no"; };
specialUse = "Trash"; 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 ../../modules/servers.nix
../../pkgs/base-packages.nix ../../pkgs/base-packages.nix
../../modules/audiobookshelf.nix ../../modules/audiobookshelf.nix
../../modules/mailserver.nix
# ../../modules/matrix.nix # ../../modules/matrix.nix
]; ];
@ -299,14 +300,6 @@
reverse_proxy http://127.0.0.1:3000 reverse_proxy http://127.0.0.1:3000
''; '';
}; };
virtualHosts = {
"mail.cochrun.xyz".extraConfig = ''
tls internal {
key_type rsa2048
}
respond "Hello DMS"
'' ;
};
virtualHosts = { virtualHosts = {
"jelly.cochrun.xyz".extraConfig = '' "jelly.cochrun.xyz".extraConfig = ''
reverse_proxy localhost:8096 reverse_proxy localhost:8096