{% include 'roles/docker-compose/templates/base.yml.j2' %} # Core services resolver: image: {{docker_source}}/unbound:{{ mailu_version }} container_name: {{mailu_name}}_resolver {% include 'roles/docker-container/templates/base.yml.j2' %} {% include 'roles/docker-container/templates/networks.yml.j2' %} ipv4_address: {{networks.local['web-app-mailu'].dns}} front: container_name: {{mailu_name}}_front image: {{docker_source}}/nginx:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} ports: - "127.0.0.1:{{ports.localhost.http[application_id]}}:80" - "{{ networks.internet.ip4 }}:25:25" - "{{ networks.internet.ip4 }}:465:465" - "{{ networks.internet.ip4 }}:587:587" - "{{ networks.internet.ip4 }}:110:110" - "{{ networks.internet.ip4 }}:995:995" - "{{ networks.internet.ip4 }}:143:143" - "{{ networks.internet.ip4 }}:993:993" - "{{ networks.internet.ip4 }}:4190:4190" volumes: - "{{docker_compose.directories.volumes}}overrides/nginx:/overrides:ro" - "{{cert_mount_directory}}:/certs:ro" {% include 'roles/docker-container/templates/depends_on/dmbs_incl.yml.j2' %} resolver: condition: service_started {% include 'roles/docker-container/templates/networks.yml.j2' %} webmail: radicale: dns: - {{networks.local['web-app-mailu'].dns}} admin: container_name: {{mailu_name}}_admin image: {{docker_source}}/admin:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "admin_data:/data" - "dkim:/dkim" {% include 'roles/docker-container/templates/depends_on/dmbs_incl.yml.j2' %} resolver: condition: service_started front: condition: service_started dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} imap: container_name: {{mailu_name}}_imap image: {{docker_source}}/dovecot:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "dovecot_mail:/mail" - "{{docker_compose.directories.volumes}}overrides:/overrides:ro" depends_on: - front - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} smtp: container_name: {{mailu_name}}_smtp image: {{docker_source}}/postfix:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "{{docker_compose.directories.volumes}}overrides:/overrides:ro" - "smtp_queue:/queue" depends_on: - front - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} oletools: container_name: {{mailu_name}}_oletools image: {{docker_source}}/oletools:{{ mailu_version }} hostname: oletools restart: {{docker_restart_policy}} depends_on: - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} noinet: antispam: container_name: {{mailu_name}}_antispam image: {{docker_source}}/rspamd:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "filter:/var/lib/rspamd" - "dkim:/dkim" - "{{docker_compose.directories.volumes}}overrides/rspamd:/overrides:ro" depends_on: - front - redis - antivirus - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} noinet: # Optional services antivirus: container_name: {{mailu_name}}_antivirus image: clamav/clamav-debian:latest {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "filter:/data" depends_on: - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} webdav: container_name: {{mailu_name}}_webdav image: {{docker_source}}/radicale:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "webdav_data:/data" depends_on: - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} radicale: fetchmail: container_name: {{mailu_name}}_fetchmail image: {{docker_source}}/fetchmail:{{ mailu_version }} volumes: - "admin_data:/data" {% include 'roles/docker-container/templates/base.yml.j2' %} depends_on: - admin - smtp - imap - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} webmail: container_name: {{mailu_name}}_webmail image: {{docker_source}}/webmail:{{ mailu_version }} {% include 'roles/docker-container/templates/base.yml.j2' %} volumes: - "webmail_data:/data" - "{{docker_compose.directories.volumes}}overrides:/overrides:ro" depends_on: - imap - front - resolver dns: - {{networks.local['web-app-mailu'].dns}} {% include 'roles/docker-container/templates/networks.yml.j2' %} webmail: {% include 'roles/docker-compose/templates/volumes.yml.j2' %} smtp_queue: name: {{ mailu_smtp_queue }} admin_data: name: {{ mailu_admin_data }} webdav_data: name: {{ mailu_webdav_data }} webmail_data: name: {{ mailu_webmail_data }} filter: name: {{ mailu_filter }} dkim: name: {{ mailu_dkim }} dovecot_mail: name: {{ mailu_dovecot_mail }} redis: name: {{ mailu_redis }} {% include 'roles/docker-compose/templates/networks.yml.j2' %} radicale: driver: bridge webmail: driver: bridge noinet: driver: bridge internal: true