1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2026-02-02 21:45:55 +00:00
Files
go-chasquid-smtp/docker/dovecot.conf
Alberto Bertogli b4c429a335 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.
2026-02-01 13:34:15 +00:00

139 lines
2.2 KiB
Plaintext

dovecot_config_version = 2.4.0
dovecot_storage_version = 2.4.0
#
# Logging
#
log_path = /data/dovecot/dovecot.log
#
# Email storage
#
# Store emails in /data/mail/home/domain/user, which will be inside the
# container's volume.
mail_home = /data/mail/home/%{user|domain}/%{user|username}
# Use Dovecot's native format.
mail_driver = mdbox
mail_path = ~/mdbox
# User and group used to store and access mailboxes.
mail_uid = dovecot
mail_gid = dovecot
# As we're using virtual mailboxes, the system user will be "dovecot", which
# has uid in the 100-500 range. By default using uids <500 is blocked, so we
# need to explicitly lower the value to allow storage of mail as "dovecot".
first_valid_uid = 100
first_valid_gid = 100
#
# Authentication
#
# Static file, in /data/dovecot/users.
auth_mechanisms = plain
passdb passwd-file {
passwd_file_path = /data/dovecot/users
auth_username_format = %{user}
}
userdb passwd-file {
passwd_file_path = /data/dovecot/users
auth_username_format = %{user}
}
#
# TLS
#
# TLS is mandatory.
# The entrypoint generates auto-ssl.conf, with all the certificates.
ssl = required
!include_try /etc/dovecot/auto-ssl.conf
# Only allow TLS 1.2 and up.
ssl_min_protocol = TLSv1.2
#
# Protocols
#
protocols = lmtp imap pop3 sieve
#
# IMAP
#
service imap-login {
inet_listener imap {
# Disable plain text IMAP, just in case.
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service imap {
}
#
# POP3
#
service pop3-login {
inet_listener pop3 {
# Disable plain text POP3, just in case.
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service pop3 {
}
#
# Sieve/managesieve
#
service managesieve-login {
}
service managesieve {
}
protocol sieve {
}
sieve_script personal {
driver = file
path = ~/sieve
active_path = ~/.dovecot.sieve
}
#
# Internal services
#
service auth {
unix_listener auth-userdb {
}
# Grant chasquid access to request user authentication.
unix_listener auth-chasquid-userdb {
mode = 0660
user = chasquid
}
unix_listener auth-chasquid-client {
mode = 0660
user = chasquid
}
}
service auth-worker {
}
service lmtp {
# This is used by mda-lmtp.
unix_listener lmtp {
}
}