125 lines
4.3 KiB
YAML
125 lines
4.3 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
app:
|
|
image: mlan/kopano
|
|
networks:
|
|
- backend
|
|
# ports: # Uncomment to expose ports to host interfaces
|
|
# - "80:80" # WebApp & EAS (alt. HTTP)
|
|
# - "143:143" # IMAP (not needed if all devices can use EAS)
|
|
# - "110:110" # POP3 (not needed if all devices can use EAS)
|
|
# - "8080:8080" # ICAL (not needed if all devices can use EAS)
|
|
# - "993:993" # IMAPS (not needed if all devices can use EAS)
|
|
# - "995:995" # POP3S (not needed if all devices can use EAS)
|
|
# - "8443:8443" # ICALS (not needed if all devices can use EAS)
|
|
depends_on:
|
|
- auth
|
|
- db
|
|
- mta
|
|
environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given.
|
|
- USER_PLUGIN=ldap
|
|
- LDAP_URI=ldap://auth/
|
|
- MYSQL_HOST=db
|
|
- SMTP_SERVER=mta
|
|
- LDAP_SEARCH_BASE=${AD_BASE-dc=example,dc=com}
|
|
- LDAP_USER_TYPE_ATTRIBUTE_VALUE=${AD_USR_OB-kopano-user}
|
|
- LDAP_GROUP_TYPE_ATTRIBUTE_VALUE=${AD_GRP_OB-kopano-group}
|
|
- LDAP_GROUPMEMBERS_ATTRIBUTE_TYPE=dn
|
|
- LDAP_PROPMAP=
|
|
- DAGENT_PLUGINS=movetopublicldap
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE-kopano}
|
|
- MYSQL_USER=${MYSQL_USER-kopano}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD-secret}
|
|
- IMAP_LISTEN=*:143 # also listen to eth0
|
|
- POP3_LISTEN=*:110 # also listen to eth0
|
|
- ICAL_LISTEN=*:8080 # also listen to eth0
|
|
- IMAPS_LISTEN=*:993 # enable TLS
|
|
- POP3S_LISTEN=*:995 # enable TLS
|
|
- ICALS_LISTEN=*:8443 # enable TLS
|
|
- PLUGIN_SMIME_USER_DEFAULT_ENABLE_SMIME=true
|
|
- SYSLOG_LEVEL=${SYSLOG_LEVEL-3}
|
|
- LOG_LEVEL=${LOG_LEVEL-3}
|
|
volumes:
|
|
- app-conf:/etc/kopano
|
|
- app-atch:/var/lib/kopano/attachments
|
|
- app-sync:/var/lib/z-push
|
|
- app-spam:/var/lib/kopano/spamd # kopano-spamd integration
|
|
- /etc/localtime:/etc/localtime:ro # Use host timezone
|
|
cap_add: # helps debugging by allowing strace
|
|
- sys_ptrace
|
|
|
|
mta:
|
|
image: mlan/postfix-amavis
|
|
hostname: ${MAIL_SRV-mx}.${MAIL_DOMAIN-example.com}
|
|
networks:
|
|
- backend
|
|
# ports: # # Uncomment to expose ports to host interfaces
|
|
# - "25:25" # SMTP
|
|
# - "465:465" # SMTPS authentication required
|
|
depends_on:
|
|
- auth
|
|
environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given.
|
|
- MESSAGE_SIZE_LIMIT=${MESSAGE_SIZE_LIMIT-25600000}
|
|
- LDAP_HOST=auth
|
|
- VIRTUAL_TRANSPORT=lmtp:app:2003
|
|
- SMTP_RELAY_HOSTAUTH=${SMTP_RELAY_HOSTAUTH-}
|
|
- SMTP_TLS_SECURITY_LEVEL=${SMTP_TLS_SECURITY_LEVEL-}
|
|
- SMTP_TLS_WRAPPERMODE=${SMTP_TLS_WRAPPERMODE-no}
|
|
- SMTPD_USE_TLS=yes
|
|
- LDAP_USER_BASE=ou=${AD_USR_OU-users},${AD_BASE-dc=example,dc=com}
|
|
- LDAP_QUERY_FILTER_USER=(&(objectclass=${AD_USR_OB-kopano-user})(mail=%s))
|
|
- LDAP_QUERY_ATTRS_PASS=uid=user
|
|
- REGEX_ALIAS=${REGEX_ALIAS-}
|
|
- DKIM_SELECTOR=${DKIM_SELECTOR-default}
|
|
- SA_TAG_LEVEL_DEFLT=${SA_TAG_LEVEL_DEFLT-2.0}
|
|
- SA_DEBUG=${SA_DEBUG-0}
|
|
- SYSLOG_LEVEL=${SYSLOG_LEVEL-}
|
|
- LOG_LEVEL=${LOG_LEVEL-0}
|
|
- RAZOR_REGISTRATION=${RAZOR_REGISTRATION-}
|
|
volumes:
|
|
- mta:/srv
|
|
- app-spam:/var/lib/kopano/spamd # kopano-spamd integration
|
|
- /etc/localtime:/etc/localtime:ro # Use host timezone
|
|
cap_add: # helps debugging by allowing strace
|
|
- sys_ptrace
|
|
|
|
db:
|
|
image: mariadb
|
|
command: ['--log_warnings=1']
|
|
networks:
|
|
- backend
|
|
environment:
|
|
- LANG=C.UTF-8
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD-secret}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE-kopano}
|
|
- MYSQL_USER=${MYSQL_USER-kopano}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD-secret}
|
|
volumes:
|
|
- db:/var/lib/mysql
|
|
- /etc/localtime:/etc/localtime:ro # Use host timezone
|
|
|
|
auth:
|
|
image: mlan/openldap
|
|
networks:
|
|
- backend
|
|
command: --root-cn ${AD_ROOT_CN-admin} --root-pw ${AD_ROOT_PW-secret}
|
|
environment:
|
|
- LDAPBASE=${AD_BASE-dc=example,dc=com}
|
|
- LDAPDEBUG=${AD_DEBUG-parse}
|
|
volumes:
|
|
- auth:/srv
|
|
- /etc/localtime:/etc/localtime:ro # Use host timezone
|
|
|
|
networks:
|
|
backend:
|
|
|
|
volumes:
|
|
app-atch:
|
|
app-conf:
|
|
app-spam:
|
|
app-sync:
|
|
auth:
|
|
db:
|
|
mta:
|