]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/mail/dovecot.nix
Add cleanup cron job for dovecot
[perso/Immae/Config/Nix.git] / modules / private / mail / dovecot.nix
index 6220da2b34b35a971f24feae0e0d6a27fd37ed58..6c3b4b8e14660e5087718277d4810f08592128ed 100644 (file)
@@ -37,11 +37,13 @@ in
           base = ${myconfig.env.mail.dovecot.ldap.base}
           scope = subtree
 
-          user_filter = ${myconfig.env.mail.dovecot.ldap.filter}
           pass_filter = ${myconfig.env.mail.dovecot.ldap.filter}
+          pass_attrs = ${myconfig.env.mail.dovecot.ldap.pass_attrs}
 
           user_attrs = ${myconfig.env.mail.dovecot.ldap.user_attrs}
-          pass_attrs = ${myconfig.env.mail.dovecot.ldap.pass_attrs}
+          user_filter = ${myconfig.env.mail.dovecot.ldap.filter}
+          iterate_attrs = ${myconfig.env.mail.dovecot.ldap.iterate_attrs}
+          iterate_filter = ${myconfig.env.mail.dovecot.ldap.iterate_filter}
           '';
       }
     ];
@@ -185,8 +187,8 @@ in
           args = ${config.secrets.fullPaths."dovecot/ldap"}
         }
         userdb {
-          driver = static
-          args = user=%u uid=vhost gid=vhost home=/var/lib/vhost/%d/%n/ mail=mbox:~/Mail:INBOX=~/Mail/Inbox:INDEX=~/.imap
+          driver = ldap
+          args = ${config.secrets.fullPaths."dovecot/ldap"}
         }
         ''
 
@@ -239,6 +241,16 @@ in
         '';
     };
 
+    services.cron.systemCronJobs = let
+      cron_script = pkgs.writeScriptBin "cleanup-imap-folders" ''
+        ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX "Backup/*" NOT UID 1:256
+        ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Junk SEEN NOT FLAGGED BEFORE 4w
+        ${pkgs.dovecot}/bin/doveadm search -A MAILBOX Trash NOT FLAGGED BEFORE 4w
+        '';
+      in
+      [
+        "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders"
+      ];
     security.acme.certs."mail" = {
       postRun = ''
         systemctl restart dovecot2.service