Why Stirling-PDF?
Every time you upload a PDF to an online tool, your data passes through a third party. Stirling-PDF keeps everything local:
- 30+ PDF operations in one interface.
- Zero data leakage — files never leave your server.
- No accounts or limits — unlimited usage, no watermarks.
- REST API — automate PDF processing from scripts.
- Dark mode — beautiful modern UI.
Prerequisites
- Docker on any machine.
- At least 256 MB RAM (more for OCR).
Step 1: Deploy with Docker
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ./training-data:/usr/share/tessdata \
-v ./configs:/configs \
-e DOCKER_ENABLE_SECURITY=false \
frooodle/s-pdf:latest
Access at http://your-server:8080.
Step 2: Available Operations
| Category | Operations |
|---|---|
| Page Operations | Merge, split, rotate, rearrange, remove, extract pages |
| Conversion | PDF ↔ Word, Excel, PowerPoint, images, HTML, Markdown |
| Compression | Reduce file size with quality options |
| Security | Add/remove password, permissions, watermark |
| OCR | Extract text from scanned PDFs (Tesseract) |
| Manipulation | Add page numbers, headers/footers, flatten forms |
| Signing | Add signature image to PDF |
Step 3: API Integration
Every operation is available via REST API:
# Merge two PDFs
curl -F 'fileInput=@file1.pdf' \
-F 'fileInput=@file2.pdf' \
http://localhost:8080/api/v1/general/merge-pdfs \
-o merged.pdf
# Compress a PDF
curl -F 'fileInput=@large.pdf' \
-F 'optimizeLevel=3' \
http://localhost:8080/api/v1/general/compress-pdf \
-o compressed.pdf
# OCR a scanned PDF
curl -F 'fileInput=@scanned.pdf' \
-F 'languages=eng+spa' \
http://localhost:8080/api/v1/misc/ocr-pdf \
-o searchable.pdf
Stirling-PDF vs Online Alternatives
| Feature | Stirling-PDF | ILovePDF/SmallPDF |
|---|---|---|
| Privacy | Files stay on your server | Uploaded to cloud |
| Cost | Free, no limits | Free tier limited |
| Operations | 30+ | 20+ |
| API | Yes, REST | Paid plans only |
| Watermarks | None | Free tier adds watermarks |
| OCR | Included (Tesseract) | Paid feature |
Troubleshooting
| Problem | Solution |
|---|---|
| OCR produces poor results | Install additional language packs in /usr/share/tessdata |
| Large files timeout | Increase Docker memory limit and timeout settings |
| ”File too large” error | Set STIRLING_PDF_MAX_FILE_SIZE environment variable |
| API returns 500 | Check Docker logs: docker logs stirling-pdf |
Summary
- One Docker command for a complete PDF toolkit.
- Privacy first — no cloud uploads, no third parties.
- REST API for automation from scripts and workflows.
- Replaces paid subscriptions to ILovePDF, SmallPDF, or Adobe.