X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fmail%2Fdefault.nix;h=d3b2a25eba8fd44fd8a579794fdcf9a904f60d8c;hp=ac8ad8c88137387f97ff46bb8925df06c165ec64;hb=8415083eb6acc343dfa404dbbc12fa0171a48a20;hpb=8fa7ff2c63fb0722144bc90837512d9f8b8c929d diff --git a/modules/private/mail/default.nix b/modules/private/mail/default.nix index ac8ad8c..d3b2a25 100644 --- a/modules/private/mail/default.nix +++ b/modules/private/mail/default.nix @@ -1,21 +1,31 @@ { lib, pkgs, config, myconfig, ... }: { - config.security.acme.certs."mail" = config.services.myCertificates.certConfig // { - domain = "eldiron.immae.eu"; - extraDomains = let - zonesWithMx = builtins.filter (zone: - lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 - ) myconfig.env.dns.masterZones; - mxs = map (zone: "mx-1.${zone.name}") zonesWithMx; - in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); - }; - config.services.backup.profiles = { - mail = { - rootDir = "/var/lib"; - excludeFile = lib.mkAfter '' - + /var/lib/vhost - - /var/lib - ''; + imports = [ + ./milters.nix + ./postfix.nix + ./dovecot.nix + ./rspamd.nix + ]; + options.myServices.mail.enable = lib.mkEnableOption "enable Mail services"; + + config = lib.mkIf config.myServices.mail.enable { + security.acme.certs."mail" = config.myServices.certificates.certConfig // { + domain = "eldiron.immae.eu"; + extraDomains = let + zonesWithMx = builtins.filter (zone: + lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 + ) myconfig.env.dns.masterZones; + mxs = map (zone: "mx-1.${zone.name}") zonesWithMx; + in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); + }; + services.backup.profiles = { + mail = { + rootDir = "/var/lib"; + excludeFile = lib.mkAfter '' + + /var/lib/vhost + - /var/lib + ''; + }; }; }; }