From a147085a2fc2c5bc2048d461e81bc121daf4cfb0 Mon Sep 17 00:00:00 2001 From: ddiawara <62718811+ddiawara@users.noreply.github.com> Date: Thu, 28 Dec 2023 11:26:37 +0100 Subject: [PATCH] example_configs: add Dovecot configuration for docker-mailserver --------- Co-authored-by: Dedy Martadinata S --- example_configs/mailserver.md | 96 +++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 example_configs/mailserver.md diff --git a/example_configs/mailserver.md b/example_configs/mailserver.md new file mode 100644 index 0000000..26a8df4 --- /dev/null +++ b/example_configs/mailserver.md @@ -0,0 +1,96 @@ +# Mailserver Docker + +[Docker-mailserver](https://docker-mailserver.github.io/docker-mailserver/latest/) is a Production-ready full-stack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. + +To integrate with LLDAP, ensure you correctly adjust the `docker-mailserver` container environment values. + +## Compose File Sample +```yaml +version: "3.9" +services: + lldap: + image: lldap/lldap:stable + ports: + - "3890:3890" + - "17170:17170" + volumes: + - "lldap_data:/data" + environment: + - VERBOSE=true + - TZ=Etc/UTC + - LLDAP_JWT_SECRET=yourjwt + - LLDAP_LDAP_USER_PASS=adminpassword + - LLDAP_LDAP_BASE_DN=dc=example,dc=com + + mailserver: + image: ghcr.io/docker-mailserver/docker-mailserver:latest + container_name: mailserver + hostname: mail.example.com + ports: + - "25:25" # SMTP (explicit TLS => STARTTLS) + - "143:143" # IMAP4 (explicit TLS => STARTTLS) + - "465:465" # ESMTP (implicit TLS) + - "587:587" # ESMTP (explicit TLS => STARTTLS) + - "993:993" # IMAP4 (implicit TLS) + volumes: + - mailserver-data:/var/mail + - mailserver-state:/var/mail-state + - mailserver-config:/tmp/docker-mailserver/ + - /etc/localtime:/etc/localtime:ro + restart: always + stop_grace_period: 1m + healthcheck: + test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" + timeout: 3s + retries: 0 + environment: + - LOG_LEVEL=debug + - SUPERVISOR_LOGLEVEL=debug + - SPAMASSASSIN_SPAM_TO_INBOX=1 + - ENABLE_FAIL2BAN=0 + - ENABLE_AMAVIS=0 + - SPOOF_PROTECTION=1 + - ENABLE_OPENDKIM=0 + - ENABLE_OPENDMARC=0 + # >>> Postfix LDAP Integration + - ACCOUNT_PROVISIONER=LDAP + - LDAP_SERVER_HOST=lldap:3890 + - LDAP_SEARCH_BASE=dc=example,dc=com + - LDAP_BIND_DN=uid=admin,ou=people,dc=example,dc=com + - LDAP_BIND_PW=adminpassword + - LDAP_QUERY_FILTER_USER=(&(objectClass=inetOrgPerson)(|(uid=%u)(mail=%u))) + - LDAP_QUERY_FILTER_GROUP=(&(objectClass=groupOfUniqueNames)(uid=%s)) + - LDAP_QUERY_FILTER_ALIAS=(&(objectClass=inetOrgPerson)(|(uid=%u)(mail=%u))) + - LDAP_QUERY_FILTER_DOMAIN=((mail=*@%s)) + # <<< Postfix LDAP Integration + # >>> Dovecot LDAP Integration + - DOVECOT_AUTH_BIND=yes + - DOVECOT_USER_FILTER=(&(objectClass=inetOrgPerson)(|(uid=%u)(mail=%u))) + - DOVECOT_USER_ATTRS==uid=5000,=gid=5000,=home=/var/mail/%Ln,=mail=maildir:~/Maildir + - POSTMASTER_ADDRESS=postmaster@d3n.com + cap_add: + - SYS_PTRACE + - NET_ADMIN # For Fail2Ban to work + + roundcubemail: + image: roundcube/roundcubemail:latest + container_name: roundcubemail + restart: always + volumes: + - roundcube_data:/var/www/html + ports: + - "9002:80" + environment: + - ROUNDCUBEMAIL_DB_TYPE=sqlite + - ROUNDCUBEMAIL_SKIN=elastic + - ROUNDCUBEMAIL_DEFAULT_HOST=mailserver # IMAP + - ROUNDCUBEMAIL_SMTP_SERVER=mailserver # SMTP + +volumes: + mailserver-data: + mailserver-config: + mailserver-state: + lldap_data: + roundcube_data: + +```