This commit is contained in:
2025-12-01 20:56:04 +01:00
parent 78f958d101
commit b44183d97f

View File

@@ -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
driver: local