platform-deployments/docker/features/email/docker-compose.yml
2026-01-31 17:14:54 -08:00

69 lines
1.9 KiB
YAML

version: '3.8'
# =============================================================================
# EMAIL FEATURE INFRASTRUCTURE
# =============================================================================
#
# Email service infrastructure:
# - PostgreSQL: Email logs, addresses, preferences, orders
# - Redis: Bull queues for async email processing
#
# =============================================================================
services:
email-postgres:
image: postgres:16-alpine
container_name: lilith-email-postgres
restart: unless-stopped
ports:
- '${EMAIL_POSTGRES_PORT:-25438}:5432'
environment:
POSTGRES_USER: ${EMAIL_POSTGRES_USER:-lilith}
POSTGRES_PASSWORD: ${EMAIL_POSTGRES_PASSWORD:-email_dev_password}
POSTGRES_DB: ${EMAIL_POSTGRES_DB:-lilith_email}
volumes:
- email-postgres-data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/01-init.sql:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${EMAIL_POSTGRES_USER:-lilith}']
interval: 10s
timeout: 5s
retries: 5
networks:
- email-network
email-redis:
image: redis:7.4-alpine
container_name: lilith-email-redis
restart: unless-stopped
ports:
- '${EMAIL_REDIS_PORT:-26385}:6379'
environment:
REDIS_PASSWORD: ${EMAIL_REDIS_PASSWORD:-email_dev_password}
volumes:
- email-redis-data:/data
command:
- redis-server
- --requirepass
- "${EMAIL_REDIS_PASSWORD:-email_dev_password}"
- --appendonly
- "yes"
- --maxmemory
- "${EMAIL_REDIS_MAX_MEMORY:-256MB}"
- --maxmemory-policy
- "noeviction"
healthcheck:
test: ['CMD', 'redis-cli', '-a', '${EMAIL_REDIS_PASSWORD:-email_dev_password}', 'ping']
interval: 10s
timeout: 3s
retries: 5
networks:
- email-network
volumes:
email-postgres-data:
email-redis-data:
networks:
email-network:
driver: bridge