No description
Find a file
lilly 43d88ffcdc
All checks were successful
ci/woodpecker/push/container_image Pipeline was successful
remove statically configured auth mechanisms from dovecot
Users are now expected to provide their own passdb to configure
authentication how they want it.
2025-04-06 14:39:56 +02:00
.woodpecker update CI config to use new secret declaration syntax 2025-01-15 15:27:37 +01:00
dovecot remove statically configured auth mechanisms from dovecot 2025-04-06 14:39:56 +02:00
opendkim generalize opendkim key name to "main" 2023-05-19 13:41:14 +02:00
postfix add separate port for smtp+haproxy 2024-07-19 16:04:50 +02:00
rspamd reduce required learnings for bayes spam filter 2023-08-10 12:51:18 +02:00
s6-rc.d fix spelling of dovecot lmtp socket path in fetchmail invocation 2025-01-16 08:42:29 +01:00
.gitignore ignore .idea folder 2021-12-09 19:29:03 +01:00
Dockerfile add ldap passdb config to dovecot 2025-03-12 09:53:58 +01:00
README.md remove statically configured auth mechanisms from dovecot 2025-04-06 14:39:56 +02:00
renovate.json Add renovate.json 2024-10-12 11:01:17 +00:00

Dockerized Mailserver

Exposed Ports

Port Service Description
25 SMTP Requires no authentication but is under heavy restrictions regarding the senders that are accepted based on spam protection heuristics
26 SMTP Same as above but expects a PROXY-Protocol header
587 Submission Mail submission port for users. Basically SMTP but STARTTLS as well as authentication are always required
993 Imap Used for retrieving mails and managing mailboxes
4190 sieve-manage Management port for sieve-scripts
11334 rspamd HTTP server of the rspamd admin interface

Persistence

This container requires persistent volumes at the following locations:

  • /app/mail for storing actual emails in maildir format
  • /app/data for various database e.g. spam filter learnings

Config Files

  • /app/conf/dovecot_local.conf A dovecot configuration file that is automatically included at the end of the container's configuration. This file must contain at least one passdb block so that dovecot knows how to authenticate users.

  • /app/conf/postfix_local.cf A postfix main.cf file that is automatically appended to the container's configuration.

  • /app/conf/postfix_virtual_alias_maps.txt A berkeley db table which lists email address aliases (Postfix reference).

    This basically means one alias per line in a <from> <to> format. These aliases can be recursive.

    For mails to be correctly deliverable, all aliases should finally resolve to a keycloak username.

  • /app/conf/postfix_virtual_domains.txt A berkeley db table which lists domains for which this server accepts mails.

    The right-hand side of the table is completely ignored and can be anything.

  • /app/conf/postfix_sender_login_maps.txt A lookup table that specifies which user is allowed to send from which address.

    Postfix Documentation

  • /app/conf/postfix_recipient_access.txt A lookup table from which postfix determines specific actions that it performs depending on the resolved recipient address.

    Postfix Documentation

  • /app/conf/rspamd_worker_controller.inc Incrementally applied configuration file for rspamd.

    It should at least set the following parameters:

    password = "$2$z4y5epzqj6jxzrkxca4wb4tszfnhmtcs$39tgkjx95srtw4mu9ey5fcxrn6yq4wsqy5z4eqxwijzbas9kq7wb";
    
  • /app/conf/opendkim_domains.txt A file listing the domains which will be dkim signed.

  • /app/conf/opendkim_key.pem The private key with which dkim signatures will be made.

  • /app/ssl/tls.crt and /app/ssl/tls.key for TLS encryption.

  • /app/conf/fetchmailrc for configuring fetchmail. See the documentation for the syntax of this file.

    Delivery options can be ignored in the config file as they are set as command line arguments to fetchmail by the container (see the launch script for details).

    The file could for example look like this:

    poll imap.mydomain.de protocol IMAP auth password
      user "ftsell" with password "…" is "ftsell" here