This guide describes the installation and configuration of PDF Toolbox (based on Stirling PDF).
- Docker Engine 20.10+
- Docker Compose v2.0+
- At least 4 GB RAM (recommended: 8 GB for
latest-fatimage) - 10 GB free disk space
| Image | Size | Features | Usage |
|---|---|---|---|
latest |
~400 MB | Basic PDF tools | Simple operations |
latest-fat |
~1.5 GB | All tools incl. OCR, LibreOffice | Recommended |
latest-ultra-lite |
~200 MB | Minimal features | Resource-limited environments |
git clone https://github.com/bauer-group/CS-PDF-Toolbox.git
cd CS-PDF-Toolboxcp .env.example .env# With tools container (recommended)
./tools/run.sh -s './scripts/generate-secrets.sh'
# Or directly
./scripts/generate-secrets.shThis automatically generates:
- Admin password (
SECURITY_INITIAL_LOGIN_PASSWORD) - API key (optional)
Development (without reverse proxy):
docker compose -f docker-compose.development.yml up -dAccess: http://localhost:8080
Production with Traefik:
docker compose -f docker-compose.traefik.yml up -dAccess: https://pdf.app.bauer-group.com
Coolify PaaS:
docker compose -f docker-compose.coolify.yml up -d/configs/ # Configuration files
├── settings.yml # Main configuration
├── custom_settings.yml # Custom settings
└── stirling-pdf-DB.mv.db # H2 database (when login enabled)
/customFiles/ # Branding & customizations
├── static/ # Static files (logos, CSS)
│ ├── favicon.ico
│ ├── logo.svg
│ └── custom.css
├── signatures/ # Signature certificates
│ ├── ALL_USERS/ # For all users
│ └── {username}/ # User-specific
└── translations/ # Custom translations
/logs/ # Application logs
├── stirling-pdf.log
└── invalid-auths.log # Failed login attempts
/pipeline/ # Automation
├── watchedFolders/ # Watched input folders
└── finishedFolders/ # Processed outputs
/usr/share/tessdata/ # OCR language data
volumes:
# Required
- 'stirling-configs:/configs'
# Recommended
- 'stirling-customFiles:/customFiles'
- 'stirling-logs:/logs'
# Optional
- 'stirling-tessdata:/usr/share/tessdata' # Additional OCR languages
- 'stirling-pipeline:/pipeline' # Automation
# PDF signing certificate
- './certs/cert.p12:/customFiles/signatures/ALL_USERS/cert.p12:ro'| Port | Service | Description |
|---|---|---|
| 8080 | HTTP | Web interface & API |
The docker-compose.traefik.yml includes all necessary labels for:
- Automatic HTTPS certificates (Let's Encrypt)
- HTTP to HTTPS redirect
- Load balancing
# UFW (Ubuntu)
ufw allow 8080/tcp # Development only
# Production: only 80/443 via reverse proxy
ufw allow 80/tcp
ufw allow 443/tcp- Open the application in browser
- Login with admin account: Username
admin, password from.env - Change admin password: After first login in account settings
- Create additional users: In admin area
# Check logs
docker logs pdf_SERVER
# Check permissions
docker exec pdf_SERVER ls -la /configs# In docker-compose.yml
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G# Check available languages
docker exec pdf_SERVER tesseract --list-langs
# German language data is included in latest-fat image