mail/docker/docker-compose.yml
deeily 5024bf9a8d init: full mail stack — phases 0..8 (web client, admin, IMAP/SMTP,
sieve, search, sessions, dramatiq, deploy/install, ELK, monitoring)
2026-04-29 16:30:43 +03:00

68 lines
2.1 KiB
YAML

# Dev-стек: сервисы-зависимости для локальной разработки.
# Flask поднимается отдельно в venv (python wsgi.py) — так быстрее hot-reload.
# Для запуска: cd docker && docker compose up -d
#
# Порты наружу:
# 5432 postgres, 6379 redis, 7700 meili
# 25/143/587/993/465 — docker-mailserver (закомментировано до момента,
# когда будешь тестировать реальную почту)
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: mail
POSTGRES_PASSWORD: mail
POSTGRES_DB: mail
TZ: Europe/Moscow
ports: ["5432:5432"]
volumes:
- ./pg-data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports: ["6379:6379"]
volumes:
- ./redis-data:/data
command: redis-server --save 60 1 --loglevel warning
meili:
image: getmeili/meilisearch:v1.11
environment:
MEILI_MASTER_KEY: masterKey
MEILI_ENV: development
ports: ["7700:7700"]
volumes:
- ./meili-data:/meili_data
# ─── docker-mailserver ────────────────────────────────────────────────
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:14.0
hostname: smtp.mail.local
ports:
- "25:25"
- "143:143"
- "465:465"
- "587:587"
- "993:993"
volumes:
- ./dms-data/mail:/var/mail
- ./dms-data/state:/var/mail-state
- ./dms-data/logs:/var/log/mail
- ./dms-config:/tmp/docker-mailserver
- /etc/localtime:/etc/localtime:ro
environment:
OVERRIDE_HOSTNAME: smtp.mail.local
ENABLE_RSPAMD: 1
ENABLE_AMAVIS: 0
ENABLE_OPENDKIM: 0
ENABLE_OPENDMARC: 0
ENABLE_POLICYD_SPF: 0
ENABLE_CLAMAV: 0
ENABLE_FAIL2BAN: 1
SSL_TYPE: ""
POSTMASTER_ADDRESS: postmaster@mail.local
LOG_LEVEL: info
cap_add: [NET_ADMIN]
restart: unless-stopped