42 lines
970 B
Nix
42 lines
970 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let cfg = config.modules.services.mail;
|
|
in {
|
|
options.modules.services.mail = {
|
|
enable = lib.mkOption {
|
|
default = false;
|
|
example = true;
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
mailserver = {
|
|
enable = true;
|
|
fqdn = "mail.vimium.com";
|
|
domains = [ "vimium.com" ];
|
|
indexDir = "/var/lib/dovecot/indices";
|
|
|
|
certificateDomains = [
|
|
"imap.vimium.com"
|
|
"smtp.vimium.com"
|
|
];
|
|
certificateScheme = "acme-nginx";
|
|
|
|
fullTextSearch.enable = true;
|
|
|
|
loginAccounts = {
|
|
"jordan@vimium.com" = {
|
|
hashedPasswordFile = config.users.users.jordan.hashedPasswordFile;
|
|
};
|
|
};
|
|
|
|
extraVirtualAliases = {
|
|
"hostmaster@vimium.com" = "jordan@vimium.com";
|
|
"postmaster@vimium.com" = "jordan@vimium.com";
|
|
"webmaster@vimium.com" = "jordan@vimium.com";
|
|
"abuse@vimium.com" = "jordan@vimium.com";
|
|
};
|
|
};
|
|
};
|
|
}
|