feat: changes for macher.solutions

This commit is contained in:
Dominik Polakovics Polakovics 2026-04-03 13:28:14 +02:00
parent 856761d407
commit 8c5aac0f07
4 changed files with 139 additions and 3 deletions

View file

@ -27,6 +27,27 @@ let
default_pass_scheme = CRYPT
'';
ldapConfigFallback = pkgs.writeText "dovecot-ldap-fallback.conf" ''
hosts = ldap.cloonar.com
tls = yes
dn = "cn=vmail,ou=system,ou=users,dc=cloonar,dc=com"
dnpass = "@ldap-password@"
auth_bind = no
ldap_version = 3
base = ou=users,dc=cloonar,dc=com
user_filter = (&(objectClass=mailAccount)(mail=%u)(!(mailSendOnly=TRUE)))
user_attrs = \
quota=quota_rule=*:bytes=%$, \
=home=/var/vmail/%d/%n/, \
=mail=maildir:/var/vmail/%d/%n/Maildir
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u))
iterate_attrs = =user=%{ldap:mail}
iterate_filter = (objectClass=mailAccount)
scope = subtree
default_pass_scheme = CRYPT
'';
doveSync = pkgs.writeShellScriptBin "dove-sync.sh" ''
#!/usr/bin/env bash
SERVER=''${1}
@ -59,6 +80,10 @@ let
doveadm user *@docfast.dev | while read user; do
doveadm -v sync -u $user $SERVER
done
doveadm user *@macher.solutions | while read user; do
doveadm -v sync -u $user $SERVER
done
'';
quotaWarning = pkgs.writeShellScriptBin "quota-warning.sh" ''
@ -157,6 +182,14 @@ in
args = /run/dovecot2/ldap.conf
driver = ldap
}
userdb {
args = /run/dovecot2/ldap-fallback.conf
driver = ldap
}
passdb {
args = /run/dovecot2/ldap-fallback.conf
driver = ldap
}
service imap-login {
client_limit = 1000
@ -247,6 +280,7 @@ in
systemd.services.dovecot.preStart = ''
sed -e "s/@ldap-password@/$(cat ${config.sops.secrets.dovecot-ldap-password.path})/" ${ldapConfig} > /run/dovecot2/ldap.conf
sed -e "s/@ldap-password@/$(cat ${config.sops.secrets.dovecot-ldap-password.path})/" ${ldapConfigFallback} > /run/dovecot2/ldap-fallback.conf
'';
systemd.services.dovecot = {