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