version: "3.8" services: stirling-pdf: image: stirlingtools/stirling-pdf:latest # or :latest-fat if you want more languages/features container_name: stirling-pdf restart: unless-stopped ports: - "8081:8080" # ← change left side if 8080 is used (e.g. 8081:8080) volumes: - stirling-configs:/configs # main settings, users, custom files - stirling-trainingdata:/usr/share/tessdata # for OCR – add extra lang data here later if needed # - ./logs:/logs # optional – uncomment if you want persistent logs # - ./extraConfigs:/extraConfigs # optional advanced customizations environment: # Security / login (recommended to turn on eventually) - DOCKER_ENABLE_SECURITY=true # set to true → enables login screen # - SYSTEM_ROOTURIPATH=/pdf # if running behind reverse proxy / subpath (optional) # Performance / feature flags (good defaults for Pi) - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false # saves RAM / startup time - LANGS=en_US # change to en_GB, de_DE etc if preferred # Optional: reduce memory pressure a bit more - JAVA_TOOL_OPTIONS=-Xmx1024m # cap at 1 GB (adjust down to 768m if Pi is RAM-tight) # healthcheck: # optional but nice in Portainer # test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/server/health"] # interval: 30s # timeout: 10s # retries: 3 volumes: stirling-configs: stirling-trainingdata: