setting up nix mailserver
This commit is contained in:
parent
4d7f393319
commit
6a5c8eeda9
|
@ -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;
|
||||||
|
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";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
Junk = {
|
useFsLayout = true;
|
||||||
auto = "subscribe";
|
hierarchySeparator = "/";
|
||||||
specialUse = "Junk";
|
certificateScheme = "acme";
|
||||||
};
|
certificateFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${fqdn}/${fqdn}.crt";
|
||||||
Sent = {
|
keyFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${fqdn}/${fqdn}.key";
|
||||||
auto = "subscribe";
|
loginAccounts = {
|
||||||
specialUse = "Sent";
|
"chris@cochrun.xyz" = {
|
||||||
};
|
hashedPasswordFile = "/home/chris/mailp";
|
||||||
Trash = {
|
aliases = [
|
||||||
auto = "no";
|
"postmaster@cochrun.xyz"
|
||||||
specialUse = "Trash";
|
"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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue