mirror of
https://git.myvelabs.com/docker/myvemail.git
synced 2025-12-17 21:36:19 +00:00
Dovecot 2.4 update
This commit is contained in:
parent
acc168d13e
commit
531c94e3c8
3 changed files with 49 additions and 41 deletions
|
|
@ -18,8 +18,8 @@ ADD run/docker-entrypoint /docker-entrypoint/
|
||||||
ADD run/installer.sh /tmp/
|
ADD run/installer.sh /tmp/
|
||||||
|
|
||||||
# Update Ubuntu Software repository and install requisites
|
# Update Ubuntu Software repository and install requisites
|
||||||
RUN printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/v3.21/main/' \
|
RUN printf '%s\n' 'https://dl-cdn.alpinelinux.org/alpine/latest-stable/main/' \
|
||||||
'https://dl-cdn.alpinelinux.org/alpine/v3.21/community/' >/etc/apk/repositories \
|
'https://dl-cdn.alpinelinux.org/alpine/latest-stable/community/' >/etc/apk/repositories \
|
||||||
# Pre-create vmail user
|
# Pre-create vmail user
|
||||||
&& addgroup -g 600 vmail \
|
&& addgroup -g 600 vmail \
|
||||||
&& adduser -S -D -h /var/vmail -u 600 -G vmail vmail \
|
&& adduser -S -D -h /var/vmail -u 600 -G vmail vmail \
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# 10-auth.conf
|
# dovecot.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}/" \
|
sed -e "s/{{MYVEMAIL_POSTFIXADMIN_DBNAME}}/${MYVEMAIL_POSTFIXADMIN_DBNAME}/" \
|
||||||
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBUSER}}/${MYVEMAIL_POSTFIXADMIN_DBUSER}/" \
|
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBUSER}}/${MYVEMAIL_POSTFIXADMIN_DBUSER}/" \
|
||||||
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBPASS}}/${MYVEMAIL_POSTFIXADMIN_DBPASS}/" \
|
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBPASS}}/${MYVEMAIL_POSTFIXADMIN_DBPASS}/" \
|
||||||
-i /etc/dovecot/dovecot-sql.conf.ext
|
-e "s/{{MYVEMAIL_DOMAIN}}/${MYVEMAIL_DOMAIN}/" \
|
||||||
|
-i /etc/dovecot/dovecot.conf
|
||||||
|
|
||||||
# Permissions
|
# Permissions
|
||||||
chown vmail:vmail /var/vmail/ -R
|
chown vmail:vmail /var/vmail/ -R
|
||||||
|
|
|
||||||
|
|
@ -169,27 +169,43 @@ rm -r /etc/dovecot/ /etc/ssl/dovecot/
|
||||||
mkdir -p /etc/dovecot/ /etc/ssl/dovecot/
|
mkdir -p /etc/dovecot/ /etc/ssl/dovecot/
|
||||||
|
|
||||||
# dovecot.conf
|
# dovecot.conf
|
||||||
cat >/etc/dovecot/dovecot.conf <<- dovecot.conf
|
install -m 0600 /dev/stdin /etc/dovecot/dovecot.conf <<- dovecot.conf
|
||||||
passdb {
|
dovecot_config_version = 2.4.1
|
||||||
driver = sql
|
dovecot_storage_version = 2.4.1
|
||||||
args = /etc/dovecot/dovecot-sql.conf.ext
|
|
||||||
|
sql_driver = mysql
|
||||||
|
mysql /run/mysqld/mysqld.sock {
|
||||||
|
user = {{MYVEMAIL_POSTFIXADMIN_DBUSER}}
|
||||||
|
password = {{MYVEMAIL_POSTFIXADMIN_DBPASS}}
|
||||||
|
dbname = {{MYVEMAIL_POSTFIXADMIN_DBNAME}}
|
||||||
}
|
}
|
||||||
userdb {
|
passdb sql {
|
||||||
driver = sql
|
query = SELECT username AS user, \\
|
||||||
args = /etc/dovecot/dovecot-sql.conf.ext
|
password FROM mailbox WHERE username = '%{user}' AND active='1'
|
||||||
|
default_password_scheme = ARGON2I
|
||||||
|
}
|
||||||
|
userdb sql {
|
||||||
|
fields {
|
||||||
|
home = /var/vmail/%{user|domain}/%{user|username}
|
||||||
|
}
|
||||||
|
query = SELECT '~/Maildir' AS mail_path, \\
|
||||||
|
600 AS uid, \\
|
||||||
|
600 AS gid \\
|
||||||
|
FROM mailbox WHERE username = '%{user}' AND active='1'
|
||||||
|
iterate_query = SELECT username AS user FROM mailbox
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_plaintext_auth = yes
|
auth_username_format = %{user|lower}
|
||||||
auth_username_format = %Lu
|
|
||||||
auth_mechanisms = plain login
|
auth_mechanisms = plain login
|
||||||
auth_default_realm = {{MYVEMAIL_DOMAIN}}
|
auth_default_domain = {{MYVEMAIL_DOMAIN}}
|
||||||
auth_debug = yes
|
auth_debug = yes
|
||||||
auth_debug_passwords = yes
|
auth_debug_passwords = yes
|
||||||
|
|
||||||
# mbox_write_locks = fcntl
|
# mbox_write_locks = fcntl
|
||||||
mail_privileged_group = mail
|
mail_privileged_group = mail
|
||||||
mail_location = maildir:~/Maildir
|
mail_home = /var/vmail/%{user|domain}/%{user|username}
|
||||||
mail_home = /var/vmail/%d/%n/
|
mail_driver = maildir
|
||||||
|
mail_path = ~/Maildir
|
||||||
|
|
||||||
service lmtp {
|
service lmtp {
|
||||||
unix_listener /var/spool/postfix/private/dovecot-lmtp {
|
unix_listener /var/spool/postfix/private/dovecot-lmtp {
|
||||||
|
|
@ -219,8 +235,8 @@ unix_listener stats-writer {
|
||||||
}
|
}
|
||||||
|
|
||||||
ssl = required
|
ssl = required
|
||||||
ssl_prefer_server_ciphers = yes
|
|
||||||
ssl_min_protocol = TLSv1.2
|
ssl_min_protocol = TLSv1.2
|
||||||
|
ssl_server_prefer_ciphers = server
|
||||||
|
|
||||||
namespace inbox {
|
namespace inbox {
|
||||||
inbox = yes
|
inbox = yes
|
||||||
|
|
@ -236,10 +252,6 @@ namespace inbox {
|
||||||
auto = subscribe
|
auto = subscribe
|
||||||
special_use = \Junk
|
special_use = \Junk
|
||||||
}
|
}
|
||||||
mailbox Trash {
|
|
||||||
auto = subscribe
|
|
||||||
special_use = \Trash
|
|
||||||
}
|
|
||||||
mailbox Sent {
|
mailbox Sent {
|
||||||
auto = subscribe
|
auto = subscribe
|
||||||
special_use = \Sent
|
special_use = \Sent
|
||||||
|
|
@ -247,29 +259,27 @@ namespace inbox {
|
||||||
mailbox "Sent Messages" {
|
mailbox "Sent Messages" {
|
||||||
special_use = \Sent
|
special_use = \Sent
|
||||||
}
|
}
|
||||||
|
mailbox Trash {
|
||||||
|
auto = subscribe
|
||||||
|
special_use = \Trash
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protocols = imap lmtp
|
protocols = imap lmtp
|
||||||
|
|
||||||
!include_try ssl-keys.conf
|
ssl_server {
|
||||||
|
dh_file = /etc/ssl/dovecot/dh.pem
|
||||||
|
cert_file = /etc/ssl/dovecot/tls.pem
|
||||||
|
key_file = /etc/ssl/dovecot/tls.key
|
||||||
|
}
|
||||||
dovecot.conf
|
dovecot.conf
|
||||||
|
|
||||||
# dovecot-sql.conf.ext
|
# # 10-ssl.conf
|
||||||
cat >/etc/dovecot/dovecot-sql.conf.ext <<- 'dovecot'
|
# install -m 0600 /dev/stdin /etc/dovecot/ssl-keys.conf <<- 'ssl-keys.conf'
|
||||||
driver = mysql
|
# ssl_dh = </etc/ssl/dovecot/dh.pem
|
||||||
connect = host=localhost dbname={{MYVEMAIL_POSTFIXADMIN_DBNAME}} user={{MYVEMAIL_POSTFIXADMIN_DBUSER}} password={{MYVEMAIL_POSTFIXADMIN_DBPASS}}
|
# ssl_cert = </etc/ssl/dovecot/tls.pem
|
||||||
default_pass_scheme = ARGON2I
|
# ssl_key = </etc/ssl/dovecot/tls.key
|
||||||
password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1'
|
# ssl-keys.conf
|
||||||
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u' AND active='1'
|
|
||||||
iterate_query = SELECT username AS user FROM mailbox
|
|
||||||
dovecot
|
|
||||||
|
|
||||||
# 10-ssl.conf
|
|
||||||
install -m 0600 /dev/stdin /etc/dovecot/ssl-keys.conf <<- 'ssl-keys.conf'
|
|
||||||
ssl_dh = </etc/ssl/dovecot/dh.pem
|
|
||||||
ssl_cert = </etc/ssl/dovecot/tls.pem
|
|
||||||
ssl_key = </etc/ssl/dovecot/tls.key
|
|
||||||
ssl-keys.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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue