diff --git a/__swarm/mailu3/mailu3-swarm.yml b/__swarm/mailu3/mailu3-swarm.yml index 85431fc..5856917 100644 --- a/__swarm/mailu3/mailu3-swarm.yml +++ b/__swarm/mailu3/mailu3-swarm.yml @@ -1,348 +1,215 @@ networks: - clamav: - driver: overlay - default: driver: overlay - ipam: - config: - - subnet: 192.168.205.0/24 - driver: default - + clamav: + driver: overlay fts_attachments: driver: overlay internal: true - oletools: driver: overlay internal: true - radicale: driver: overlay - webmail: driver: overlay services: + admin: - dns: - - 192.168.205.254 - env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2024.06} + env_file: stack.env + depends_on: + - redis + - resolver + dns: + - 192.168.205.254 volumes: - - mailu3_data:/data - - mailu3_dkim:/dkim + - /share/docker_data/mailu3/data:/data + - /share/docker_data/mailu3/dkim:/dkim deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] antispam: + image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2024.06} + env_file: stack.env + depends_on: + - front + - redis + - oletools + - antivirus + - resolver dns: - 192.168.205.254 - env_file: stack.env - hostname: antispam - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2024.06} networks: - default - oletools - clamav volumes: - - filter:/var/lib/rspamd - - rspamd:/overrides:ro + - /share/docker_data/mailu3/filter:/var/lib/rspamd + - /share/docker_data/mailu3/overrides/rspamd:/overrides:ro deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] antivirus: - healthcheck: - interval: 10s - retries: 3 - start_period: 10s - test: ["CMD-SHELL", "kill -0 `cat /tmp/clamd.pid` && kill -0 `cat /tmp/freshclam.pid`"] - timeout: 5s image: ${DOCKER_REGISTRY:-}clamav/clamav-debian:1.2.0-6 networks: - clamav volumes: - - clamav:/var/lib/clamav + - /share/docker_data/mailu3/filter/clamav:/var/lib/clamav deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] fetchmail: - dns: - - 192.168.205.254 - env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-2024.06} + env_file: stack.env + depends_on: + - admin + - smtp + - imap + - resolver + dns: + - 192.168.205.254 volumes: - - fetchmail:/data + - /share/docker_data/mailu3/data/fetchmail:/data deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] front: + image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06} + env_file: stack.env dns: - 192.168.205.254 - env_file: stack.env - logging: - driver: loki - options: - loki-url: "http://192.168.77.101:3100/loki/api/v1/push" - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06} networks: - default - webmail - radicale ports: - - target: 80 - published: 8880 - protocol: tcp - mode: ingress - - target: 443 - published: 8443 - protocol: tcp - mode: ingress - - target: 25 - published: 25 - protocol: tcp - mode: ingress - - target: 465 - published: 465 - protocol: tcp - mode: ingress - - target: 587 - published: 587 - protocol: tcp - mode: ingress - - target: 110 - published: 110 - protocol: tcp - mode: ingress - - target: 995 - published: 995 - protocol: tcp - mode: ingress - - target: 143 - published: 143 - protocol: tcp - mode: ingress - - target: 993 - published: 993 - protocol: tcp - mode: ingress - - target: 4190 - published: 4190 - protocol: tcp - mode: ingress + - "8880:80" + - "8443:443" + - "25:25" + - "465:465" + - "587:587" + - "110:110" + - "995:995" + - "143:143" + - "993:993" + - "4190:4190" volumes: - - certs:/certs - - nginx:/overrides:ro + - /share/docker_data/mailu3/certs:/certs + - /share/docker_data/mailu3/overrides/nginx:/overrides:ro deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - homepage.container: mailu3-front-1 - homepage.description: eMail server - homepage.group: Utilities - homepage.href: https://mail.sectorq.eu - homepage.icon: ${APPNAME}.png - homepage.name: Mailu - homepage.server: my-docker-swarm - homepage.weight: '1' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] fts_attachments: - dns: - - 192.168.205.254 - healthcheck: - interval: 10s - retries: 3 - start_period: 10s - test: ["CMD-SHELL", "wget -nv -t1 -O /dev/null http://127.0.0.1:9998/tika || exit 1"] - timeout: 5s - hostname: tika image: ${DOCKER_REGISTRY:-}apache/tika:2.9.2.1-full networks: - fts_attachments deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] imap: + image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06} + env_file: stack.env dns: - 192.168.205.254 - env_file: stack.env - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06} networks: - default - fts_attachments volumes: - - imap:/mail - - dovecot:/overrides:ro + - /share/docker_data/mailu3/mail:/mail + - /share/docker_data/mailu3/overrides/dovecot:/overrides:ro deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] oletools: - dns: - - 192.168.205.254 - hostname: oletools image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-2024.06} networks: - oletools deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] redis: - dns: - - 192.168.205.254 image: ${DOCKER_REGISTRY:-}redis:alpine volumes: - - redis:/data + - /share/docker_data/mailu3/redis:/data deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] resolver: - env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06} + env_file: stack.env networks: - default: - ipv4_address: 192.168.205.254 + - default deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] smtp: + image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06} + env_file: stack.env dns: - 192.168.205.254 - env_file: stack.env - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06} volumes: - - mailqueue:/queue - - postfix:/overrides:ro + - /share/docker_data/mailu3/mailqueue:/queue + - /share/docker_data/mailu3/overrides/postfix:/overrides:ro deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] webdav: image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06} networks: - radicale volumes: - - webdav:/data + - /share/docker_data/mailu3/dav:/data deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager + constraints: [node.role == manager] webmail: - env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2024.06} + env_file: stack.env networks: - webmail volumes: - - webmail_data:/data - - roundcube:/overrides:ro + - /share/docker_data/mailu3/webmail:/data + - /share/docker_data/mailu3/overrides/roundcube:/overrides:ro deploy: - labels: - wud.watch: 'true' - wud.watch.digest: 'true' - replicas: 1 + restart_policy: + condition: any placement: - constraints: - - node.role == manager - -volumes: - webmail_data: - driver: local - roundcube: - driver: local - webdav: - driver: local - mailqueue: - driver: local - postfix: - driver: local - redis: - driver: local - oletools: - driver: local - clamav: - driver: local - fetchmail: - driver: local - filter: - driver: local - rspamd: - driver: local - certs: - driver: local - nginx: - driver: local - mailu3_data: - driver: local - mailu3_dkim: - driver: local - imap: - driver: local - dovecot: - driver: local + constraints: [node.role == manager]