moved
This commit is contained in:
89
email-worker/docker-compose.yml
Normal file
89
email-worker/docker-compose.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
version: "3.8"
|
||||
|
||||
# Unified Email Worker - verarbeitet alle Domains mit einem Container (Modular Version)
|
||||
|
||||
services:
|
||||
unified-worker:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: unified-email-worker
|
||||
restart: unless-stopped
|
||||
network_mode: host # Für lokalen SMTP-Zugriff
|
||||
|
||||
volumes:
|
||||
# Domain-Liste (eine Domain pro Zeile)
|
||||
- ./domains.txt:/etc/email-worker/domains.txt:ro
|
||||
# Logs
|
||||
- ./logs:/var/log/email-worker
|
||||
|
||||
environment:
|
||||
# AWS Credentials
|
||||
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||
- AWS_REGION=us-east-2
|
||||
|
||||
# Domains via File (domains.txt)
|
||||
- DOMAINS_FILE=/etc/email-worker/domains.txt
|
||||
|
||||
# Alternative: Domains direkt als Liste
|
||||
# - DOMAINS=andreasknuth.de,bayarea-cc.com,bizmatch.net
|
||||
|
||||
# Worker Settings
|
||||
- WORKER_THREADS=${WORKER_THREADS:-10}
|
||||
- POLL_INTERVAL=${POLL_INTERVAL:-20}
|
||||
- MAX_MESSAGES=${MAX_MESSAGES:-10}
|
||||
- VISIBILITY_TIMEOUT=${VISIBILITY_TIMEOUT:-300}
|
||||
|
||||
# SMTP (lokal zum DMS)
|
||||
- SMTP_HOST=${SMTP_HOST:-localhost}
|
||||
- SMTP_PORT=${SMTP_PORT:-25}
|
||||
- SMTP_POOL_SIZE=${SMTP_POOL_SIZE:-5}
|
||||
- SMTP_USE_TLS=false
|
||||
|
||||
# Internal SMTP Port (bypasses transport_maps)
|
||||
- INTERNAL_SMTP_PORT=2525
|
||||
|
||||
# LMTP (Optional - für direktes Dovecot Delivery)
|
||||
- LMTP_ENABLED=${LMTP_ENABLED:-false}
|
||||
- LMTP_HOST=${LMTP_HOST:-localhost}
|
||||
- LMTP_PORT=${LMTP_PORT:-24}
|
||||
|
||||
# DynamoDB Tables
|
||||
- DYNAMODB_RULES_TABLE=${DYNAMODB_RULES_TABLE:-email-rules}
|
||||
- DYNAMODB_MESSAGES_TABLE=${DYNAMODB_MESSAGES_TABLE:-ses-outbound-messages}
|
||||
- DYNAMODB_BLOCKED_TABLE=${DYNAMODB_BLOCKED_TABLE:-email-blocked-senders}
|
||||
|
||||
# Bounce Handling
|
||||
- BOUNCE_LOOKUP_RETRIES=${BOUNCE_LOOKUP_RETRIES:-3}
|
||||
- BOUNCE_LOOKUP_DELAY=${BOUNCE_LOOKUP_DELAY:-1.0}
|
||||
|
||||
# Monitoring
|
||||
- METRICS_PORT=8000
|
||||
- HEALTH_PORT=8080
|
||||
|
||||
ports:
|
||||
# Prometheus Metrics
|
||||
- "8000:8000"
|
||||
# Health Check
|
||||
- "8080:8080"
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "50m"
|
||||
max-file: "10"
|
||||
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 512M
|
||||
reservations:
|
||||
memory: 256M
|
||||
Reference in New Issue
Block a user