x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/stirling-pdf.svg
urls:
- https://docs.stirlingpdf.com/
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
restart: unless-stopped
ports:
- "${BIND_ADDRESS:-127.0.0.1}:${APP_PORT:-8085}:8080"
environment:
SECURITY_ENABLELOGIN: "true"
SECURITY_INITIALLOGIN_USERNAME: ${ADMIN_USERNAME:-admin}
SECURITY_INITIALLOGIN_PASSWORD: ${ADMIN_PASSWORD}
SYSTEM_DEFAULTLOCALE: en-US
volumes:
- stirling-config:/configs
- stirling-data:/usr/share/tessdata
- stirling-logs:/logs
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/stirling-pdf.svg
volumes:
stirling-config:
stirling-data:
stirling-logs:
BIND_ADDRESS=127.0.0.1
APP_PORT=8085
ADMIN_USERNAME=admin
# Replace before deployment; used for the first account only.
ADMIN_PASSWORD=change-me-before-deploying
README
The web interface binds to loopback by default. Open it on the Docker host or through an SSH tunnel. For LAN access, set BIND_ADDRESS to a trusted interface after completing account setup; use an authenticated HTTPS reverse proxy for remote access.
Set a unique ADMIN_PASSWORD before deploying, then open http://localhost:8085 and sign in with ADMIN_USERNAME and that password. Initial-login variables initialize a fresh installation; change existing credentials through the application.
Configuration, OCR language files, and logs persist in named volumes. Add additional Tesseract language data to stirling-data when needed. Put the app behind HTTPS for remote use.