{% set env='mailu.env' %} # This file is auto-generated by the Mailu configuration wizard. # Please read the documentation before attempting any change. # Generated for {{ flavor }} flavor version: '3.6' services: # External dependencies redis: image: redis:alpine restart: always volumes: - "{{ root }}/redis:/data" {% if db_flavor == 'postgresql' and postgresql == 'internal' %} database: image: ${DOCKER_ORG:-mailu}/postgresql:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/data/psql_db:/data" - "{{ root }}/data/psql_backup:/backup" {% endif %} # Core services front: image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} logging: driver: {{ log_driver or 'json-file' }} ports: {% for port in (80, 443, 25, 465, 587, 110, 995, 143, 993) %} {% if bind4 %} - "{{ bind4 }}:{{ port }}:{{ port }}" {% endif %} {% if bind6 %} - "{{ bind6 }}:{{ port }}:{{ port }}" {% endif %} {% endfor %} volumes: - "{{ root }}/certs:/certs" {% if resolver_enabled %} resolver: image: mailu/unbound:{{ version }} env_file: {{ env }} restart: always networks: default: ipv4_address: {{ dns }} {% endif %} admin: image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} {% if not admin_enabled %} ports: - 127.0.0.1:8080:80 {% endif %} volumes: - "{{ root }}/data:/data" - "{{ root }}/dkim:/dkim" depends_on: - redis imap: image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/mail:/mail" - "{{ root }}/overrides:/overrides" depends_on: - front smtp: image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/overrides:/overrides" depends_on: - front {% if resolver_enabled %} - resolver dns: - {{ dns }} {% endif %} antispam: image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/filter:/var/lib/rspamd" - "{{ root }}/dkim:/dkim" - "{{ root }}/overrides/rspamd:/etc/rspamd/override.d" depends_on: - front {% if resolver_enabled %} - resolver dns: - {{ dns }} {% endif %} # Optional services {% if antivirus_enabled %} antivirus: image: ${DOCKER_ORG:-mailu}/clamav:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/filter:/data" {% if resolver_enabled %} depends_on: - resolver dns: - {{ dns }} {% endif %} {% endif %} {% if webdav_enabled %} webdav: image: ${DOCKER_ORG:-mailu}/radicale:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/dav:/data" {% endif %} {% if fetchmail_enabled %} fetchmail: image: ${DOCKER_ORG:-mailu}/fetchmail:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} {% if resolver_enabled %} depends_on: - resolver dns: - {{ dns }} {% endif %} {% endif %} # Webmail {% if webmail_type != 'none' %} webmail: image: ${DOCKER_ORG:-mailu}/{{ webmail_type }}:${MAILU_VERSION:-{{ version }}} restart: always env_file: {{ env }} volumes: - "{{ root }}/webmail:/data" depends_on: - imap {% endif %} {% if resolver_enabled or db_flavor == 'postgresql' %} networks: default: driver: bridge ipam: driver: default config: - subnet: {{ subnet }} {% endif %}