]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/mail/milters.nix
Configure mail (dovecot, postfix, spam checks)
[perso/Immae/Config/Nix.git] / modules / private / mail / milters.nix
similarity index 83%
rename from modules/private/mail.nix
rename to modules/private/mail/milters.nix
index eb869ba3eb28e9100d562761880f3c277cd00650..c4bd990b2766a3e89fa3d914669663f2a520bcc5 100644 (file)
@@ -1,16 +1,17 @@
 { lib, pkgs, config, myconfig,  ... }:
 {
-  config.users.users.nullmailer.uid = config.ids.uids.nullmailer;
-  config.users.groups.nullmailer.gid = config.ids.gids.nullmailer;
-
-  config.services.nullmailer = {
-    enable = true;
-    config = {
-      me = myconfig.env.mail.host;
-      remotes = "${myconfig.env.mail.relay} smtp";
+  options.myServices.mail.milters.sockets = lib.mkOption {
+    type = lib.types.attrsOf lib.types.path;
+    default = {
+      opendkim = "/run/opendkim/opendkim.sock";
+      opendmarc = "/run/opendmarc/opendmarc.sock";
+      openarc = "/run/openarc/openarc.sock";
     };
+    readOnly = true;
+    description = ''
+      milters sockets
+      '';
   };
-
   config.secrets.keys = [
     {
       dest = "opendkim/eldiron.private";
@@ -38,6 +39,7 @@
   config.users.users."${config.services.opendkim.user}".extraGroups = [ "keys" ];
   config.services.opendkim = {
     enable = true;
+    socket = "local:${config.myServices.mail.milters.sockets.opendkim}";
     domains = builtins.concatStringsSep "," (lib.flatten (map
       (zone: map
         (e: "${e.domain}${lib.optionalString (e.domain != "") "."}${zone.name}")
@@ -51,6 +53,7 @@
       SubDomains     yes
       UMask          002
       '';
+    group = config.services.postfix.group;
   };
   config.systemd.services.opendkim.preStart = lib.mkBefore ''
     # Skip the prestart script as keys are handled in secrets
@@ -66,6 +69,7 @@
   config.users.users."${config.services.opendmarc.user}".extraGroups = [ "keys" ];
   config.services.opendmarc = {
     enable = true;
+    socket = "local:${config.myServices.mail.milters.sockets.opendmarc}";
     configFile = pkgs.writeText "opendmarc.conf" ''
       AuthservID                  HOSTNAME
       FailureReports              false
@@ -79,6 +83,7 @@
       TrustedAuthservIDs          HOSTNAME, immae.eu, nef2.ens.fr
       UMask                       002
       '';
+    group = config.services.postfix.group;
   };
   config.services.filesWatcher.opendmarc = {
     restart = true;
@@ -90,7 +95,8 @@
   config.services.openarc = {
     enable = true;
     user = "opendkim";
-    group = "opendkim";
+    socket = "local:${config.myServices.mail.milters.sockets.openarc}";
+    group = config.services.postfix.group;
     configFile = pkgs.writeText "openarc.conf" ''
       AuthservID              mail.immae.eu
       Domain                  mail.immae.eu