Stirling-PDF is a self-hosted, all-in-one PDF manipulation tool — merge, split, compress, convert, and edit PDFs through a web interface, keeping potentially sensitive documents entirely under your own control.
Why Self-Host PDF Tools
Many online PDF tools require uploading potentially sensitive documents (contracts, IDs, financial records) to a third-party service — self-hosting keeps this processing entirely on your own infrastructure.
What Stirling-PDF Can Do
- Merge and split PDFs
- Compress file size
- Convert between PDF and other formats (Word, images)
- Add/remove passwords and permissions
- OCR text extraction from scanned documents
- Add watermarks, page numbers, and signatures
Prerequisites
- Docker installed
Step 1 — Run Stirling-PDF with Docker
docker run -d \
--name stirling-pdf \
--restart unless-stopped \
-p 8081:8080 \
-v stirling-data:/usr/share/tessdata \
-e DOCKER_ENABLE_SECURITY=false \
frooodle/s-pdf:latest
Set DOCKER_ENABLE_SECURITY=true and configure authentication if you want login protection built into the application itself, rather than relying solely on network/reverse-proxy-level restriction.
Step 2 — Access the Web Interface
http://YOUR_SERVER_IP:8081
Step 3 — Use the Tools
Upload a PDF, select the desired operation (merge, split, compress, convert, and many others), and download the processed result.
Step 4 — Add HTTPS
See How to Install Nginx Proxy Manager with Docker — important given the potentially sensitive documents being processed.
Restricting Access
See How to Set Up Basic Authentication (htpasswd) in Nginx/Apache if you didn't enable Stirling-PDF's built-in security, adding an authentication layer at the reverse proxy given the sensitive nature of documents likely to be processed.
Batch Processing
Stirling-PDF supports processing multiple files for certain operations, useful for bulk tasks like compressing or converting many documents at once rather than one at a time.
Using the API
Stirling-PDF exposes an API for programmatic access, useful if you want to integrate PDF processing into an automated workflow rather than manual use through the web interface.
Ensuring Uploaded Files Are Properly Cleaned Up
Verify Stirling-PDF's configuration for temporary file handling — uploaded documents should be processed and then cleaned up, not retained indefinitely, particularly relevant for sensitive document processing.
Common Errors
OCR feature doesn't work — verify the Tesseract data volume is correctly mounted, since OCR functionality depends on language data files being available.
Large file uploads fail — check both Stirling-PDF's own upload size configuration and your reverse proxy's client_max_body_size setting (see How to Limit Request Size and Prevent Large Upload Abuse in Nginx).
Continue Reading
- How to Install Nginx Proxy Manager with Docker
- How to Set Up Basic Authentication (htpasswd) in Nginx/Apache
- How to Install Paperless-ngx (Document Management)
Browse more articles in Popular Self-Hosted Applications.