Files
docker-compose/__swarm/mailu3/mailu3-swarm.yml
2025-12-01 22:04:37 +01:00

257 lines
5.4 KiB
YAML

services:
redis:
image: redis:alpine
deploy:
replicas: 1
restart_policy:
condition: any
placement:
constraints:
- node.role == manager
labels:
wud.watch: "true"
wud.watch.digest: "true"
volumes:
- redis_data:/data
networks:
- default
dns:
- 192.168.203.254
resolver:
image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06}
env_file: stack.env
deploy:
replicas: 1
restart_policy:
condition: any
labels:
wud.watch: "true"
wud.watch.digest: "true"
networks:
default:
ipv4_address: 192.168.203.254
front:
image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-2024.06}
env_file: stack.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:
- 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_data:/certs
- nginx_overrides:/overrides:ro
dns:
- 192.168.203.254
depends_on:
- resolver
admin:
image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-2024.06}
env_file: stack.env
deploy:
replicas: 1
restart_policy:
condition: any
labels:
wud.watch: "true"
wud.watch.digest: "true"
placement:
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_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06}
env_file: stack.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.203.254
smtp:
image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-2024.06}
env_file: stack.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.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
networks:
- 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: stack.env
deploy:
replicas: 1
restart_policy:
condition: any
labels:
wud.watch: "true"
wud.watch.digest: "true"
placement:
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:
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: