diff --git a/setup/flavors/compose/docker-compose.yml b/setup/flavors/compose/docker-compose.yml index 428d6995..6532db59 100644 --- a/setup/flavors/compose/docker-compose.yml +++ b/setup/flavors/compose/docker-compose.yml @@ -180,7 +180,11 @@ services: {% endif %} antispam: +<<<<<<< HEAD image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-{{ version }}} +======= + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-{{ version }}} +>>>>>>> 8998e21f (Set static hostname for antispam to preserve history. See #561) hostname: antispam restart: always env_file: {{ env }} diff --git a/setup/flavors/stack/docker-compose.yml b/setup/flavors/stack/docker-compose.yml new file mode 100644 index 00000000..df1fe7b4 --- /dev/null +++ b/setup/flavors/stack/docker-compose.yml @@ -0,0 +1,149 @@ +{% 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 + volumes: + - "{{ root }}/redis:/data" + +# Core services + front: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + logging: + driver: {{ log_driver or 'json-file' }} + ports: + {% for port in (80, 443, 25, 465, 587, 110, 995, 143, 993) %} + - target: {{ port }} + published: {{ port }} + mode: overlay + {% endfor %} + volumes: + - "{{ root }}/certs:/certs" + - "{{ root }}/overrides/nginx:/overrides:ro" + deploy: + replicas: 1 + + admin: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + {% if not admin_enabled %} + ports: + - 127.0.0.1:8080:80 + {% endif %} + volumes: + - "{{ root }}/data:/data" + - "{{ root }}/dkim:/dkim" + deploy: + replicas: 1 + healthcheck: + disable: true + + imap: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/mail:/mail" + - "{{ root }}/overrides/dovecot:/overrides:ro" + deploy: + replicas: 1 + healthcheck: + disable: true + + smtp: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/mailqueue:/queue" + - "{{ root }}/overrides/postfix:/overrides:ro" + deploy: + replicas: 1 + healthcheck: + disable: true + + antispam: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-{{ version }}} + hostname: antispam + env_file: {{ env }} + volumes: + - "{{ root }}/filter:/var/lib/rspamd" + - "{{ root }}/dkim:/dkim:ro" + - "{{ root }}/overrides/rspamd:/etc/rspamd/override.d:ro" + deploy: + replicas: 1 + healthcheck: + disable: true + + # Optional services + {% if antivirus_enabled %} + antivirus: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}clamav:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/filter:/data" + deploy: + replicas: 1 + healthcheck: + disable: true + {% endif %} + + {% if webdav_enabled %} + webdav: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/dav:/data" + deploy: + replicas: 1 + healthcheck: + disable: true + {% endif %} + + {% if fetchmail_enabled %} + fetchmail: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/data:/data" + deploy: + replicas: 1 + healthcheck: + disable: true + {% endif %} + + {% if webmail_type != 'none' %} + webmail: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}{{ webmail_type }}:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/webmail:/data" + deploy: + replicas: 1 + healthcheck: + disable: true + {% endif %} + + {% if db_flavor == 'postgresql' and postgresql == 'internal' %} + database: + image: ${DOCKER_ORG:-mailu}/postgresql:${MAILU_VERSION:-{{ version }}} + env_file: {{ env }} + volumes: + - "{{ root }}/data/psql_backup:/backup" + healthcheck: + disable: true + {% endif %} + +networks: + default: + driver: overlay + ipam: + driver: default + config: + - subnet: {{ subnet }}