diff options
Diffstat (limited to 'services/docker/mail-server/dovecot.conf')
-rw-r--r-- | services/docker/mail-server/dovecot.conf | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/services/docker/mail-server/dovecot.conf b/services/docker/mail-server/dovecot.conf new file mode 100644 index 0000000..5d2eaf4 --- /dev/null +++ b/services/docker/mail-server/dovecot.conf @@ -0,0 +1,197 @@ +dovecot_config_version = 2.4.1 +dovecot_storage_version = 2.4.0 + +base_dir = /run/dovecot +state_dir = /run/dovecot +log_path = /dev/stdout + +protocols = imap submission lmtp sieve +sendmail_path = /app/out/crupest-relay sendmail +submission_relay_host = 127.0.0.1 +submission_relay_port = 2346 +submission_relay_trusted = yes + +mail_driver = maildir +mail_home = /data/vmail/%{user | domain}/%{user | username} +mail_path = ~/mail +mail_log_events = delete undelete expunge save copy mailbox_create mailbox_delete mailbox_rename flag_change + +# Setup default mailboxes for inbox namespace +@mailbox_defaults = english + +namespace inbox { + mailbox Archive { + special_use = "\\Archive" + } +} + +mail_plugins { + fts = yes + fts_flatcurve = yes + mail_log = yes + notify = yes +} + +fts_autoindex = yes +fts_autoindex_max_recent_msgs = 999 +fts_search_add_missing = yes +language_filters = normalizer-icu snowball stopwords + +language_tokenizers = generic email-address +language_tokenizer_generic_algorithm = simple + +language en { + default = yes + filters = lowercase snowball english-possessive stopwords +} + +fts flatcurve { + substring_search = yes +} + +auth_mechanisms = plain login + +passdb passwd-file { + passwd_file_path = /data/userdb + default_password_scheme = SHA512-CRYPT +} + +userdb passwd-file { + passwd_file_path = /data/userdb + fields { + uid:default = vmail + gid:default = vmail + home:default = /data/vmail/%{user | domain}/%{user | username} + } +} + +ssl = yes +ssl_server { + cert_file = /etc/dovecot/ssl/tls.crt + key_file = /etc/dovecot/ssl/tls.key +} + +protocol imap { + mail_plugins { + imap_sieve = yes + imap_filter_sieve = yes + } +} + +protocol lmtp { + mail_plugins { + sieve = yes + } +} + +protocol lda { + mail_plugins { + sieve = yes + } +} + +service imap-login { + process_min_avail = 1 + client_limit = 100 +} + +service pop3-login { + process_min_avail = 1 + client_limit = 100 +} + +service submission-login { + process_min_avail = 1 + client_limit = 100 + + inet_listener submissions { + port = 465 + ssl = yes + } +} + +service managesieve-login { + process_min_avail = 1 + client_limit = 100 +} + +sieve_plugins = sieve_imapsieve sieve_extprograms + +event_exporter log { + format = json + time_format = rfc3339 +} + +# Add default backend metrics +@metric_defaults = backend + +# Log auth failures +metric auth_failures { + filter = event=auth_request_finished AND NOT success=yes + exporter = log +} + +metric imap_command { + filter = event=imap_command_finished + group_by cmd_name { + method discrete { + } + } + group_by tagged_reply_state { + method discrete { + } + } +} + +metric smtp_command { + filter = event=smtp_server_command_finished and protocol=submission + group_by cmd_name { + method discrete { + } + } + group_by status_code { + method discrete { + } + } + group_by duration { + method exponential { + base = 10 + min_magnitude = 1 + max_magnitude = 5 + } + } +} + +metric lmtp_command { + filter = event=smtp_server_command_finished and protocol=lmtp + group_by cmd_name { + method discrete { + } + } + group_by status_code { + method discrete { + } + } + group_by duration { + method exponential { + base = 10 + min_magnitude = 1 + max_magnitude = 5 + } + } +} + +# Add duration metrics for deliveries +metric mail_deliveries { + filter = event=mail_delivery_finished + group_by duration { + method exponential { + base = 10 + min_magnitude = 1 + max_magnitude = 5 + } + } +} + +!include_try vendor.d/*.conf +!include_try conf.d/*.conf |