nixos-config/profiles/servers/mailserver.nix
2021-10-31 15:51:17 +03:00

113 lines
3.2 KiB
Nix

{ pkgs, config, lib, inputs, ... }:
let
module = toString inputs.simple-nixos-mailserver;
in {
imports = [ module ];
secrets.mailserver = {
owner = "dovecot2:cert";
services = [ "dovecot2" ];
};
secrets.sasl_passwd = {
permissions = "444";
};
security.acme = {
email = "ataraxiadev@ataraxiadev.com";
acceptTerms = true;
certs."mail.ataraxiadev.com" = { };
};
services.postfix = {
relayHost = "smtp.email.eu-zurich-1.oci.oraclecloud.com";
relayPort = 587;
enableSubmission = true;
submissionOptions = {
smtp_tls_security_level = "may";
smtp_sasl_auth_enable = "yes";
smtp_sasl_password_maps = "hash:/var/lib/postfix/conf/sasl_passwd";
smtp_sasl_security_options = "";
};
mapFiles = { sasl_passwd = config.secrets.sasl_passwd.decrypted; };
# dnsBlacklists = [
# "all.s5h.net"
# "b.barracudacentral.org"
# "bl.spamcop.net"
# "blacklist.woody.ch"
# "bogons.cymru.com"
# "cbl.abuseat.org"
# "combined.abuse.ch"
# "db.wpbl.info"
# "dnsbl-1.uceprotect.net"
# "dnsbl-2.uceprotect.net"
# "dnsbl-3.uceprotect.net"
# "dnsbl.anticaptcha.net"
# "dnsbl.dronebl.org"
# "dnsbl.inps.de"
# "dnsbl.sorbs.net"
# "dnsbl.spfbl.net"
# "drone.abuse.ch"
# "duinv.aupads.org"
# "dul.dnsbl.sorbs.net"
# "dyna.spamrats.com"
# "dynip.rothen.com"
# "http.dnsbl.sorbs.net"
# "ips.backscatterer.org"
# "ix.dnsbl.manitu.net"
# "korea.services.net"
# "misc.dnsbl.sorbs.net"
# "noptr.spamrats.com"
# "orvedb.aupads.org"
# "pbl.spamhaus.org"
# "proxy.bl.gweep.ca"
# "psbl.surriel.com"
# "relays.bl.gweep.ca"
# "relays.nether.net"
# "sbl.spamhaus.org"
# "singular.ttk.pte.hu"
# "smtp.dnsbl.sorbs.net"
# "socks.dnsbl.sorbs.net"
# "spam.abuse.ch"
# "spam.dnsbl.anonmails.de"
# "spam.dnsbl.sorbs.net"
# "spam.spamrats.com"
# "spambot.bls.digibase.ca"
# "spamrbl.imp.ch"
# "spamsources.fabel.dk"
# "ubl.lashback.com"
# "ubl.unsubscore.com"
# "virus.rbl.jp"
# "web.dnsbl.sorbs.net"
# "wormrbl.imp.ch"
# "xbl.spamhaus.org"
# "z.mailspike.net"
# "zen.spamhaus.org"
# "zombie.dnsbl.sorbs.net"
# ];
# dnsBlacklistOverrides = ''
# ataraxiadev.com OK
# 192.168.0.0/16 OK
# ${lib.concatMapStringsSep "\n" (machine: "${machine}.lan OK") (builtins.attrNames inputs.self.nixosConfigurations)}
# '';
};
mailserver = {
enable = true;
openFirewall = true;
fqdn = "mail.ataraxiadev.com";
domains = [ "ataraxiadev.com" ];
loginAccounts = {
"ataraxiadev@ataraxiadev.com" = {
aliases =
[ "ataraxiadev" "admin@ataraxiadev.com" "admin" "root@ataraxiadev.com" "root" ];
hashedPasswordFile = config.secrets.mailserver.decrypted;
};
};
localDnsResolver = false;
certificateScheme = 1;
# certificateFile = config.secrets."ataraxiadev.com.pem".decrypted;
# keyFile = config.secrets."ataraxiadev.com.key".decrypted;
enableImap = true;
enableImapSsl = true;
virusScanning = false;
};
}