Merge pull request 'dovecot2.3' (#1) from dovecot2.3 into master

Reviewed-on: https://git.myvelabs.com/docker/myvemail/pulls/1
This commit is contained in:
myve 2025-09-27 15:20:10 +00:00
commit 4b374113ce
2 changed files with 83 additions and 77 deletions

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# 10-auth.conf # 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 # dovecot-sql.conf.ext
sed -e "s/{{MYVEMAIL_POSTFIXADMIN_DBNAME}}/${MYVEMAIL_POSTFIXADMIN_DBNAME}/" \ sed -e "s/{{MYVEMAIL_POSTFIXADMIN_DBNAME}}/${MYVEMAIL_POSTFIXADMIN_DBNAME}/" \

View file

@ -165,35 +165,97 @@ newaliases
#// Dovecot #// Dovecot
#// #//
############### ###############
rm -r /etc/dovecot/ /etc/ssl/dovecot/
mkdir -p /etc/dovecot/ /etc/ssl/dovecot/
# dovecot.conf # dovecot.conf
tee -a /etc/dovecot/dovecot.conf >/dev/null <<- dovecot.conf cat >/etc/dovecot/dovecot.conf <<- dovecot.conf
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = 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 disable_plaintext_auth = yes
auth_username_format = %Lu auth_username_format = %Lu
auth_mechanisms = plain login auth_mechanisms = plain login
auth_default_realm = {{MYVEMAIL_DOMAIN}} auth_default_realm = {{MYVEMAIL_DOMAIN}}
auth_debug = yes auth_debug = yes
auth_debug_passwords = 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 # dovecot-sql.conf.ext
tee -a /etc/dovecot/dovecot-sql.conf.ext >/dev/null <<- 'dovecot' cat >/etc/dovecot/dovecot-sql.conf.ext <<- 'dovecot'
# Virtual mailboxes
driver = mysql driver = mysql
connect = host=localhost dbname={{MYVEMAIL_POSTFIXADMIN_DBNAME}} user={{MYVEMAIL_POSTFIXADMIN_DBUSER}} password={{MYVEMAIL_POSTFIXADMIN_DBPASS}} connect = host=localhost dbname={{MYVEMAIL_POSTFIXADMIN_DBNAME}} user={{MYVEMAIL_POSTFIXADMIN_DBUSER}} password={{MYVEMAIL_POSTFIXADMIN_DBPASS}}
default_pass_scheme = ARGON2I default_pass_scheme = ARGON2I
@ -202,68 +264,12 @@ user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username
iterate_query = SELECT username AS user FROM mailbox iterate_query = SELECT username AS user FROM mailbox
dovecot 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 # 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 = </etc/ssl/dovecot/dh.pem ssl_dh = </etc/ssl/dovecot/dh.pem
ssl_cert = </etc/ssl/dovecot/tls.pem ssl_cert = </etc/ssl/dovecot/tls.pem
ssl_key = </etc/ssl/dovecot/tls.key ssl_key = </etc/ssl/dovecot/tls.key
ssl-keys.conf ssl-keys.conf
sed '/ssl_dh =\|ssl_cert =\|ssl_key\|ssl =\|ssl_prefer_server_ciphers =\|ssl_min_protocol =/d' -i /etc/dovecot/conf.d/10-ssl.conf
tee -a /etc/dovecot/conf.d/10-ssl.conf >/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 # Virtual mailboxes
install -m 0640 /dev/stdin /etc/postfix/sql/virtual_domains_maps.cf <<- eof install -m 0640 /dev/stdin /etc/postfix/sql/virtual_domains_maps.cf <<- eof