Stirling PDF — Self-Hosted PDF Editor & Toolkit
Stirling PDF is the #1 open-source PDF tool on GitHub. Merge, split, convert, compress, OCR, sign, and edit PDFs — all self-hosted with no data leaving your server.
What it is
Stirling PDF is an open-source, self-hosted web application for performing PDF operations. It handles merging, splitting, converting, compressing, OCR, signing, and editing PDFs through a browser-based interface. No data leaves your server, making it suitable for environments with strict data privacy requirements.
Teams handling sensitive documents, IT administrators looking for a self-hosted alternative to cloud PDF tools, and developers who need PDF processing in their infrastructure will find Stirling PDF practical. It runs as a Docker container with a web UI accessible from any browser.
How it saves time or tokens
Cloud PDF services charge per document or per user and require uploading files to third-party servers. Stirling PDF eliminates both costs -- there are no per-document fees and no data leaves your network. The web UI provides all common PDF operations in one place, removing the need for multiple tools or command-line utilities like qpdf, ghostscript, or pdftk.
How to use
- Deploy with Docker:
docker run -d --name stirling-pdf -p 8080:8080 \
-v stirling-data:/usr/share/tessdata \
frooodle/s-pdf:latest
- Open
http://localhost:8080in your browser. - Select the operation you need (merge, split, convert, OCR, etc.) from the web UI.
- Upload your PDF files, configure options, and download the result.
Example
# Docker Compose with persistent storage and OCR language packs
version: '3.8'
services:
stirling-pdf:
image: frooodle/s-pdf:latest
ports:
- '8080:8080'
volumes:
- ./tessdata:/usr/share/tessdata
- ./configs:/configs
- ./logs:/logs
environment:
DOCKER_ENABLE_SECURITY: 'false'
LANGS: 'en_GB,de_DE,fr_FR'
# API usage for automation
curl -X POST http://localhost:8080/api/v1/general/merge \
-F 'fileInput=@file1.pdf' \
-F 'fileInput=@file2.pdf' \
-o merged.pdf
Related on TokRepo
- Document Processing Tools -- explore tools for document handling and processing
- Self-Hosted Tools -- discover self-hosted alternatives to cloud services
Common pitfalls
- OCR requires Tesseract language data files. The default image includes English only. Mount additional language packs to the tessdata volume for other languages.
- Large PDF files (100+ MB) can consume significant memory during processing. Allocate sufficient Docker memory limits for heavy workloads.
- The API endpoints use multipart form uploads. Ensure your client handles file boundaries correctly when automating PDF operations.
Frequently Asked Questions
Stirling PDF supports merging, splitting, rotating, converting (PDF to image and back), compressing, OCR (text recognition), adding watermarks, signing, password protection, and metadata editing. The web UI organizes these operations into categories for easy discovery.
Yes. All processing happens on your server. No document data is sent to external services. The application runs entirely within its Docker container, making it suitable for air-gapped environments and organizations with strict data sovereignty requirements.
Yes. Stirling PDF exposes REST API endpoints for all operations. You can send PDF files via multipart form POST requests and receive processed files in the response. This enables integration into document processing pipelines and CI/CD workflows.
Mount Tesseract language data files to the /usr/share/tessdata volume. Download .traineddata files for your target languages from the Tesseract GitHub repository and place them in the mounted directory. Restart the container to load new language packs.
Stirling PDF runs as a Docker container and requires minimal resources for basic operations. For OCR and large file processing, allocate at least 2GB of RAM to the container. Storage depends on your document volume. The application works on any platform that supports Docker, including Linux, macOS, and Windows.
Citations (3)
- Stirling PDF GitHub— Self-hosted PDF tool with merge, split, convert, compress, OCR, and signing
- Stirling PDF README— Docker-based deployment with web UI
- Tesseract OCR— Uses Tesseract OCR engine for text recognition
Related on TokRepo
Source & Thanks
- GitHub: Stirling-Tools/Stirling-PDF — 76.5K+ ⭐
- Website: stirlingpdf.io
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.