X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fmail%2Frspamd.nix;h=4d55fc2e98711ae29d39d6e2299d460331fb1dd8;hb=ab8f306d7c2c49b8116e1af7b355ed2384617ed9;hp=3a7a67c718117f263efffe0131066492a13b6126;hpb=a929614f94d11a4f397e72e74f38b3212c24cdee;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/mail/rspamd.nix b/modules/private/mail/rspamd.nix index 3a7a67c..4d55fc2 100644 --- a/modules/private/mail/rspamd.nix +++ b/modules/private/mail/rspamd.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, myconfig, ... }: +{ lib, pkgs, config, ... }: { options.myServices.mail.rspamd.sockets = lib.mkOption { type = lib.types.attrsOf lib.types.path; @@ -10,75 +10,80 @@ rspamd sockets ''; }; - 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.duplyBackup.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 = "${config.myEnv.mail.rspamd.redis.socket}"; + db = "${config.myEnv.mail.rspamd.redis.db}"; + ''; + "classifier-bayes.conf".text = '' + users_enabled = true; backend = "redis"; - } - new_schema = true; - statfile { - BAYES_HAM { - spam = false; + servers = "${config.myEnv.mail.rspamd.redis.socket}"; + database = "${config.myEnv.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 = "${config.myEnv.mail.rspamd.write_password_hashed}"; + password = "${config.myEnv.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 = {}; }; }; }