X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fmail%2Fdovecot.nix;h=b6fdc026efcd8a66d2e22f27c92de69d52ce78ed;hb=5315b439af1f72c3282549508ae58d86d66e38ec;hp=523c017a39aeb72395ff7a600e19fe9bf367db5f;hpb=981fa80354fd6f00f49446777c38f77bd8a65f65;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/mail/dovecot.nix b/modules/private/mail/dovecot.nix index 523c017..b6fdc02 100644 --- a/modules/private/mail/dovecot.nix +++ b/modules/private/mail/dovecot.nix @@ -13,40 +13,34 @@ let in { config = lib.mkIf config.myServices.mail.enable { - services.duplyBackup.profiles.mail.excludeFile = '' - + /var/lib/dhparams - + /var/lib/dovecot - ''; - secrets.keys = [ - { - dest = "dovecot/ldap"; - user = config.services.dovecot2.user; - group = config.services.dovecot2.group; - permissions = "0400"; - text = '' - hosts = ${config.myEnv.mail.dovecot.ldap.host} - tls = yes + systemd.services.dovecot2.serviceConfig.Slice = "mail.slice"; + secrets.keys."dovecot/ldap" = { + user = config.services.dovecot2.user; + group = config.services.dovecot2.group; + permissions = "0400"; + text = '' + hosts = ${config.myEnv.mail.dovecot.ldap.host} + tls = yes - dn = ${config.myEnv.mail.dovecot.ldap.dn} - dnpass = ${config.myEnv.mail.dovecot.ldap.password} + dn = ${config.myEnv.mail.dovecot.ldap.dn} + dnpass = ${config.myEnv.mail.dovecot.ldap.password} - auth_bind = yes + auth_bind = yes - ldap_version = 3 + ldap_version = 3 - base = ${config.myEnv.mail.dovecot.ldap.base} - scope = subtree + base = ${config.myEnv.mail.dovecot.ldap.base} + scope = subtree - pass_filter = ${config.myEnv.mail.dovecot.ldap.filter} - pass_attrs = ${config.myEnv.mail.dovecot.ldap.pass_attrs} + pass_filter = ${config.myEnv.mail.dovecot.ldap.filter} + pass_attrs = ${config.myEnv.mail.dovecot.ldap.pass_attrs} - user_attrs = ${config.myEnv.mail.dovecot.ldap.user_attrs} - user_filter = ${config.myEnv.mail.dovecot.ldap.filter} - iterate_attrs = ${config.myEnv.mail.dovecot.ldap.iterate_attrs} - iterate_filter = ${config.myEnv.mail.dovecot.ldap.iterate_filter} - ''; - } - ]; + user_attrs = ${config.myEnv.mail.dovecot.ldap.user_attrs} + user_filter = ${config.myEnv.mail.dovecot.ldap.filter} + iterate_attrs = ${config.myEnv.mail.dovecot.ldap.iterate_attrs} + iterate_filter = ${config.myEnv.mail.dovecot.ldap.iterate_filter} + ''; + }; users.users.vhost = { group = "vhost"; @@ -69,17 +63,23 @@ in mailUser = "vhost"; mailGroup = "vhost"; createMailUser = false; - mailboxes = [ - { name = "Trash"; auto = "subscribe"; specialUse = "Trash"; } - { name = "Junk"; auto = "subscribe"; specialUse = "Junk"; } - { name = "Sent"; auto = "subscribe"; specialUse = "Sent"; } - { name = "Drafts"; auto = "subscribe"; specialUse = "Drafts"; } - ]; + mailboxes = { + Trash = { auto = "subscribe"; specialUse = "Trash"; }; + Junk = { auto = "subscribe"; specialUse = "Junk"; }; + Sent = { auto = "subscribe"; specialUse = "Sent"; }; + Drafts = { auto = "subscribe"; specialUse = "Drafts"; }; + }; mailLocation = "mbox:~/Mail:INBOX=~/Mail/Inbox:INDEX=~/.imap"; sslServerCert = "/var/lib/acme/mail/fullchain.pem"; sslServerKey = "/var/lib/acme/mail/key.pem"; sslCACert = "/var/lib/acme/mail/fullchain.pem"; extraConfig = builtins.concatStringsSep "\n" [ + # For printer which doesn’t support elliptic curve + '' + ssl_alt_cert = &1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" + ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX "Backup/*" NOT FLAGGED BEFORE 8w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Junk SEEN NOT FLAGGED BEFORE 4w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Trash NOT FLAGGED BEFORE 4w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" ''; @@ -269,7 +269,16 @@ in [ "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders" ]; - security.acme2.certs."mail" = { + security.acme.certs."mail-rsa" = { + postRun = '' + systemctl restart dovecot2.service + ''; + extraDomains = { + "imap.immae.eu" = null; + "pop3.immae.eu" = null; + }; + }; + security.acme.certs."mail" = { postRun = '' systemctl restart dovecot2.service '';