From b4c429a3358dbd1d71b75a37140a8be10e105f27 Mon Sep 17 00:00:00 2001 From: Alberto Bertogli Date: Sun, 1 Feb 2026 12:52:16 +0000 Subject: [PATCH] docker: Update Dovecot config to 2.4 Debian 13, the new stable version, updated Dovecot from 2.3 to 2.4. Unfortunately, the new Dovecot version introduced several changes to the configuration file that are not backwards-compatible. https://doc.dovecot.org/2.4.2/installation/upgrade/2.3-to-2.4.html This patch updates our docker's Dovecot config to the new version. Thanks to Ernesto Alfonso (erjoalgo@github) for reporting this problem in https://github.com/albertito/chasquid/issues/80. --- docker/dovecot.conf | 28 ++++++++++++++++------------ docker/entrypoint.sh | 8 ++++---- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/docker/dovecot.conf b/docker/dovecot.conf index cd07b73..d305c80 100644 --- a/docker/dovecot.conf +++ b/docker/dovecot.conf @@ -1,4 +1,7 @@ +dovecot_config_version = 2.4.0 +dovecot_storage_version = 2.4.0 + # # Logging # @@ -10,10 +13,11 @@ log_path = /data/dovecot/dovecot.log # Store emails in /data/mail/home/domain/user, which will be inside the # container's volume. -mail_home = /data/mail/home/%d/%n +mail_home = /data/mail/home/%{user|domain}/%{user|username} # Use Dovecot's native format. -mail_location = mdbox:~/mdbox +mail_driver = mdbox +mail_path = ~/mdbox # User and group used to store and access mailboxes. mail_uid = dovecot @@ -31,13 +35,13 @@ first_valid_gid = 100 # Static file, in /data/dovecot/users. auth_mechanisms = plain -passdb { - driver = passwd-file - args = scheme=CRYPT username_format=%u /data/dovecot/users +passdb passwd-file { + passwd_file_path = /data/dovecot/users + auth_username_format = %{user} } -userdb { - driver = passwd-file - args = /data/dovecot/users +userdb passwd-file { + passwd_file_path = /data/dovecot/users + auth_username_format = %{user} } @@ -102,8 +106,10 @@ service managesieve { } protocol sieve { } -plugin { - sieve = file:~/sieve;active=~/.dovecot.sieve +sieve_script personal { + driver = file + path = ~/sieve + active_path = ~/.dovecot.sieve } # @@ -125,8 +131,6 @@ service auth { } service auth-worker { } -dict { -} service lmtp { # This is used by mda-lmtp. unix_listener lmtp { diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index a864bf2..a357e3e 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -85,13 +85,13 @@ chown dovecot:dovecot /data/mail/ # The default goes first because dovecot complains otherwise. echo "# Autogenerated by entrypoint.sh" > /etc/dovecot/auto-ssl.conf cat >> /etc/dovecot/auto-ssl.conf <> /etc/dovecot/auto-ssl.conf