update_server/docker-compose.yml
2026-06-10 20:51:17 +03:00

45 lines
1.5 KiB
YAML

services:
app:
build:
context: .
container_name: update-server
image: update-server:latest
restart: unless-stopped
init: true
ports:
- "127.0.0.1:8080:8080"
environment:
APP_ADDR: "0.0.0.0:8080"
APP_BASE_URL: "${APP_BASE_URL:?set APP_BASE_URL to the public HTTPS URL}"
DATA_DIR: "/data"
SQLITE_PATH: "/data/db.sqlite"
ARTIFACTS_DIR: "/data/artifacts"
MIGRATIONS_DIR: "/app/migrations"
TEMPLATES_DIR: "/app/web/templates"
STATIC_DIR: "/app/web/static"
TRUST_PROXY_HEADERS: "true"
ADMIN_EMAIL: "${ADMIN_EMAIL:?set ADMIN_EMAIL}"
ADMIN_PASSWORD: "${ADMIN_PASSWORD:?set ADMIN_PASSWORD}"
APP_LOG_LEVEL: "${APP_LOG_LEVEL:-INFO}"
APP_READ_TIMEOUT: "${APP_READ_TIMEOUT:-30s}"
APP_READ_HEADER_TIMEOUT: "${APP_READ_HEADER_TIMEOUT:-5s}"
APP_WRITE_TIMEOUT: "${APP_WRITE_TIMEOUT:-60s}"
APP_IDLE_TIMEOUT: "${APP_IDLE_TIMEOUT:-120s}"
APP_MAX_HEADER_BYTES: "${APP_MAX_HEADER_BYTES:-1048576}"
APP_LOGIN_RATE_LIMIT_PER_MINUTE: "${APP_LOGIN_RATE_LIMIT_PER_MINUTE:-10}"
APP_LOGIN_RATE_LIMIT_BURST: "${APP_LOGIN_RATE_LIMIT_BURST:-5}"
APP_CLIENT_RATE_LIMIT_PER_MINUTE: "${APP_CLIENT_RATE_LIMIT_PER_MINUTE:-120}"
APP_CLIENT_RATE_LIMIT_BURST: "${APP_CLIENT_RATE_LIMIT_BURST:-60}"
volumes:
- update-server-data:/data
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
volumes:
update-server-data: