infra/roles/mail/templates/docker-compose.yml.j2
2024-04-07 22:02:52 -04:00

51 lines
1.8 KiB
Django/Jinja

services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
hostname: {{ domain }}
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
- "4190:4190"
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- /etc/letsencrypt:/etc/letsencrypt
- /etc/localtime:/etc/localtime:ro
environment:
- SSL_TYPE=letsencrypt
- ENABLE_CLAMAV=0
- ENABLE_AMAVIS=0
- ENABLE_MANAGESIEVE=1
- ENABLE_FAIL2BAN=1
- SPOOF_PROTECTION=1
- ACCOUNT_PROVISIONER=LDAP
- LDAP_SERVER_HOST=ldap://lldap.internal.simponic.xyz:3890
- LDAP_SEARCH_BASE=dc=simponic,dc=xyz
- LDAP_BIND_DN=uid=admin,ou=people,dc=simponic,dc=xyz
- LDAP_BIND_PW={{ lldap_admin_pass }}
- LDAP_QUERY_FILTER_USER=(&(objectClass=mailAccount)(|(uid=%u)))
- LDAP_QUERY_FILTER_GROUP=(&(cn=mail)(uniquemember=uid=%u,ou=people,dc=simponic,dc=xyz))
- LDAP_QUERY_FILTER_ALIAS=(&(objectClass=inetOrgPerson)(|(uid=%u)(mail=%u)))
- LDAP_QUERY_FILTER_DOMAIN=(mail=*@%s)
- 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
- ENABLE_SASLAUTHD=1
- SASLAUTHD_MECHANISMS=rimap
- SASLAUTHD_MECH_OPTIONS=127.0.0.1
- POSTMASTER_ADDRESS={{ postmaster_email }}
extra_hosts:
- "lldap.internal.simponic.xyz:{{ johan_ip }}"
dns:
- {{ nameserver_ip }}
restart: always