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

78
compose.yml Normal file
View File

@@ -0,0 +1,78 @@
services:
api:
build:
context: ./server
dockerfile: Dockerfile
environment:
APP_ROLE: api
APP_ENV: ${APP_ENV:-dev}
APP_HOST: ${APP_HOST:-0.0.0.0}
APP_PORT: ${APP_PORT:-8000}
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:5173,http://127.0.0.1:5173,http://localhost:8080}
DATABASE_URL: ${DATABASE_URL:-postgresql+psycopg://multimailer:multimailer@postgres:5432/multimailer}
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
S3_ENDPOINT_URL: ${S3_ENDPOINT_URL:-http://garage:3900}
S3_REGION: ${S3_REGION:-garage}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-GKmultimailerdev0000000000000000}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-multimailer-dev-secret-change-me}
S3_BUCKET: ${S3_BUCKET:-attachments}
MASTER_KEY_B64: ${MASTER_KEY_B64:-}
MAX_UPLOAD_MB: ${MAX_UPLOAD_MB:-50}
MAX_ATTACHMENTS_PER_JOB: ${MAX_ATTACHMENTS_PER_JOB:-50}
DEFAULT_SEND_RATE_PER_MIN: ${DEFAULT_SEND_RATE_PER_MIN:-30}
DEFAULT_CONCURRENCY: ${DEFAULT_CONCURRENCY:-2}
ports:
- "${API_PUBLISHED_PORT:-8000}:8000"
networks:
- app
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health').read()"]
interval: 10s
timeout: 3s
retries: 10
worker:
build:
context: ./server
dockerfile: Dockerfile
environment:
APP_ROLE: worker
APP_ENV: ${APP_ENV:-dev}
DATABASE_URL: ${DATABASE_URL:-postgresql+psycopg://multimailer:multimailer@postgres:5432/multimailer}
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
S3_ENDPOINT_URL: ${S3_ENDPOINT_URL:-http://garage:3900}
S3_REGION: ${S3_REGION:-garage}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-GKmultimailerdev0000000000000000}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-multimailer-dev-secret-change-me}
S3_BUCKET: ${S3_BUCKET:-attachments}
MASTER_KEY_B64: ${MASTER_KEY_B64:-}
CELERY_QUEUES: ${CELERY_QUEUES:-send_email,append_sent,default}
CELERY_CONCURRENCY: ${CELERY_CONCURRENCY:-4}
CELERY_PREFETCH_MULTIPLIER: ${CELERY_PREFETCH_MULTIPLIER:-1}
CELERY_MAX_TASKS_PER_CHILD: ${CELERY_MAX_TASKS_PER_CHILD:-200}
CELERY_LOGLEVEL: ${CELERY_LOGLEVEL:-INFO}
networks:
- app
webui:
build:
context: ./webui
dockerfile: Dockerfile
args:
VITE_API_BASE_URL: ${VITE_API_BASE_URL:-/api/v1}
ports:
- "${WEBUI_PUBLISHED_PORT:-5173}:80"
networks:
- app
networks:
app:
name: ${COMPOSE_PROJECT_NAME:-multimailer}_app