79 lines
2.2 KiB
Plaintext
79 lines
2.2 KiB
Plaintext
# Copy to .env and adjust.
|
|
COMPOSE_PROJECT_NAME=multimailer
|
|
APP_ENV=dev
|
|
|
|
# API
|
|
APP_HOST=0.0.0.0
|
|
APP_PORT=8000
|
|
API_PUBLISHED_PORT=8000
|
|
|
|
# Local Traefik
|
|
TRAEFIK_WEB_PORT=8080
|
|
TRAEFIK_DASHBOARD_PORT=8081
|
|
TRAEFIK_DASHBOARD_INSECURE=true
|
|
TRAEFIK_ROUTER_NAME=multimailer
|
|
TRAEFIK_SERVICE_NAME=multimailer
|
|
TRAEFIK_RULE=PathPrefix(`/`)
|
|
|
|
# Database
|
|
DATABASE_URL=postgresql+psycopg://multimailer:multimailer@postgres:5432/multimailer
|
|
POSTGRES_DB=multimailer
|
|
POSTGRES_USER=multimailer
|
|
POSTGRES_PASSWORD=multimailer
|
|
|
|
# Redis
|
|
REDIS_URL=redis://redis:6379/0
|
|
|
|
# Garage / S3-compatible object storage
|
|
S3_ENDPOINT_URL=http://garage:3900
|
|
S3_REGION=garage
|
|
S3_BUCKET=attachments
|
|
S3_ACCESS_KEY_ID=GKmultimailerdev0000000000000000
|
|
S3_SECRET_ACCESS_KEY=multimailer-dev-secret-change-me
|
|
GARAGE_S3_PORT=3900
|
|
GARAGE_ADMIN_PORT=3903
|
|
|
|
# Managed file storage. Development uses the local filesystem; production can
|
|
# use FILE_STORAGE_BACKEND=s3 with Garage-compatible credentials.
|
|
FILE_STORAGE_BACKEND=local
|
|
FILE_STORAGE_LOCAL_ROOT=runtime/files
|
|
FILE_STORAGE_S3_ENDPOINT_URL=http://garage:3900
|
|
FILE_STORAGE_S3_REGION=garage
|
|
FILE_STORAGE_S3_BUCKET=files
|
|
FILE_STORAGE_S3_ACCESS_KEY_ID=GKmultimailerdev0000000000000000
|
|
FILE_STORAGE_S3_SECRET_ACCESS_KEY=multimailer-dev-secret-change-me
|
|
|
|
# Crypto: required before storing real SMTP/IMAP credentials.
|
|
# Generate:
|
|
# python -c "import os,base64; print(base64.b64encode(os.urandom(32)).decode())"
|
|
MASTER_KEY_B64=
|
|
|
|
# Limits
|
|
MAX_UPLOAD_MB=50
|
|
MAX_ATTACHMENTS_PER_JOB=50
|
|
DEFAULT_SEND_RATE_PER_MIN=30
|
|
DEFAULT_CONCURRENCY=2
|
|
|
|
# Worker tuning
|
|
CELERY_QUEUES=send_email,append_sent,default
|
|
CELERY_CONCURRENCY=4
|
|
CELERY_PREFETCH_MULTIPLIER=1
|
|
CELERY_MAX_TASKS_PER_CHILD=200
|
|
CELERY_LOGLEVEL=INFO
|
|
|
|
# Existing Traefik/proxy network example
|
|
EXTERNAL_PROXY_NETWORK=proxy
|
|
TRAEFIK_ENTRYPOINT=websecure
|
|
|
|
# Web UI
|
|
WEBUI_PUBLISHED_PORT=5173
|
|
VITE_API_BASE_URL=/api/v1
|
|
# For local Vite development outside Docker:
|
|
# VITE_DEV_API_PROXY_TARGET=http://127.0.0.1:8000
|
|
CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173,http://localhost:8080
|
|
MULTIMAILER_HOST=multimailer.localhost
|
|
TRAEFIK_API_ROUTER_NAME=multimailer-api
|
|
TRAEFIK_API_SERVICE_NAME=multimailer-api
|
|
TRAEFIK_WEBUI_ROUTER_NAME=multimailer-webui
|
|
TRAEFIK_WEBUI_SERVICE_NAME=multimailer-webui
|