feat: enhance SnapOtter service configuration with additional environment variables and middleware

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
nathan 2026-04-29 10:21:07 -04:00
parent 443fbba7ad
commit 966efb5b20

View File

@ -6,12 +6,51 @@ services:
networks: networks:
- proxy-net - proxy-net
environment: environment:
# - AUTH_ENABLED=${AUTH_ENABLED} # Server
# - DEFAULT_USERNAME=${DEFAULT_USERNAME} - PORT=${PORT:-1349}
# - DEFAULT_PASSWORD=${DEFAULT_PASSWORD} - AUTH_ENABLED=${AUTH_ENABLED:-false}
- MAX_USERS=${MAX_USERS} #DEFAULT_USERNAME=admin
- SESSION_DURATION_HOURS=${SESSION_DURATION_HOURS} #DEFAULT_PASSWORD=admin
- TRUST_PROXY=${TRUST_PROXY} - STORAGE_MODE=${STORAGE_MODE:-local}
- TRUST_PROXY=${TRUST_PROXY:-true}
# Cleanup
- FILE_MAX_AGE_HOURS=${FILE_MAX_AGE_HOURS:-72}
- CLEANUP_INTERVAL_MINUTES=${CLEANUP_INTERVAL_MINUTES:-60}
# Upload & Batch (0 = unlimited)
- MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-0}
- MAX_BATCH_SIZE=${MAX_BATCH_SIZE:-0}
- CONCURRENT_JOBS=${CONCURRENT_JOBS:-10}
- MAX_MEGAPIXELS=${MAX_MEGAPIXELS:-0}
# Rate limiting (0 = disabled)
- RATE_LIMIT_PER_MIN=${RATE_LIMIT_PER_MIN:-0}
# Users (0 = unlimited)
- MAX_USERS=${MAX_USERS:-0}
# Processing (0 = auto/unlimited)
- MAX_WORKER_THREADS=${MAX_WORKER_THREADS:-0}
- PROCESSING_TIMEOUT_S=${PROCESSING_TIMEOUT_S:-0}
- MAX_PIPELINE_STEPS=${MAX_PIPELINE_STEPS:-0}
- MAX_CANVAS_PIXELS=${MAX_CANVAS_PIXELS:-0}
- MAX_SVG_SIZE_MB=${MAX_SVG_SIZE_MB:-0}
- MAX_LOGO_SIZE_KB=${MAX_LOGO_SIZE_KB:-2048}
- MAX_SPLIT_GRID=${MAX_SPLIT_GRID:-100}
- MAX_PDF_PAGES=${MAX_PDF_PAGES:-0}
- SESSION_DURATION_HOURS=${SESSION_DURATION_HOURS:-168}
- LOGIN_ATTEMPT_LIMIT=${LOGIN_ATTEMPT_LIMIT:-10}
# Set to true in CI/dev to skip the forced password-change on the default admin
# SKIP_MUST_CHANGE_PASSWORD=false
- SKIP_MUST_CHANGE_PASSWORD=${SKIP_MUST_CHANGE_PASSWORD:-false}
- DB_PATH=${DB_PATH:-./data/snapotter.db}
- WORKSPACE_PATH=${WORKSPACE_PATH:-./tmp/workspace}
- FILES_STORAGE_PATH=${FILES_STORAGE_PATH:-./data/files}
- DEFAULT_THEME=${DEFAULT_THEME}
- DEFAULT_LOCALE=${DEFAULT_LOCALE:-en}
- APP_NAME=${APP_NAME:-snapotter}
restart: unless-stopped restart: unless-stopped
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
@ -21,6 +60,7 @@ services:
- "traefik.http.routers.snapotter.tls.certresolver=cloudflare" - "traefik.http.routers.snapotter.tls.certresolver=cloudflare"
- "traefik.http.routers.snapotter.service=snapotter" - "traefik.http.routers.snapotter.service=snapotter"
- "traefik.http.services.snapotter.loadbalancer.server.port=1349" - "traefik.http.services.snapotter.loadbalancer.server.port=1349"
- "traefik.http.routers.snapotter.middlewares=authentik-auth@file"
networks: networks:
proxy-net: proxy-net: