Paperless-ngx mit Docker installieren¶
Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 5 Minuten
Paperless-ngx macht gescannte Briefe und Rechnungen durch OCR durchsuchbar und legt Dokumente mit Schlagwörtern, Absendern und Dokumenttypen ab. Die Dateien bleiben auf deinem eigenen Server. Für Installation und ersten Dokumenttest solltest du etwa 30 bis 45 Minuten einplanen.
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Mindestens 2 GB freier Arbeitsspeicher und ausreichend Speicher für Dokumente
- Eine feste IP-Adresse oder DHCP-Reservierung für den Server
curlund Python 3 auf dem Server
1. Arbeitsordner anlegen¶
Führe den folgenden Befehl im Terminal des Docker-Servers aus. Er legt einen eigenen Ordner für Paperless-ngx an:
Gib den Ordner anschließend deinem angemeldeten Benutzer. Ersetze <benutzer> durch
deinen Linux-Benutzernamen:
Wechsle in den Arbeitsordner:
2. Offizielle Compose-Dateien laden¶
Lade die aktuelle PostgreSQL-Compose-Datei direkt aus dem offiziellen Projekt. Sie richtet Paperless-ngx, PostgreSQL und Redis gemeinsam ein:
curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml -o docker-compose.yml
Lade die zugehörige Konfigurationsdatei:
curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env -o docker-compose.env
Die kleine .env-Datei sorgt für einen eindeutigen Namen der Docker-Volumes:
curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env -o .env
Dateien vor späteren Updates vergleichen
Überschreibe deine angepassten Dateien bei einem Update nicht blind. Die offiziellen Vorlagen können sich ändern. Sichere sie und vergleiche Änderungen, bevor du eine neue Vorlage übernimmst.
3. Geheimen Schlüssel erzeugen¶
Die Vorlage enthält nur einen unsicheren Beispielwert. Dieser Befehl erzeugt lokal
einen zufälligen Schlüssel, trägt ihn in docker-compose.env ein und entfernt die
Shell-Variable danach wieder:
secret="$(python3 -c 'import secrets; print(secrets.token_urlsafe(64))')" && sed -i "s|^PAPERLESS_SECRET_KEY=.*|PAPERLESS_SECRET_KEY=$secret|" docker-compose.env && unset secret
Prüfe nur, ob die Zeile vorhanden ist, ohne den Schlüssel auf dem Bildschirm auszugeben:
Schlüssel nicht weitergeben
Der Schlüssel schützt Sitzungen und signierte Daten. Veröffentliche die Datei
docker-compose.env nicht und speichere sie zusammen mit deiner Sicherung.
4. Sprache und Zeitzone einstellen¶
Füge deutsche Zeitzone und deutsche OCR-Erkennung an die Konfigurationsdatei an:
PAPERLESS_OCR_LANGUAGE=deu legt Deutsch als Standardsprache für die Texterkennung
fest. Die offizielle Container-Vorlage enthält die deutsche Tesseract-Sprache bereits.
5. Container starten¶
Lade die benötigten Images und starte alle Dienste. Führe beide Befehle im Ordner
/opt/paperless-ngx aus:
Prüfe, ob broker, db und webserver laufen:
Die ersten Datenbankmigrationen können einige Minuten dauern. Beobachte bei Bedarf das Protokoll:
Beende die laufende Protokollanzeige mit Strg+C. Die Container laufen weiter.
6. Administratorkonto anlegen¶
Dieser Befehl wird im Paperless-Webcontainer ausgeführt und fragt Benutzername, E-Mail-Adresse und Passwort interaktiv ab:
Verwende ein langes, einzigartiges Passwort. Gib keine echten Zugangsdaten in die Compose-Datei oder in kopierte Befehle ein.
7. Oberfläche öffnen und testen¶
Öffne im Browser:
Ersetze <server-ip> durch die IP-Adresse deines Docker-Servers. Melde dich mit dem
soeben erstellten Administratorkonto an. Lade zum Test eine unkritische PDF-Datei
über die Oberfläche hoch. Nach der Verarbeitung sollte ihr Text durchsuchbar sein.
Dokumentenarchiv schützen
Leite Port 8000 nicht direkt aus dem Internet weiter. Dokumente enthalten oft besonders sensible Daten. Nutze für externen Zugriff ein VPN oder einen HTTPS-Reverse-Proxy mit zusätzlicher Zugriffsbeschränkung.
8. Dokumente über den Eingangsordner importieren¶
Die offizielle Compose-Datei bindet den Ordner /opt/paperless-ngx/consume ein.
Kopiere ein Dokument dorthin, damit Paperless-ngx es automatisch einliest:
Ersetze <datei.pdf> durch den vollständigen Pfad deiner PDF-Datei. Verwende zuerst
nur eine Kopie, bis du geprüft hast, wie deine Installation mit Originaldateien
umgeht.
9. Sicherung und Rückweg einrichten¶
Der offizielle Dokumentexport enthält Dokumente, Vorschaubilder, Metadaten und den Datenbankinhalt. Starte ihn im Arbeitsordner mit:
Das Ergebnis liegt danach unter /opt/paperless-ngx/export. Sichere zusätzlich
docker-compose.yml, docker-compose.env und .env verschlüsselt auf einem zweiten
Datenträger. Prüfe regelmäßig, ob im Export eine manifest.json und Dokumentdateien
vorhanden sind.
Version beim Wiederherstellen beachten
Ein Export sollte mit derselben Paperless-ngx-Version importiert werden, mit der er erstellt wurde. Notiere deshalb die laufende Version oder sichere die verwendete Image-Angabe zusammen mit dem Export. API-Token sind nicht enthalten und müssen nach einem Import neu erstellt werden.
Für einen sicheren Rückweg stoppst du den aktuellen Stack, benennst den Arbeitsordner
um und richtest eine leere Installation mit passender Version ein. Lege den Export
in deren Ordner export und importiere ihn erst in die leere Installation.
10. Aktualisieren¶
Prüfe vor einem Update die offiziellen Versions- und Migrationshinweise und erstelle einen Export. Stoppe dann den Stack:
Lade die aktuellen Images und starte Paperless-ngx wieder:
Prüfe danach Oberfläche und Protokoll:
11. Typische Fehler beheben¶
Bleibt die Oberfläche leer, warte zunächst auf das Ende der Datenbankmigrationen und prüfe den Zustand:
Ist Port 8000 bereits belegt, ändere in docker-compose.yml beim Dienst webserver
die Portzeile beispielsweise auf:
Danach erreichst du die Oberfläche unter http://<server-ip>:8010. Kann Paperless
keine Dateien aus consume lesen, prüfe Besitz und Rechte des Ordners. Setze bei
Bedarf USERMAP_UID und USERMAP_GID in docker-compose.env auf die Kennungen
deines Linux-Benutzers; du findest sie mit id.
12. Quellen und Video¶
- Offizielle Installationsanleitung
- Offizielle Hinweise zu Backup und Aktualisierung
- Paperless-ngx mit Docker installieren – deutschsprachiges Video
Fertig¶
Paperless-ngx läuft jetzt mit PostgreSQL und Redis auf deinem Docker-Server. Melde
dich unter http://<server-ip>:8000 an, lade eine Test-PDF hoch und suche nach einem
Wort aus dem Dokument. Wird die Datei gefunden, arbeiten Import, OCR und Suche wie
erwartet.