PDF-Dateien zusammenfügen, aufteilen, umwandeln oder verkleinern: Für solche Aufgaben greifen viele zu externen Online-Diensten. Bei vertraulichen Unterlagen ist das nicht immer eine gute Idee. BentoPDF stellt zahlreiche PDF-Werkzeuge über eine moderne Weboberfläche bereit und lässt sich auf dem eigenen Server betreiben. In dieser Anleitung richtest du die Self-Hosted-Version mit Docker Compose ein, prüfst den Container, bindest eine eigene HTTPS-Adresse an und verstehst, welche Sicherheitsgrenzen auch bei einer lokal betriebenen PDF-Anwendung wichtig bleiben.
Was du benötigst: Einen Linux-Server mit funktionierendem Docker Engine und dem docker compose-Plugin, einen freien lokalen Port (in dieser Anleitung 3000) und für den Zugriff von anderen Geräten einen bereits funktionierenden HTTPS-Reverse-Proxy. Die Docker-Befehle sind für einen üblichen Linux-Host geschrieben; Docker Desktop oder Podman unterscheiden sich im Detail.
Was ist BentoPDF?
BentoPDF bietet unter anderem Werkzeuge zum Zusammenfügen, Teilen, Umwandeln und Bearbeiten von PDFs. Das Projekt dokumentiert eine eigene Self-Hosted-Container-Variante ohne die Marketing-Oberfläche der öffentlichen Website. Sie ist keine in ihren Werkzeugen absichtlich reduzierte Testversion. Die Anwendung stellt viele Bearbeitungsfunktionen im Browser bereit; überprüfe bei vertraulichen Unterlagen dennoch die konkrete Verarbeitung, eingebundene Ressourcen und die Sicherheitsanforderungen deiner Organisation. Eigene Zugangskontrolle gehört nicht automatisch zu jedem bereitgestellten Webwerkzeug.
1. Docker vorbereiten
Prüfe zunächst, ob Docker und Compose erreichbar sind. Die Versionsnummern hängen von deiner Installation ab, die folgenden Zeilen sind daher nur illustrative Beispielausgaben:
docker --version
docker compose version
docker info --format '{{.ServerVersion}}'
Beispielausgabe (keine echte Messung):
Docker version 28.x.x, build [Beispiel]
Docker Compose version v2.x.x
28.x.x
Falls der dritte Befehl wegen fehlender Berechtigungen scheitert, überprüfe deine Docker-Installation und den Zugriff auf den Docker-Daemon. Füge Benutzer nicht unbedacht zur Gruppe docker hinzu: Diese Berechtigung ist auf einem normalen Host praktisch administrativ.
2. Arbeitsverzeichnis anlegen
Lege ein eigenes Verzeichnis für die Compose-Datei an. Darin liegt die Konfiguration des Dienstes; du musst für die normale Nutzung von BentoPDF keine Datenbank und kein weiteres separates PDF-Speichervolume einrichten.
mkdir -p ~/docker/bentopdf
cd ~/docker/bentopdf
pwd
Beispielausgabe (keine echte Messung):
/home/[BENUTZER]/docker/bentopdf
Die Ausgabe dient als Orientierung. Auf deinem Host steht anstelle von [BENUTZER] dein tatsächlicher Benutzername.
3. Docker Compose konfigurieren
Erstelle in diesem Verzeichnis eine Datei namens compose.yaml. Trage folgende Konfiguration ein. Sie basiert auf der offiziell dokumentierten Self-Hosted-Container-Variante; die Portbindung auf 127.0.0.1 ist hier bewusst restriktiver als der öffentliche Beispielport der Projektdokumentation.
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
container_name: bentopdf
restart: unless-stopped
ports:
- "127.0.0.1:3000:8080"
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080"]
interval: 30s
timeout: 10s
retries: 3
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
Der Container hört intern auf Port 8080. Der Host stellt ihn nur unter 127.0.0.1:3000 bereit. Damit können andere Geräte im Heimnetz den Port nicht direkt öffnen; du benötigst entweder einen passenden Reverse Proxy oder für einen ersten Test einen SSH-Tunnel. Wenn du den Dienst bewusst über die lokale Netzwerkschnittstelle anbieten möchtest, passe die Bind-Adresse gezielt an und schütze den Zugriff. Das Tag latest folgt neuen Veröffentlichungen; für reproduzierbare Produktivumgebungen solltest du nach der Ersteinrichtung einen geprüften Release-Tag beziehungsweise Digest festhalten.
4. Konfiguration prüfen
Die Compose-Datei muss syntaktisch gültig sein. Prüfe sie vor dem Start:
docker compose config --quiet
docker compose config --services
Beispielausgabe (keine echte Messung):
bentopdf
Der erste Befehl gibt im Erfolgsfall gewöhnlich nichts aus und endet mit Code 0. docker compose config --services zeigt den Dienstnamen. Wenn stattdessen eine Fehlermeldung erscheint, kontrolliere insbesondere Einrückung, Doppelpunkte und Anführungszeichen.
5. BentoPDF starten
Starte nun den Dienst. Docker lädt das Image aus der GitHub Container Registry und erstellt den Container.
docker compose up -d
docker compose ps
Beispielausgabe (keine echte Messung):
[+] Running 1/1
✔ Container bentopdf Started
NAME IMAGE SERVICE STATUS
bentopdf ghcr.io/alam00000/bentopdf-simple:latest bentopdf Up (healthy)
Der Gesundheitszustand kann direkt nach dem Start vorübergehend starting anzeigen. Prüfe den Status nach kurzer Zeit erneut. Falls der Container nicht startet, kontrolliere zuerst seine Ausgaben:
docker compose logs --tail=80 bentopdf
Beispielausgabe (keine echte Messung):
bentopdf | [Beispiel: Webserver gestartet; keine kritischen Fehler]
Ein erfolgreicher Start ist noch keine vollständige Funktionsprüfung. Öffne eine kleine, unkritische Test-PDF und probiere eine konkrete Aktion wie Seiten aufteilen oder zusammenfügen aus.
6. Lokalen Zugriff testen
Auf dem Docker-Host selbst erreichst du die Anwendung über http://127.0.0.1:3000. Prüfe zuerst den HTTP-Status und wichtige Header:
curl -I http://127.0.0.1:3000
Beispielausgabe (keine echte Messung):
HTTP/1.1 200 OK
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
content-type: text/html
Das ist eine illustrative Ausgabe, keine Messung am eigenen Server. Insbesondere für Office-Dateiumwandlungen sind die Header Cross-Origin-Opener-Policy und Cross-Origin-Embedder-Policy wichtig. Die offiziellen Images bringen die erforderlichen Header mit. Wenn ein Reverse Proxy sie entfernt oder verändert, können bestimmte Funktionen trotzdem ausfallen.
7. Eigene HTTPS-Adresse
Für die Nutzung über eine Subdomain wie pdf.example.com leitest du deinen bestehenden Reverse Proxy auf http://127.0.0.1:3000 weiter, wenn Proxy und Container-Host derselbe Rechner sind. Läuft der Proxy als separater Container, gilt 127.0.0.1 innerhalb dieses Containers für dessen eigene Umgebung; dann verwende eine ausdrücklich freigegebene interne Docker-Netzwerkverbindung oder die passende Hostadresse. Aktiviere TLS mit einem gültigen Zertifikat und verwende nach Möglichkeit eine Zugriffskontrolle, etwa über deinen vorhandenen Zero-Trust-Proxy.
Wichtig: Moderne Browser behandeln gewöhnliche unverschlüsselte LAN-Adressen wie http://192.168.x.x nicht als sichere Kontexte. Office-Umwandlungen können deshalb trotz erreichbarer Oberfläche scheitern. Für einen Dienst, den andere Geräte verwenden, ist HTTPS die richtige Wahl. Die Header dürfen durch Cloudflare oder andere Proxys nicht verloren gehen.
8. PDF-Werkzeuge ausprobieren
Öffne die Oberfläche im Browser und suche das gewünschte Werkzeug, beispielsweise Merge PDF zum Zusammenfügen oder Compress PDF zum Verkleinern. Verwende beim ersten Test ein eigens erzeugtes Dokument ohne persönliche Daten. Prüfe anschließend, ob das Ergebnis lesbar und vollständig ist. Funktionen wie OCR oder die Konvertierung großer Office-Dateien können zusätzliche Ressourcen beanspruchen und vom Browser, der Netzverbindung und der jeweiligen Werkzeugimplementierung abhängen.
BentoPDF bietet viele Werkzeuge, aber nicht jedes PDF lässt sich verlustfrei in ein anderes Format übertragen. Besonders bei komplexen Layouts, eingebetteten Schriften und digitalen Signaturen solltest du das Ergebnis sorgfältig kontrollieren. Bewahre die Originaldatei auf, bevor du Änderungen übernimmst.
9. Privatsphäre und Sicherheit
Ein selbst gehostetes Tool ist nicht automatisch vollständig abgeschottet. Prüfe, welche Ressourcen die verwendete Version lädt, welche Daten im Browser verarbeitet werden und ob du eine öffentliche Instanz überhaupt benötigst. Eine offen im Internet erreichbare PDF-Oberfläche ohne Schutz kann missbraucht werden oder fremde Nutzer anziehen. Für private Installationen sind VPN beziehungsweise Zero-Trust-Zugriff und eine beschränkte Portfreigabe sinnvoll.
Container-Images sollten regelmäßig auf Sicherheitsupdates geprüft und vor einem produktiven Upgrade gezielt getestet werden. Die einfache Compose-Installation benötigt keine dauerhaft gespeicherte Nutzerdatei im Container-Volume; sichere aber deine compose.yaml und alle weiteren eigenen Konfigurationen. Sensible PDF-Dokumente gehören weiterhin in ein separates, gesichertes Dateisystem.
10. Aktualisieren und prüfen
Wenn du nach Kontrolle der offiziellen Release Notes aktualisieren möchtest, sichere zuvor deine Konfiguration und ziehe das geprüfte Image neu. Mit dem latest-Tag können Änderungen zwischen zwei Updates auftreten, deshalb ist für kritische Installationen ein bestimmter getesteter Release oder Digest sinnvoll.
docker compose pull
docker compose up -d
docker compose ps
Beispielausgabe (keine echte Messung):
[+] Pulling 1/1
✔ bentopdf Pulled
[+] Running 1/1
✔ Container bentopdf Running
Teste nach jedem Update mindestens den Seitenaufruf, den Gesundheitsstatus und zwei wichtige PDF-Funktionen. Ein Rollback gelingt am zuverlässigsten, wenn du den zuvor verwendeten Image-Tag oder Digest dokumentiert hast.
Fehler beheben
Port bereits belegt: Wenn Docker meldet, dass der Host-Port 3000 nicht gebunden werden kann, wähle einen freien Port auf der linken Seite des Mappings und passe den Proxy entsprechend an.
Container läuft, Browser zeigt nichts: Prüfe die Bind-Adresse, die Erreichbarkeit des Proxys und docker compose logs. Die bewusste Bindung auf 127.0.0.1 erlaubt keinen direkten Zugriff von anderen Geräten.
Office-Konvertierung funktioniert nicht: Kontrolliere zuerst HTTPS, den sicheren Browser-Kontext und die COOP/COEP-Header. Nutze die offizielle Docker-Dokumentation für die genauen Browseranforderungen. Es ist keine sichere Lösung, sämtliche Sicherheitsheader wahllos zu deaktivieren.
Große PDFs scheitern: Prüfe Browser-RAM, Ressourcen des Hosts, Logmeldungen und den verwendeten Dateityp. Weder unbegrenzte Uploadgrößen noch pauschale Sicherheitsausnahmen sollten deine erste Maßnahme sein.
Fazit
BentoPDF ist eine interessante Ergänzung für einen selbst betriebenen Werkzeugkasten: Eine eigene PDF-Oberfläche ist schnell eingerichtet und lässt sich gezielt in deine bestehende HTTPS-Infrastruktur integrieren. Entscheidend sind die richtige Self-Hosted-Image-Variante, ein sicher erreichbarer Dienst und die Kontrolle der Bearbeitungsergebnisse. So kannst du viele alltägliche PDF-Aufgaben erledigen, ohne dich bei jeder Datei auf einen externen Onlinedienst verlassen zu müssen.
Offizielle Quellen: BentoPDF: Docker-Installation, Self-Hosting-Übersicht. Weiterlesen: Stirling PDF installieren.

Schreiben Sie einen Kommentar