diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-10-18 19:43:39 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-10-18 19:43:39 +0200 |
commit | 8415083eb6acc343dfa404dbbc12fa0171a48a20 (patch) | |
tree | d83f54c99763ae49076bf3071449595b6ccae133 /modules/private/mail/default.nix | |
parent | 8fa7ff2c63fb0722144bc90837512d9f8b8c929d (diff) | |
download | Nix-8415083eb6acc343dfa404dbbc12fa0171a48a20.tar.gz Nix-8415083eb6acc343dfa404dbbc12fa0171a48a20.tar.zst Nix-8415083eb6acc343dfa404dbbc12fa0171a48a20.zip |
Add new machine to nixops
Diffstat (limited to 'modules/private/mail/default.nix')
-rw-r--r-- | modules/private/mail/default.nix | 42 |
1 files changed, 26 insertions, 16 deletions
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 @@ | |||
1 | { lib, pkgs, config, myconfig, ... }: | 1 | { lib, pkgs, config, myconfig, ... }: |
2 | { | 2 | { |
3 | config.security.acme.certs."mail" = config.services.myCertificates.certConfig // { | 3 | imports = [ |
4 | domain = "eldiron.immae.eu"; | 4 | ./milters.nix |
5 | extraDomains = let | 5 | ./postfix.nix |
6 | zonesWithMx = builtins.filter (zone: | 6 | ./dovecot.nix |
7 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 | 7 | ./rspamd.nix |
8 | ) myconfig.env.dns.masterZones; | 8 | ]; |
9 | mxs = map (zone: "mx-1.${zone.name}") zonesWithMx; | 9 | options.myServices.mail.enable = lib.mkEnableOption "enable Mail services"; |
10 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | 10 | |
11 | }; | 11 | config = lib.mkIf config.myServices.mail.enable { |
12 | config.services.backup.profiles = { | 12 | security.acme.certs."mail" = config.myServices.certificates.certConfig // { |
13 | mail = { | 13 | domain = "eldiron.immae.eu"; |
14 | rootDir = "/var/lib"; | 14 | extraDomains = let |
15 | excludeFile = lib.mkAfter '' | 15 | zonesWithMx = builtins.filter (zone: |
16 | + /var/lib/vhost | 16 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 |
17 | - /var/lib | 17 | ) myconfig.env.dns.masterZones; |
18 | ''; | 18 | mxs = map (zone: "mx-1.${zone.name}") zonesWithMx; |
19 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | ||
20 | }; | ||
21 | services.backup.profiles = { | ||
22 | mail = { | ||
23 | rootDir = "/var/lib"; | ||
24 | excludeFile = lib.mkAfter '' | ||
25 | + /var/lib/vhost | ||
26 | - /var/lib | ||
27 | ''; | ||
28 | }; | ||
19 | }; | 29 | }; |
20 | }; | 30 | }; |
21 | } | 31 | } |