Stirling PDF Tools
Self-hosted PDF manipulation tool for merging, splitting, converting, and more.
Overview
Stirling PDF Tools is a powerful, self-hosted web application that provides comprehensive PDF manipulation capabilities without requiring users to upload sensitive documents to third-party services. Developed as a privacy-focused alternative to online PDF tools, Stirling PDF offers an extensive suite of features including document merging, splitting, rotation, watermarking, OCR processing, and format conversion. The application runs entirely within your infrastructure, ensuring complete data sovereignty and compliance with strict privacy requirements.
This deployment combines Stirling PDF with NGINX to create a production-ready document processing platform. NGINX serves as a reverse proxy, handling SSL termination, static file caching, and providing enhanced security features like rate limiting and request filtering. This architecture allows you to expose Stirling PDF to multiple users or teams while maintaining performance and security standards. The setup isolates PDF processing workloads behind NGINX's battle-tested web server capabilities.
This stack is ideal for organizations that regularly handle confidential documents, legal firms processing sensitive contracts, educational institutions managing student records, or any business requiring reliable PDF manipulation tools without cloud dependencies. Small businesses and home users will appreciate the comprehensive feature set that rivals expensive desktop applications, while enterprises benefit from the scalable, containerized deployment that integrates with existing infrastructure monitoring and backup systems.
Key Features
- Complete PDF manipulation suite with merge, split, rotate, crop, and page extraction capabilities
- Advanced OCR processing using Tesseract with support for multiple languages and custom training data
- Format conversion between PDF, Word, Excel, PowerPoint, and various image formats
- Security features including password protection, digital signatures, and watermark application
- NGINX reverse proxy with SSL/TLS termination and HTTP/2 support for improved performance
- Batch processing capabilities for handling multiple documents simultaneously
- Image extraction and manipulation tools for extracting graphics from PDF documents
- Form filling and PDF annotation tools for interactive document processing
Common Use Cases
- 1Legal firms processing confidential contracts and court documents without cloud exposure
- 2Educational institutions batch-processing student transcripts and administrative documents
- 3Small businesses combining invoices, contracts, and reports for client deliverables
- 4Government agencies requiring air-gapped document processing for classified materials
- 5Healthcare organizations processing patient records while maintaining HIPAA compliance
- 6Real estate companies combining property documents, contracts, and disclosure forms
- 7Corporate document management for merging quarterly reports and financial statements
Prerequisites
- Minimum 1GB RAM for basic PDF operations, 2GB+ recommended for OCR processing
- Docker and Docker Compose installed with sufficient storage for document processing
- Ports 80 and 443 available for NGINX web server access
- Understanding of NGINX configuration for SSL certificate setup and custom domains
- Basic knowledge of PDF processing workflows and document security requirements
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 stirling-pdf: 3 image: frooodle/s-pdf:latest4 ports: 5 - "8080:8080"6 volumes: 7 - stirling_training:/usr/share/tessdata8 - stirling_configs:/configs9 - stirling_logs:/logs10 environment: 11 DOCKER_ENABLE_SECURITY: "false"12 networks: 13 - stirling-net14 restart: unless-stopped1516 nginx: 17 image: nginx:alpine18 ports: 19 - "80:80"20 - "443:443"21 volumes: 22 - ./nginx.conf:/etc/nginx/nginx.conf:ro23 depends_on: 24 - stirling-pdf25 networks: 26 - stirling-net27 restart: unless-stopped2829volumes: 30 stirling_training: 31 stirling_configs: 32 stirling_logs: 3334networks: 35 stirling-net: 36 driver: bridge.env Template
.env
1# Stirling PDF Configuration2DOCKER_ENABLE_SECURITY=falseUsage Notes
- 1Web UI at http://localhost:8080
- 2Merge, split, rotate, watermark PDFs
- 3OCR and image extraction
- 4No data leaves your server
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
stirling-pdf
stirling-pdf:
image: frooodle/s-pdf:latest
ports:
- "8080:8080"
volumes:
- stirling_training:/usr/share/tessdata
- stirling_configs:/configs
- stirling_logs:/logs
environment:
DOCKER_ENABLE_SECURITY: "false"
networks:
- stirling-net
restart: unless-stopped
nginx
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- stirling-pdf
networks:
- stirling-net
restart: unless-stopped
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 stirling-pdf:5 image: frooodle/s-pdf:latest6 ports:7 - "8080:8080"8 volumes:9 - stirling_training:/usr/share/tessdata10 - stirling_configs:/configs11 - stirling_logs:/logs12 environment:13 DOCKER_ENABLE_SECURITY: "false"14 networks:15 - stirling-net16 restart: unless-stopped1718 nginx:19 image: nginx:alpine20 ports:21 - "80:80"22 - "443:443"23 volumes:24 - ./nginx.conf:/etc/nginx/nginx.conf:ro25 depends_on:26 - stirling-pdf27 networks:28 - stirling-net29 restart: unless-stopped3031volumes:32 stirling_training:33 stirling_configs:34 stirling_logs:3536networks:37 stirling-net:38 driver: bridge39EOF4041# 2. Create the .env file42cat > .env << 'EOF'43# Stirling PDF Configuration44DOCKER_ENABLE_SECURITY=false45EOF4647# 3. Start the services48docker compose up -d4950# 4. View logs51docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/stirling-pdf-tools/run | bashTroubleshooting
- OCR processing fails with 'Tesseract not found': Ensure stirling_training volume is properly mounted and Tesseract language packs are downloaded
- Large PDF uploads timeout: Increase NGINX client_max_body_size directive and proxy timeout values in nginx.conf
- Memory errors during PDF processing: Increase container memory limits and ensure sufficient host system RAM
- NGINX 502 Bad Gateway errors: Verify stirling-pdf container is running and accessible on port 8080 within the Docker network
- PDF conversion fails for Office documents: Check that LibreOffice components are properly installed in the stirling-pdf container
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
stirling-pdfnginx
Tags
#pdf#stirling#documents#conversion#tools
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download