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.
Review-first install path
This asset needs a review step. The copied prompt tells the agent to dry-run, show the writes, then proceed only after confirmation.
npx -y tokrepo@latest install fc325975-349f-11f1-9bc6-00163e2b0d79 --target codexDry-run first, confirm the writes, then run this command.
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
BentoPDF — Privacy-First Self-Hosted PDF Toolkit
BentoPDF is a self-hosted web application that provides a comprehensive set of PDF tools including merging, splitting, converting, and OCR without sending files to external services.
ArchiveBox — Self-Hosted Web Archiving Platform
ArchiveBox is an open-source self-hosted web archiver that saves URLs as local HTML, PDF, screenshots, WARC, and more. Feed it bookmarks, browser history, or RSS feeds and it preserves everything for offline access.
Cachet — Open Source Self-Hosted Status Page System
Cachet is a self-hosted status page application that helps teams communicate service availability and incidents to users through a clean web dashboard.
Flame — Self-Hosted Startpage for Your Server
Flame is a self-hosted startpage and application dashboard that lets you organize bookmarks, monitor Docker containers, and customize your home server landing page with a clean, themeable interface.