mirror of
https://github.com/zokradonh/kopano-docker
synced 2025-06-07 07:56:12 +00:00
155 lines
5.2 KiB
Plaintext
155 lines
5.2 KiB
Plaintext
version: "3"
|
|
|
|
services:
|
|
web:
|
|
image: abiosoft/caddy:0.10.4
|
|
restart: always
|
|
privileged: true
|
|
links:
|
|
- kwebapp
|
|
#- kzpush
|
|
ports:
|
|
- "10080:80"
|
|
- "10443:443"
|
|
volumes:
|
|
- ./web/Caddyfile:/etc/Caddyfile
|
|
- ./data/web:/root/.caddy
|
|
|
|
mail:
|
|
image: tvial/docker-mailserver:latest
|
|
restart: always
|
|
hostname: mail
|
|
domainname: kopano.demo # change here
|
|
container_name: mail
|
|
ports:
|
|
- "25:25"
|
|
volumes:
|
|
- ./data/mail/data:/var/mail
|
|
- ./data/mail/state:/var/mail-state
|
|
- ./mail/config:/tmp/docker-mailserver/
|
|
#- ./data/web/acme-v01.api.letsencrypt.org/sites/mail.kopano.demo:/tmp/ssl:ro
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
- ENABLE_SPAMASSASSIN=1
|
|
- ENABLE_CLAMAV=1
|
|
- ENABLE_FAIL2BAN=1
|
|
- ENABLE_POSTGREY=1
|
|
- ONE_DIR=0
|
|
- DMS_DEBUG=0
|
|
- SSL_TYPE=manual
|
|
- SSL_CERT_PATH=/tmp/ssl/mail.kopano.demo.crt
|
|
- SSL_KEY_PATH=/tmp/ssl/mail.kopano.demo.key
|
|
- ENABLE_LDAP=1
|
|
- LDAP_SERVER_HOST=ldaps://ldapserver:ldapport #change here
|
|
- LDAP_SEARCH_BASE=OU=MyUsers,DC=domain,DC=tld #change here
|
|
- LDAP_BIND_DN=cn=SOME_STANDARD_USER,OU=MyUsers,DC=domain,DC=tld #change here
|
|
- LDAP_BIND_PW=PASSWORD_OF_SOME_STANDARD_USER #change here
|
|
- LDAP_QUERY_FILTER_USER=(&(objectClass=user)(|(mail=%s)(otherMailbox=%s)))
|
|
- LDAP_QUERY_FILTER_GROUP=(&(objectclass=group)(mail=%s))
|
|
- LDAP_QUERY_FILTER_ALIAS=(&(objectClass=user)(otherMailbox=%s))
|
|
- LDAP_QUERY_FILTER_DOMAIN=(&(|(mail=*@%s)(otherMailbox=*@%s)(mailGroupMember=*@%s))(kopanoAccount=1)(|(objectClass=user)(objectclass=group)))
|
|
- ENABLE_SASLAUTHD=1
|
|
- SASLAUTHD_LDAP_SERVER=ldaps://ldapserver:ldapport #change here
|
|
- SASLAUTHD_LDAP_BIND_DN=cn=SOME_STANDARD_USER,OU=MyUsers,DC=domain,DC=tld #change here
|
|
- SASLAUTHD_LDAP_PASSWORD=PASSWORD_OF_SOME_STANDARD_USER #change here
|
|
- SASLAUTHD_LDAP_SEARCH_BASE=OU=MyUsers,DC=domain,DC=tld #change here
|
|
- SASLAUTHD_LDAP_FILTER=(&(sAMAccountName=%U)(objectClass=person))
|
|
- SASLAUTHD_MECHANISMS=ldap
|
|
- POSTMASTER_ADDRESS=postmaster@domain.tld #change here
|
|
- SMTP_ONLY=1
|
|
- PERMIT_DOCKER=network
|
|
- ENABLE_POSTFIX_VIRTUAL_TRANSPORT=1
|
|
- POSTFIX_DAGENT=lmtp:kdagent:2003
|
|
- REPORT_RECIPIENT=1
|
|
networks:
|
|
- kopanonet
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_PTRACE
|
|
|
|
# TODO find good example ldap container
|
|
db:
|
|
image: mariadb:10.3.10-bionic
|
|
restart: always
|
|
container_name: kopano_db
|
|
volumes:
|
|
- ./data/mysql/:/var/lib/mysql
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=YOUR_MYSQL_ROOT_PASSWORD #change here
|
|
- MYSQL_PASSWORD=YOUR_PASSWORD #change here
|
|
- MYSQL_DATABASE=kopano
|
|
- MYSQL_USER=kopano
|
|
healthcheck:
|
|
test: ["CMD-SHELL", 'mysql --database=$$MYSQL_DATABASE --password=$$MYSQL_ROOT_PASSWORD --execute="SELECT count(table_name) > 0 FROM information_schema.tables;" --skip-column-names -B']
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 4
|
|
networks:
|
|
- kopanonet
|
|
|
|
kwebapp:
|
|
image: zokradonh/kopano_webapp:latest
|
|
hostname: kwebapp
|
|
container_name: kopano_webapp
|
|
links:
|
|
- kserver
|
|
volumes:
|
|
- ./data/z-push-states/:/var/lib/z-push/
|
|
- ./ssl/:/kopano/ssl
|
|
- ./data/socket/:/run/kopano
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
#- ADDITIONAL_KOPANO_PACKAGES=kopano-webapp-plugin-mattermost
|
|
networks:
|
|
- web
|
|
- kopanonet
|
|
|
|
kssl:
|
|
image: zokradonh/kopano_ssl
|
|
container_name: kopano_ssl
|
|
volumes:
|
|
- ./data/ssl/:/kopano/ssl
|
|
|
|
kserver:
|
|
image: zokradonh/kopano_core:latest
|
|
hostname: kserver
|
|
container_name: kopano_server
|
|
links:
|
|
- db
|
|
depends_on:
|
|
- db
|
|
- kssl
|
|
environment:
|
|
- SERVICE_TO_START=server
|
|
- TZ=Europe/Berlin
|
|
- KCCONF_SERVER_COREDUMP_ENABLED=no
|
|
- KCCONF_SERVER_LOG_LEVEL=4
|
|
- KCCONF_SERVER_MYSQL_HOST=db
|
|
- KCCONF_SERVER_MYSQL_PORT=3306
|
|
- KCCONF_SERVER_MYSQL_DATABASE=kopano
|
|
- KCCONF_SERVER_MYSQL_USER=root
|
|
- KCCONF_SERVER_MYSQL_PASSWORD=YOUR_MYSQL_ROOT_PASSWORD #change here
|
|
- KCCONF_SERVER_SERVER_SSL_KEY_FILE=/kopano/ssl/kserver.pem
|
|
- KCCONF_SERVER_SERVER_SSL_CA_FILE=/kopano/ssl/ca.pem
|
|
- KCCONF_SERVER_SSLKEYS_PATH=/kopano/ssl/clients
|
|
- KCCONF_SERVER_PROXY_HEADER=* # delete line if webapp is not behind reverse proxy
|
|
- KCCONF_SERVER_SYSTEM_EMAIL_ADDRESS=hostmaster@domain.tld #change here
|
|
- KCCONF_SERVER_DISABLED_FEATURES=pop3
|
|
- KCCONF_LDAP_LDAP_URI=ldaps://ldapserver:ldapport #change here
|
|
- KCCONF_LDAP_LDAP_BIND_USER=cn=SOME_STANDARD_USER,OU=MyUsers,DC=domain,DC=tld #change here
|
|
- KCCONF_LDAP_LDAP_BIND_PASSWD=PASSWORD_OF_STANDARD_USER #change here
|
|
- KCCONF_LDAP_LDAP_SEARCH_BASE=OU=MyUsers,dc=domain,dc=tld #change here
|
|
- KCCOMMENT_LDAP_1=!include /usr/share/kopano/ldap.openldap.cfg #delete if you want openldap
|
|
- KCUNCOMMENT_LDAP_1=!include /usr/share/kopano/ldap.active-directory.cfg #delete if you want openldap
|
|
#- ADDITIONAL_KOPANO_PACKAGES=kopano-migration-imap
|
|
networks:
|
|
- kopanonet
|
|
volumes:
|
|
- ./data/kopano/:/kopano/data
|
|
- ./data/ssl/:/kopano/ssl
|
|
|
|
networks:
|
|
web:
|
|
kopanonet:
|
|
driver: bridge
|