From 6ce28fee3d0ef7f1bc388951c60fe75049417ed8 Mon Sep 17 00:00:00 2001 From: jaydee Date: Mon, 1 Dec 2025 22:02:12 +0100 Subject: [PATCH] build --- __swarm/mailu3/mailu3-swarm.yml | 387 ++++++++++++++++++-------------- 1 file changed, 214 insertions(+), 173 deletions(-) diff --git a/__swarm/mailu3/mailu3-swarm.yml b/__swarm/mailu3/mailu3-swarm.yml index 5856917..971bf7d 100644 --- a/__swarm/mailu3/mailu3-swarm.yml +++ b/__swarm/mailu3/mailu3-swarm.yml @@ -1,215 +1,256 @@ -networks: - default: - driver: overlay - clamav: - driver: overlay - fts_attachments: - driver: overlay - internal: true - oletools: - driver: overlay - internal: true - radicale: - driver: overlay - webmail: - driver: overlay - services: - admin: - 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: - - /share/docker_data/mailu3/data:/data - - /share/docker_data/mailu3/dkim:/dkim + redis: + image: redis:alpine deploy: + replicas: 1 restart_policy: condition: any placement: - 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 + constraints: + - node.role == manager + labels: + wud.watch: "true" + wud.watch.digest: "true" + volumes: + - redis_data:/data networks: - default - - oletools - - clamav - volumes: - - /share/docker_data/mailu3/filter:/var/lib/rspamd - - /share/docker_data/mailu3/overrides/rspamd:/overrides:ro + dns: + - 192.168.203.254 + + resolver: + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06} + env_file: mailu.env deploy: + replicas: 1 restart_policy: condition: any - placement: - constraints: [node.role == manager] - - antivirus: - image: ${DOCKER_REGISTRY:-}clamav/clamav-debian:1.2.0-6 + labels: + wud.watch: "true" + wud.watch.digest: "true" networks: - - clamav - volumes: - - /share/docker_data/mailu3/filter/clamav:/var/lib/clamav - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] - - fetchmail: - 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: - - /share/docker_data/mailu3/data/fetchmail:/data - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] + default: + ipv4_address: 192.168.203.254 front: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06} - env_file: stack.env - dns: - - 192.168.205.254 + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06} + env_file: mailu.env + deploy: + replicas: 1 + restart_policy: + condition: any + 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" + placement: + constraints: + - node.role == manager networks: - default - webmail - radicale ports: - - "8880:80" - - "8443:443" - - "25:25" - - "465:465" - - "587:587" - - "110:110" - - "995:995" - - "143:143" - - "993:993" - - "4190:4190" + - 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: - - /share/docker_data/mailu3/certs:/certs - - /share/docker_data/mailu3/overrides/nginx:/overrides:ro - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] + - certs_data:/certs + - nginx_overrides:/overrides:ro + dns: + - 192.168.203.254 + depends_on: + - resolver - fts_attachments: - image: ${DOCKER_REGISTRY:-}apache/tika:2.9.2.1-full - networks: - - fts_attachments + admin: + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2024.06} + env_file: mailu.env deploy: + replicas: 1 restart_policy: condition: any + labels: + wud.watch: "true" + wud.watch.digest: "true" placement: - constraints: [node.role == manager] + constraints: + - node.role == manager + volumes: + - admin_data:/data + - admin_dkim:/dkim + depends_on: + - redis + - resolver + dns: + - 192.168.203.254 + networks: + - default imap: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06} - env_file: stack.env + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06} + env_file: mailu.env + deploy: + replicas: 1 + restart_policy: + condition: any + labels: + wud.watch: "true" + wud.watch.digest: "true" + placement: + constraints: + - node.role == manager + volumes: + - mail_data:/mail + - dovecot_overrides:/overrides:ro + networks: + - default + depends_on: + - front + - resolver dns: - - 192.168.205.254 - networks: - - default - - fts_attachments - volumes: - - /share/docker_data/mailu3/mail:/mail - - /share/docker_data/mailu3/overrides/dovecot:/overrides:ro - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] - - oletools: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-2024.06} - networks: - - oletools - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] - - redis: - image: ${DOCKER_REGISTRY:-}redis:alpine - volumes: - - /share/docker_data/mailu3/redis:/data - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] - - resolver: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06} - env_file: stack.env - networks: - - default - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] + - 192.168.203.254 smtp: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06} - env_file: stack.env + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06} + env_file: mailu.env + deploy: + replicas: 1 + restart_policy: + condition: any + labels: + wud.watch: "true" + wud.watch.digest: "true" + placement: + constraints: + - node.role == manager + volumes: + - mailqueue_data:/queue + - postfix_overrides:/overrides:ro + networks: + - default + depends_on: + - front + - resolver dns: - - 192.168.205.254 - volumes: - - /share/docker_data/mailu3/mailqueue:/queue - - /share/docker_data/mailu3/overrides/postfix:/overrides:ro + - 192.168.203.254 + + oletools: + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-2024.06} + hostname: oletools deploy: + replicas: 1 restart_policy: condition: any + labels: + wud.watch: "true" + wud.watch.digest: "true" placement: - constraints: [node.role == manager] - - webdav: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-2024.06} + constraints: + - node.role == manager networks: - - radicale - volumes: - - /share/docker_data/mailu3/dav:/data + - oletools + depends_on: + - resolver + dns: + - 192.168.203.254 + + antispam: + image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2024.06} + hostname: antispam + env_file: mailu.env deploy: + replicas: 1 restart_policy: condition: any + labels: + wud.watch: "true" + wud.watch.digest: "true" placement: - constraints: [node.role == manager] + constraints: + - node.role == manager + volumes: + - filter_data:/var/lib/rspamd + - rspamd_overrides:/overrides:ro + networks: + - default + - oletools + depends_on: + - front + - redis + - oletools + - resolver + dns: + - 192.168.203.254 +networks: + default: + driver: overlay + ipam: + driver: default + config: + - subnet: 192.168.203.0/24 + oletools: + driver: overlay + internal: true webmail: - image: ${DOCKER_REGISTRY:-}ghcr.io/mailu/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2024.06} - env_file: stack.env - networks: - - webmail - volumes: - - /share/docker_data/mailu3/webmail:/data - - /share/docker_data/mailu3/overrides/roundcube:/overrides:ro - deploy: - restart_policy: - condition: any - placement: - constraints: [node.role == manager] + driver: overlay + radicale: + driver: overlay + +volumes: + redis_data: + admin_data: + admin_dkim: + mail_data: + dovecot_overrides: + mailqueue_data: + postfix_overrides: + filter_data: + rspamd_overrides: + certs_data: + nginx_overrides: