aboutsummaryrefslogtreecommitdiff
path: root/modules/private/mail/default.nix
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2019-10-18 19:43:39 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-10-18 19:43:39 +0200
commit8415083eb6acc343dfa404dbbc12fa0171a48a20 (patch)
treed83f54c99763ae49076bf3071449595b6ccae133 /modules/private/mail/default.nix
parent8fa7ff2c63fb0722144bc90837512d9f8b8c929d (diff)
downloadNix-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.nix42
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}