mail-server/docker-compose.yml
2026-06-30 22:50:17 +03:00

65 lines
1.7 KiB
YAML

services:
stalwart:
image: stalwartlabs/stalwart:latest
container_name: stalwart
restart: unless-stopped
env_file: .env
ports:
- "25:25" # SMTP (входящая почта)
- "465:465" # SMTP over TLS (SMTPS)
- "587:587" # SMTP submission (клиенты)
- "143:143" # IMAP
- "993:993" # IMAP over TLS
- "4190:4190" # ManageSieve
- "8080:8080" # HTTP: WebAdmin + JMAP + autodiscovery
- "443:443" # HTTPS (если не используется внешний reverse proxy)
volumes:
- ./data/stalwart:/opt/stalwart
environment:
- TZ=${TZ:-UTC}
depends_on:
rspamd:
condition: service_started
clamav:
condition: service_healthy
networks:
- mail
rspamd:
image: rspamd/rspamd:latest
container_name: rspamd
restart: unless-stopped
env_file: .env
volumes:
- ./config/rspamd:/etc/rspamd/local.d
- ./data/rspamd:/var/lib/rspamd
networks:
- mail
# Milter порт 11332 доступен только внутри сети
clamav:
image: clamav/clamav:stable
container_name: clamav
restart: unless-stopped
env_file: .env
volumes:
- ./data/clamav/db:/var/lib/clamav
- ./data/clamav/run:/run/clamav
environment:
- CLAMAV_NO_FRESHCLAMD=false
- CLAMAV_NO_MILTERD=false
- CLAMAV_MILTER_PORT=7357
healthcheck:
test: ["CMD", "clamdcheck.sh"]
interval: 60s
retries: 3
start_period: 120s # ClamAV долго стартует (загрузка сигнатур)
networks:
- mail
networks:
mail:
name: mail
driver: bridge