From 43968e1347514d49917770b38a432d551eb0f43e Mon Sep 17 00:00:00 2001 From: myve Date: Sat, 27 Sep 2025 14:31:53 +0000 Subject: [PATCH] Unify dovecot.conf and modified auth_default_realm reference in 25-dovecot.sh --- .../docker-entrypoint/init.d/25-dovecot.sh | 2 +- build/run/installer.sh | 152 +++++++++--------- 2 files changed, 78 insertions(+), 76 deletions(-) diff --git a/build/run/docker-entrypoint/init.d/25-dovecot.sh b/build/run/docker-entrypoint/init.d/25-dovecot.sh index 0816691..cebabe0 100755 --- a/build/run/docker-entrypoint/init.d/25-dovecot.sh +++ b/build/run/docker-entrypoint/init.d/25-dovecot.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # 10-auth.conf -sed -i "s/{{MYVEMAIL_DOMAIN}}/${MYVEMAIL_DOMAIN}/" /etc/dovecot/conf.d/10-auth.conf +sed -i "s/{{MYVEMAIL_DOMAIN}}/${MYVEMAIL_DOMAIN}/" /etc/dovecot/dovecot.conf # dovecot-sql.conf.ext sed -e "s/{{MYVEMAIL_POSTFIXADMIN_DBNAME}}/${MYVEMAIL_POSTFIXADMIN_DBNAME}/" \ diff --git a/build/run/installer.sh b/build/run/installer.sh index aeefb15..5c69db9 100755 --- a/build/run/installer.sh +++ b/build/run/installer.sh @@ -166,34 +166,91 @@ newaliases #// ############### # dovecot.conf -tee -a /etc/dovecot/dovecot.conf >/dev/null <<- dovecot.conf +cat >/etc/dovecot/dovecot.conf <<- dovecot.conf +passdb sql { + args = /etc/dovecot/dovecot-sql.conf.ext +} +userdb sql { + args = /etc/dovecot/dovecot-sql.conf.ext +} -!include_try ssl-keys.conf -protocols = imap lmtp -dovecot.conf - -# # Logging -# echo "log_path = /var/log/dovecot.log" >/etc/dovecot/conf.d/10-logging.conf - -# 10-auth.conf -sed '/include auth-sql.conf.ext\|disable_plaintext_auth =\|auth_username_format =\|auth_mechanisms =\|auth_default_realm =\|include auth-system.conf.ext/d' \ - -i /etc/dovecot/conf.d/10-auth.conf -tee -a /etc/dovecot/conf.d/10-auth.conf >/dev/null <<- '10-auth.conf' - -!include auth-sql.conf.ext disable_plaintext_auth = yes auth_username_format = %Lu auth_mechanisms = plain login auth_default_realm = {{MYVEMAIL_DOMAIN}} - auth_debug = yes auth_debug_passwords = yes -10-auth.conf + +# mbox_write_locks = fcntl +mail_privileged_group = mail +mail_location = maildir:~/Maildir +mail_home = /var/vmail/%d/%n/ + +service lmtp { + unix_listener /var/spool/postfix/private/dovecot-lmtp { + mode = 0600 + user = postfix + group = postfix + } +} +service auth { + unix_listener /var/spool/postfix/private/auth { + mode = 0660 + user = postfix + group = postfix + } +} +service stats { + unix_listener stats-reader { + user = ${MYVEMAIL_NGINX_USERGROUP} + group = ${MYVEMAIL_NGINX_USERGROUP} + mode = 0660 +} +unix_listener stats-writer { + user = ${MYVEMAIL_NGINX_USERGROUP} + group = ${MYVEMAIL_NGINX_USERGROUP} + mode = 0660 + } +} + +ssl = required +ssl_prefer_server_ciphers = yes +ssl_min_protocol = TLSv1.2 + +namespace inbox { + inbox = yes + mailbox Archive { + auto = subscribe + special_use = \Archive + } + mailbox Drafts { + auto = subscribe + special_use = \Drafts + } + mailbox Junk { + auto = subscribe + special_use = \Junk + } + mailbox Trash { + auto = subscribe + special_use = \Trash + } + mailbox Sent { + auto = subscribe + special_use = \Sent + } + mailbox "Sent Messages" { + special_use = \Sent + } +} + +protocols = imap lmtp + +!include_try ssl-keys.conf +dovecot.conf # dovecot-sql.conf.ext -tee -a /etc/dovecot/dovecot-sql.conf.ext >/dev/null <<- 'dovecot' - -# Virtual mailboxes +cat >/etc/dovecot/dovecot-sql.conf.ext <<- 'dovecot' driver = mysql connect = host=localhost dbname={{MYVEMAIL_POSTFIXADMIN_DBNAME}} user={{MYVEMAIL_POSTFIXADMIN_DBUSER}} password={{MYVEMAIL_POSTFIXADMIN_DBPASS}} default_pass_scheme = ARGON2I @@ -202,68 +259,13 @@ user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username iterate_query = SELECT username AS user FROM mailbox dovecot -# 10-mail.conf -sed '/mail_location =\|mail_home =\|mail_privileged_group =/d' \ - -i /etc/dovecot/conf.d/10-mail.conf -tee -a /etc/dovecot/conf.d/10-mail.conf >/dev/null <<- '10-mail.conf' - -mail_privileged_group = mail -mail_location = maildir:~/Maildir -mail_home = /var/vmail/%d/%n/ -10-mail.conf - -# 10-master.conf -sed -e 's|unix_listener lmtp {|unix_listener /var/spool/postfix/private/dovecot-lmtp {\ - mode = 0600\ - user = postfix\ - group = postfix|' \ - -e 's|unix_listener auth-userdb {|unix_listener /var/spool/postfix/private/auth {\ - mode = 0660\ - user = postfix\ - group = postfix|' \ - -i /etc/dovecot/conf.d/10-master.conf - # 10-ssl.conf rm -f /etc/ssl/dovecot/* -install -m 0600 /dev/stdin /etc/dovecot/ssl-keys.conf <<- ssl-keys.conf +install -m 0600 /dev/stdin /etc/dovecot/ssl-keys.conf <<- 'ssl-keys.conf' ssl_dh = /dev/null <<- '10-ssl.conf' - -ssl = required -ssl_prefer_server_ciphers = yes -ssl_min_protocol = TLSv1.2 -10-ssl.conf - -# Stats service -tee -a /etc/dovecot/conf.d/10-master.conf >/dev/null <<- 10-master.conf - -service stats { - unix_listener stats-reader { - user = ${MYVEMAIL_NGINX_USERGROUP} - group = ${MYVEMAIL_NGINX_USERGROUP} - mode = 0660 -} - -unix_listener stats-writer { - user = ${MYVEMAIL_NGINX_USERGROUP} - group = ${MYVEMAIL_NGINX_USERGROUP} - mode = 0660 - } -} -10-master.conf - -# Mailboxes -sed -i 's/namespace inbox {/&\ - # Archive folder\ - mailbox Archive {\ - special_use = \\Archive\ - }/' /etc/dovecot/conf.d/15-mailboxes.conf -sed -i '/Sent Messages/! s/^ mailbox.*{/&\ - auto = subscribe/' /etc/dovecot/conf.d/15-mailboxes.conf # Virtual mailboxes install -m 0640 /dev/stdin /etc/postfix/sql/virtual_domains_maps.cf <<- eof