Stirling PDF with Docker Compose
Stirling PDF is one container: docker.stirlingpdf.com/stirlingtools/stirling-pdf on port 8080. It needs no database. Set SECURITY_ENABLELOGIN=true on any public server, or anyone can use it. With login on, the first account is admin / password unless you set SECURITY_INITIALLOGIN_USERNAME and SECURITY_INITIALLOGIN_PASSWORD. Change that password right after the first start.
Stirling PDF merges, splits, compresses, converts, signs and OCRs PDFs in the browser. Files are processed on your server and are not sent anywhere else.
If you're new to Docker Compose, check out our guide on how to self-host a Docker Compose app. More stacks are in our Docker Compose library.
Self-host Stirling PDF with Docker Compose (minimal)
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
ports:
- "8080:8080"
environment:
SECURITY_ENABLELOGIN: "true"
SECURITY_INITIALLOGIN_USERNAME: admin
SECURITY_INITIALLOGIN_PASSWORD: change_me_to_a_long_random_password
DISABLE_ADDITIONAL_FEATURES: "false"
LANGS: en_GB
volumes:
- stirling-configs:/configs
- stirling-custom:/customFiles
- stirling-pipeline:/pipeline
restart: unless-stopped
volumes:
stirling-configs:
stirling-custom:
stirling-pipeline:
Then:
docker compose up -d
Open http://localhost:8080 and log in with the username and password from the compose file.
/configs holds settings.yml, custom_settings.yml and the user database. Without this volume, every restart resets the users and settings, and the default login works again.
The initial login values only apply on the first start, when no user exists yet. Changing them later does not change the password. Change it inside the app instead.
Deploy Stirling PDF on Hostim.dev (One-Click)
Stirling PDF is an open-source PDF toolbox. With Hostim.dev, you can deploy it with Docker in one click, with persistent volumes, a domain and HTTPS.
Guest project runs for 1 hour. Log in to save and extend to 5 days.
The template generates a random admin password at deploy time. Find it in the SECURITY_INITIALLOGIN_PASSWORD environment variable of the app.
Why Host Stirling PDF on Hostim.dev?
- One-click Docker deployment
- Login is on from the first start, with a generated admin password
- Settings and users stay on a persistent volume
- Automatic HTTPS and domain
- Real-time logs and metrics
- Your PDFs stay on your own app
What's included
| Resource | Details |
|---|---|
| App | docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest |
| Volumes | /configs, /customFiles, /pipeline, /usr/share/tessdata |
| Login | On (SECURITY_ENABLELOGIN=true), user admin, password generated per deploy |
| Domain | Free *.hostim.dev subdomain |
| SSL | Let's Encrypt (auto-enabled) |
| Port | 8080 |
| Plan | 2 GB RAM (sa-2-2). OCR and Office conversion need the memory. |
How to Deploy
- Go to your Hostim.dev dashboard.
- Click Create Project → Use a Template.
- Select Stirling PDF.
- Choose a resource plan.
- Deploy. The first start takes about a minute.
- Copy the password from the app's
SECURITY_INITIALLOGIN_PASSWORDenvironment variable. - Open your app's domain, log in as
adminand change the password.
FAQ
Frequently asked questions
What is the default Stirling PDF login?
admin / password, when login is on and you did not set SECURITY_INITIALLOGIN_USERNAME and SECURITY_INITIALLOGIN_PASSWORD. The app does not force a password change, so change it yourself after the first login. The Hostim template does not use this default: it generates a random password at deploy time.
How do I turn on login in Stirling PDF?
Set SECURITY_ENABLELOGIN=true and restart the container. Without it, the app has no login and anyone who can reach the URL can use every tool. Turn it on for any public server.
Does Stirling PDF need a database?
No. Users and settings are stored in files under /configs. Keep that directory on a volume.
Does OCR work out of the box?
Yes. The image ships Tesseract and OCRmyPDF. In our test on Stirling PDF 3.2.0, English OCR worked on a fresh container with no extra setup.
What does DISABLE_ADDITIONAL_FEATURES do?
When it is false, the security features (login and user management) are loaded. Keep it false if you want login. Version 3.2.0 still reads it at startup.
How much memory does Stirling PDF need?
Plan for 2 GB. The app runs on Java, and OCR and Office conversion start extra processes. Small instances can run out of memory on large files.
How do I back up and update Stirling PDF?
Back up the /configs volume. It holds users and settings. To update with Docker, run docker compose pull && docker compose up -d. On Hostim.dev, redeploy the app.
Alternatives
- Paperless-ngx: stores and indexes scanned documents. Use it to keep documents, use Stirling PDF to edit them.
- Desktop PDF editors: fine for one person, but not shared and not in the browser.
Source + Docs
- GitHub: https://github.com/Stirling-Tools/Stirling-PDF
- Documentation: https://docs.stirlingpdf.com
Looking for something else? Browse all templates →