inital commit

This commit is contained in:
2026-06-08 15:57:11 +02:00
parent aaf8729663
commit d9ca48addc
114 changed files with 12172 additions and 1 deletions

68
.env.example Normal file
View File

@@ -0,0 +1,68 @@
# 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
# 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