79 lines
2.6 KiB
YAML
79 lines
2.6 KiB
YAML
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
|