Stirling-PDF – Ein vollständiges PDF-Werkzeug, selbst gehostet
Das Problem mit PDF-Tools
Das Internet ist voll von PDF-Tools – und fast alle haben einen Haken. Zwei PDFs zusammenfügen? Kreditkarte hinterlegen. Eine Seite drehen? Nur mit Wasserzeichen. Text aus einem Scan extrahieren? Premium-Funktion.
Neben den Kosten gibt es ein weiteres Problem: Die Dokumente landen auf fremden Servern. Gehaltsabrechnungen, Verträge, Arztbriefe – einfach hochgeladen, weil es gerade praktisch war.
Stirling-PDF löst beides.
Was ist Stirling-PDF?
Stirling-PDF ist eine selbstgehostete Web-Anwendung mit über 50 PDF-Funktionen. Alles läuft lokal, in einem einzigen Docker-Container, ohne Cloud-Anbindung:
- ✂️ PDFs zusammenfügen, aufteilen, komprimieren
- 🔄 Seiten drehen, neu anordnen, löschen
- 🔍 OCR – Text aus gescannten Dokumenten extrahieren
- 🔒 PDFs verschlüsseln, entschlüsseln, mit Passwort schützen
- 🖼️ PDF zu Bild, Bild zu PDF, Word zu PDF
- ✍️ Wasserzeichen hinzufügen, Metadaten bearbeiten
- 📋 Formulare ausfüllen
Die Weboberfläche ist übersichtlich, auf Deutsch verfügbar und funktioniert direkt im Browser – keine Installation, kein Account.
💡 Niveau: Einsteigerfreundlich. Es werden nur Docker und Docker Compose vorausgesetzt.
Architektur
Stirling-PDF ist bewusst schlank gehalten. Kein Verbund aus mehreren Diensten – alles läuft in einem einzigen Container:
┌─────────────────────────────────────────────┐
│ stirling-pdf (Port 8080) │
│ │
│ Web-UI │ PDF-Engine │ OCR (Tesseract) │
│ │
│ ./DATA/trainingData → OCR-Sprachdaten │
│ ./DATA/extraConfigs → Konfiguration │
│ ./DATA/customFiles → eigene Dateien │
│ ./DATA/logs → Logdateien │
│ ./DATA/pipeline → Automatisierungen │
└─────────────────────────────────────────────┘
│
└── erreichbar über http://server-ip:8088
Ein Container, fünf gemountete Verzeichnisse. Das macht Stirling-PDF so ideal für den Einstieg.
Vorbereitung
Docker prüfen
docker --version
docker compose version
Falls Docker noch nicht installiert ist, empfiehlt sich das offizielle Installationsskript:
curl -fsSL https://get.docker.com | sh
Verzeichnisstruktur anlegen
mkdir -p /opt/stirling-pdf
cd /opt/stirling-pdf
mkdir -p DATA/trainingData \
DATA/extraConfigs \
DATA/customFiles \
DATA/logs \
DATA/pipeline
Die Verzeichnisse werden vorab erstellt, damit Docker keine Root-Verzeichnisse anlegt – ein häufiger Fallstrick beim ersten Start.
| Verzeichnis | Inhalt |
|---|---|
trainingData |
Sprachdaten für OCR (Tesseract .traineddata-Dateien) |
extraConfigs |
Konfigurationsdateien von Stirling-PDF |
customFiles |
Eigene Dateien, die in der App verfügbar sein sollen |
logs |
Logdateien des Servers |
pipeline |
Konfigurationen für automatisierte PDF-Workflows |
docker-compose.yml
Vollständige Compose-Datei
version: '3.3'
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- '8088:8080'
volumes:
- ./DATA/trainingData:/usr/share/tessdata
- ./DATA/extraConfigs:/configs
- ./DATA/customFiles:/customFiles/
- ./DATA/logs:/logs/
- ./DATA/pipeline:/pipeline/
environment:
- DISABLE_ADDITIONAL_FEATURES=false
- LANGS=en_GB
restart: unless-stopped
ports
ports:
- '8088:8080'
Format: HOST:CONTAINER. Der Container lauscht intern auf Port 8080, nach außen ist er über 8088 erreichbar. Der Host-Port kann frei gewählt werden, solange er nicht bereits belegt ist.
volumes
volumes:
- ./DATA/trainingData:/usr/share/tessdata
- ./DATA/extraConfigs:/configs
- ./DATA/customFiles:/customFiles/
- ./DATA/logs:/logs/
- ./DATA/pipeline:/pipeline/
Format: HOST_PFAD:CONTAINER_PFAD. Alles, was Stirling-PDF in seine internen Verzeichnisse schreibt, landet auf dem Host und überlebt damit jeden Container-Neustart oder Update.
environment
environment:
- DISABLE_ADDITIONAL_FEATURES=false
- LANGS=en_GB
DISABLE_ADDITIONAL_FEATURES=false aktiviert alle Funktionen inklusive OCR, Komprimierung und Konvertierung.
LANGS definiert die OCR-Sprache. Für deutsche Dokumente kann de ergänzt werden:
- LANGS=en_GB,de
Start
docker compose up -d
Beim ersten Start wird das Image heruntergeladen – je nach Verbindung dauert das 1–2 Minuten. Danach ist Stirling-PDF unter http://server-ip:8088 erreichbar.
# Logs beobachten
docker compose logs -f
# Status prüfen
docker compose ps
Updates & Wartung
Da alle Daten in ./DATA auf dem Host liegen, gehen bei einem Update keine Einstellungen oder Daten verloren.
# Neues Image holen und Container neu starten
docker compose pull
docker compose up -d
# Container stoppen
docker compose down
# Logs anzeigen
docker compose logs -f stirling-pdf
Fazit
Stirling-PDF ist ein solider Einstieg ins Self-Hosting: ein Container, keine Datenbank, minimale Konfiguration – und ein vollwertiger Ersatz für gängige Online-PDF-Tools. Die eigenen Dokumente bleiben dort, wo sie hingehören.