]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/mail/rspamd.nix
Add new machine to nixops
[perso/Immae/Config/Nix.git] / modules / private / mail / rspamd.nix
index af3541f370101b2f932cfeecea64201c04e3308b..5e0a2392a08b4fd2cb74e9d9075fa9da49e101c1 100644 (file)
       rspamd sockets
       '';
   };
-  config.services.backup.profiles.mail.excludeFile = ''
-    + /var/lib/rspamd
-    '';
-  config.services.cron.systemCronJobs = let
-    cron_script = pkgs.runCommand "cron_script" {
-      buildInputs = [ pkgs.makeWrapper ];
-    } ''
-      mkdir -p $out
-      cp ${./scan_reported_mails} $out/scan_reported_mails
-      patchShebangs $out
-      for i in $out/*; do
-        wrapProgram "$i" --prefix PATH : ${lib.makeBinPath [ pkgs.coreutils pkgs.rspamd pkgs.flock ]}
-      done
+  config = lib.mkIf config.myServices.mail.enable {
+    services.backup.profiles.mail.excludeFile = ''
+      + /var/lib/rspamd
       '';
-  in
-    [ "*/20 * * * * vhost ${cron_script}/scan_reported_mails" ];
-
-  config.services.rspamd = {
-    enable = true;
-    debug = true;
-    overrides = {
-      "actions.conf".text = ''
-        reject = null;
-        add_header = 6;
-        greylist = null;
+    services.cron.systemCronJobs = let
+      cron_script = pkgs.runCommand "cron_script" {
+        buildInputs = [ pkgs.makeWrapper ];
+      } ''
+        mkdir -p $out
+        cp ${./scan_reported_mails} $out/scan_reported_mails
+        patchShebangs $out
+        for i in $out/*; do
+          wrapProgram "$i" --prefix PATH : ${lib.makeBinPath [ pkgs.coreutils pkgs.rspamd pkgs.flock ]}
+        done
         '';
-      "milter_headers.conf".text = ''
-        extended_spam_headers = true;
-      '';
-    };
-    locals = {
-      "redis.conf".text = ''
-        servers = "${myconfig.env.mail.rspamd.redis.socket}";
-        db = "${myconfig.env.mail.rspamd.redis.db}";
+    in
+      [ "*/20 * * * * vhost ${cron_script}/scan_reported_mails" ];
+
+    services.rspamd = {
+      enable = true;
+      debug = true;
+      overrides = {
+        "actions.conf".text = ''
+          reject = null;
+          add_header = 6;
+          greylist = null;
+          '';
+        "milter_headers.conf".text = ''
+          extended_spam_headers = true;
         '';
-      "classifier-bayes.conf".text = ''
-        users_enabled = true;
-        backend = "redis";
-        servers = "${myconfig.env.mail.rspamd.redis.socket}";
-        database = "${myconfig.env.mail.rspamd.redis.db}";
-        autolearn = true;
-        cache {
+      };
+      locals = {
+        "redis.conf".text = ''
+          servers = "${myconfig.env.mail.rspamd.redis.socket}";
+          db = "${myconfig.env.mail.rspamd.redis.db}";
+          '';
+        "classifier-bayes.conf".text = ''
+          users_enabled = true;
           backend = "redis";
-        }
-        new_schema = true;
-        statfile {
-          BAYES_HAM {
-            spam = false;
+          servers = "${myconfig.env.mail.rspamd.redis.socket}";
+          database = "${myconfig.env.mail.rspamd.redis.db}";
+          autolearn = true;
+          cache {
+            backend = "redis";
           }
-          BAYES_SPAM {
-            spam = true;
+          new_schema = true;
+          statfile {
+            BAYES_HAM {
+              spam = false;
+            }
+            BAYES_SPAM {
+              spam = true;
+            }
           }
-        }
-        '';
-    };
-    workers = {
-      controller = {
-        extraConfig = ''
-          enable_password = "${myconfig.env.mail.rspamd.write_password_hashed}";
-          password = "${myconfig.env.mail.rspamd.read_password_hashed}";
-        '';
-        bindSockets = [ {
-          socket = config.myServices.mail.rspamd.sockets.worker-controller;
-          mode = "0660";
-          owner = config.services.rspamd.user;
-          group = "vhost";
-        } ];
+          '';
+      };
+      workers = {
+        controller = {
+          extraConfig = ''
+            enable_password = "${myconfig.env.mail.rspamd.write_password_hashed}";
+            password = "${myconfig.env.mail.rspamd.read_password_hashed}";
+          '';
+          bindSockets = [ {
+            socket = config.myServices.mail.rspamd.sockets.worker-controller;
+            mode = "0660";
+            owner = config.services.rspamd.user;
+            group = "vhost";
+          } ];
+        };
+      };
+      postfix = {
+        enable = true;
+        config = {};
       };
-    };
-    postfix = {
-      enable = true;
-      config = {};
     };
   };
 }