1 { lib, pkgs, config, myconfig, ... }:
3 options.myServices.mail.rspamd.sockets = lib.mkOption {
4 type = lib.types.attrsOf lib.types.path;
6 worker-controller = "/run/rspamd/worker-controller.sock";
13 config.services.cron.systemCronJobs = let
14 cron_script = pkgs.runCommand "cron_script" {
15 buildInputs = [ pkgs.makeWrapper ];
18 cp ${./scan_reported_mails} $out/scan_reported_mails
21 wrapProgram "$i" --prefix PATH : ${lib.makeBinPath [ pkgs.coreutils pkgs.rspamd pkgs.flock ]}
25 [ "*/20 * * * * vhost ${cron_script}/scan_reported_mails" ];
27 config.services.rspamd = {
31 "actions.conf".text = ''
36 "milter_headers.conf".text = ''
37 extended_spam_headers = true;
41 "redis.conf".text = ''
42 servers = "${myconfig.env.mail.rspamd.redis.socket}";
43 db = "${myconfig.env.mail.rspamd.redis.db}";
45 "classifier-bayes.conf".text = ''
48 servers = "${myconfig.env.mail.rspamd.redis.socket}";
49 database = "${myconfig.env.mail.rspamd.redis.db}";
68 enable_password = "${myconfig.env.mail.rspamd.write_password_hashed}";
69 password = "${myconfig.env.mail.rspamd.read_password_hashed}";
72 socket = config.myServices.mail.rspamd.sockets.worker-controller;
74 owner = config.services.rspamd.user;