diff --git a/__swarm/mailu3/mailu3-swarm.yml b/__swarm/mailu3/mailu3-swarm.yml index 86059c5..36f3888 100644 --- a/__swarm/mailu3/mailu3-swarm.yml +++ b/__swarm/mailu3/mailu3-swarm.yml @@ -1,31 +1,37 @@ networks: clamav: driver: overlay + default: driver: overlay ipam: config: - - subnet: 192.168.205.0/24 + - subnet: 192.168.205.0/24 driver: default + fts_attachments: driver: overlay internal: true + oletools: driver: overlay internal: true + radicale: driver: overlay + webmail: driver: overlay + services: admin: dns: - - 192.168.205.254 + - 192.168.205.254 env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2024.06} volumes: - - mailu3_data:/data - - mailu3_dkim:/dkim + - mailu3_data:/data + - mailu3_dkim:/dkim deploy: labels: wud.watch: 'true' @@ -33,20 +39,21 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + antispam: dns: - - 192.168.205.254 + - 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 + - default + - oletools + - clamav volumes: - - filter:/var/lib/rspamd - - rspamd:/overrides:ro + - filter:/var/lib/rspamd + - rspamd:/overrides:ro deploy: labels: wud.watch: 'true' @@ -54,21 +61,20 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - 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` + 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 + - clamav volumes: - - clamav:/var/lib/clamav + - clamav:/var/lib/clamav deploy: labels: wud.watch: 'true' @@ -76,14 +82,15 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + fetchmail: dns: - - 192.168.205.254 + - 192.168.205.254 env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-2024.06} volumes: - - fetchmail:/data + - fetchmail:/data deploy: labels: wud.watch: 'true' @@ -91,10 +98,11 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + front: dns: - - 192.168.205.254 + - 192.168.205.254 env_file: stack.env logging: driver: loki @@ -102,53 +110,53 @@ services: 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 + - 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 + - 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 volumes: - - certs:/certs - - nginx:/overrides:ro + - certs:/certs + - nginx:/overrides:ro deploy: labels: wud.watch: 'true' @@ -164,22 +172,21 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + fts_attachments: dns: - - 192.168.205.254 + - 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 + 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 + - fts_attachments deploy: labels: wud.watch: 'true' @@ -187,18 +194,19 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + imap: dns: - - 192.168.205.254 + - 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 + - default + - fts_attachments volumes: - - mail:/mail - - dovecot:/overrides:ro + - mail:/mail + - dovecot:/overrides:ro deploy: labels: wud.watch: 'true' @@ -206,14 +214,15 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + oletools: dns: - - 192.168.205.254 + - 192.168.205.254 hostname: oletools image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-2024.06} networks: - - oletools + - oletools deploy: labels: wud.watch: 'true' @@ -221,13 +230,14 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + redis: dns: - - 192.168.205.254 + - 192.168.205.254 image: ${DOCKER_REGISTRY:-}redis:alpine volumes: - - redis:/data + - redis:/data deploy: labels: wud.watch: 'true' @@ -235,7 +245,8 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + resolver: env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06} @@ -249,15 +260,16 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + smtp: dns: - - 192.168.205.254 + - 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 + - mailqueue:/queue + - postfix:/overrides:ro deploy: labels: wud.watch: 'true' @@ -265,13 +277,14 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + webdav: image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06} networks: - - radicale + - radicale volumes: - - webdav:/data + - webdav:/data deploy: labels: wud.watch: 'true' @@ -279,15 +292,16 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager + webmail: env_file: stack.env image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2024.06} networks: - - webmail + - webmail volumes: - - webmail_data:/data - - roundcube:/overrides:ro + - webmail_data:/data + - roundcube:/overrides:ro deploy: labels: wud.watch: 'true' @@ -295,7 +309,7 @@ services: replicas: 1 placement: constraints: - - node.role == manager + - node.role == manager volumes: webmail_data: @@ -331,4 +345,4 @@ volumes: mail: driver: local dovecot: - driver: local \ No newline at end of file + driver: local