Sei ehrlich: Irgendwo bei dir steht ein Regal mit Aktenordnern, die du seit Jahren nicht angefasst hast. Kontoauszüge, Versicherungspost, die Garantie vom Kühlschrank. Und wenn du EIN Dokument davon brauchst, beginnt die große Blätter-Expedition. Paperless-ngx beendet das: Du wirfst Scans und PDFs rein, das Tool liest sie per Texterkennung, sortiert sie automatisch und macht alles in Sekunden durchsuchbar. Das Beste daran: Es läuft komplett bei dir zu Hause, deine Dokumente verlassen dein Netz nie. Und der Zeitpunkt passt gerade gut, denn vor zwei Tagen ist Version 3.1.0 mit 91 Änderungen erschienen.

Kurz gesagt: Am Ende läuft dein eigenes durchsuchbares Dokumentenarchiv mit deutscher Texterkennung auf Port 8000 — installiert mit den offiziellen Docker-Compose-Dateien. Dauer: rund 20 Minuten. Schwierigkeit: leicht, Copy-Paste-tauglich.
Schaubild: Paperless-ngx in 3 Schritten installieren — Compose-Dateien holen, Konfiguration anpassen und starten, Dokumente füttern
Der ganze Weg auf einen Blick: Dateien holen, anpassen, füttern.

So sieht der Datenfluss aus, wenn alles steht:

Scan / PDF→ landet in →consume-Ordner→ OCR + Auto-Tags →Paperless-ngx→ Volltextsuche →du, in 3 Sekunden
OCR? Texterkennung: Die Software „liest" das Bild deines Dokuments und macht daraus echten, durchsuchbaren Text. Aus dem Foto eines Kontoauszugs wird so ein Dokument, in dem du nach „Miete" suchen kannst.

Was du brauchst

  • Einen Server, Mini-PC oder Raspberry Pi mit Linux — Paperless-ngx läuft laut offizieller Doku auch auf schwächerer Hardware, OCR dauert dort nur länger.
  • Docker samt Docker Compose (offizielle Installationsanleitung).
  • Grundkenntnisse im Terminal — kopieren, einfügen, Enter reicht.
  • Rund 20 Minuten Zeit. Das Abarbeiten des Papierstapels danach dauert erfahrungsgemäß länger.

Schritt 1: Ordner anlegen und die offiziellen Dateien holen

Paperless-ngx liefert fertige Docker-Compose-Dateien mit, und genau die nehmen wir. Für Neuinstallationen empfiehlt das Projekt PostgreSQL als Datenbank. Leg einen Ordner an und lade drei Dateien aus dem offiziellen Repository:

mkdir -p ~/paperless-ngx
cd ~/paperless-ngx
curl -o docker-compose.yml https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml
curl -o docker-compose.env https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env
curl -o .env https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env

Die erste Datei ist der Bauplan mit allen Diensten, docker-compose.env enthält die Einstellungen, und die kleine .env setzt nur den Projektnamen paperless, damit Docker die Datenvolumes sauber benennt.

Nebenbei: Es gibt auch ein offizielles Installationsskript, das dich interaktiv durch die Einrichtung fragt. Wir machen es hier zu Fuß, weil du dabei verstehst, was auf deinem Server eigentlich passiert — und beim nächsten Problem nicht ratlos davorstehst.

Schritt 2: Die Konfiguration anpassen

Öffne docker-compose.env mit einem Editor deiner Wahl. Vier Dinge gehören angepasst.

Zuerst der geheime Schlüssel, mit dem Paperless-ngx Anmeldesitzungen signiert. In der Datei steht change-me, und das meint das Projekt wörtlich: Wer den Standardwert kennt, kann sich laut Doku Anmeldedaten fälschen. Generiere dir einen zufälligen Wert:

python3 -c "import secrets; print(secrets.token_urlsafe(64))"

Dann trag den Schlüssel und die restlichen Werte ein. Deine User- und Gruppen-ID bekommst du mit id -u und id -g heraus (bei den meisten Systemen ist beides 1000):

PAPERLESS_SECRET_KEY=hier-dein-generierter-schluessel
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=deu
USERMAP_UID=1000
USERMAP_GID=1000

deu sagt der Texterkennung, dass deine Dokumente auf Deutsch sind. Das deutsche Sprachpaket ist im Container übrigens schon vorinstalliert, da musst du nichts nachladen. Die beiden USERMAP-Zeilen sorgen dafür, dass sowohl du als auch der Container in den Dokumenten-Eingangsordner schreiben dürfen — ohne sie gibt es später gern Rechte-Theater.

Falls du Paperless-ngx irgendwann über eine eigene Domain hinter einem Reverse Proxy erreichbar machst, gehört zusätzlich PAPERLESS_URL=https://deine-domain.de in die Datei. Für den Start im Heimnetz brauchst du das nicht.

Schritt 3: Container starten

Jetzt der angenehme Teil:

docker compose pull
docker compose up -d

Der erste Befehl lädt die Images, der zweite startet alles im Hintergrund. Es laufen danach drei Container: der Webserver mit Paperless-ngx selbst, eine PostgreSQL-Datenbank für die Metadaten und Valkey als Nachrichten-Broker.

Broker? Das Auftragsbrett in der Restaurantküche: Der Webserver heftet Aufgaben wie „dieses PDF bitte per OCR lesen" ans Brett, und die Hintergrund-Arbeiter nehmen sie sich der Reihe nach vor. So bleibt die Oberfläche flott, auch wenn gerade zwanzig Scans verarbeitet werden.

Ob alles läuft, verrät dir docker compose ps — alle drei Dienste sollten auf „running" stehen. Beim allerersten Start braucht Paperless-ngx einen Moment, bis die Datenbank eingerichtet ist. Kein Grund zur Nervosität.

Schritt 4: Konto anlegen und Dokumente füttern

Öffne im Browser http://DEINE-SERVER-IP:8000. Beim ersten Aufruf wirst du aufgefordert, ein Superuser-Konto anzulegen. Die Doku gibt dazu einen vernünftigen Tipp mit: Der Superuser darf alles und sieht jedes Dokument — für den Alltag legst du dir besser zusätzlich ein normales Nutzerkonto an.

Und dann: füttern. Entweder ziehst du PDFs direkt per Drag-and-drop in die Weboberfläche, oder du nutzt den eleganteren Weg über den Eingangsordner.

consume-Ordner? Der Briefkasten von Paperless-ngx: Neben deiner docker-compose.yml ist automatisch ein Ordner consume entstanden. Jede Datei, die dort landet, wird eingelesen, per OCR erkannt und ins Archiv einsortiert — von ganz allein. Viele Scanner können direkt in so einen Netzwerkordner scannen.

Beim Einsortieren helfen Korrespondenten (wer hat das Dokument geschickt), Dokumenttypen und Tags. Paperless-ngx lernt aus deinen Zuordnungen und schlägt sie bei neuen Dokumenten von selbst vor. Die frische Version 3.1.0 legt da noch eine Schippe drauf: Unter anderem gibt es jetzt eine Workflow-Aktion, die KI-Vorschläge automatisch anwendet, und Dokumente lassen sich als Versionen zusammenführen — praktisch für Verträge, die in mehreren Fassungen existieren.

Häufige Stolpersteine

Port 8000 ist schon belegt. Dann verweigert der Webserver-Container den Start. Ändere in der docker-compose.yml die Zeile unter ports: zum Beispiel auf "8010:8000" und erreiche Paperless-ngx künftig über Port 8010. Wer den Übeltäter auf Port 8000 erst mal finden will: Wie du belegte Ports aufspürst, haben wir hier Schritt für Schritt gezeigt.

Der Secret Key steht noch auf change-me. Funktioniert, ist aber eine offene Flanke. Zurück zu Schritt 2, Schlüssel generieren, eintragen, danach docker compose up -d — der Container wird mit der neuen Konfiguration neu erstellt.

Dateien im consume-Ordner passiert nichts. Meist ein Rechte-Problem: Prüfe, ob USERMAP_UID und USERMAP_GID zu deinem Host-Benutzer passen (id -u, id -g). Liegt der Ordner auf einem Netzwerk-Share wie NFS, bekommt Paperless-ngx von neuen Dateien nichts mit — dann in der docker-compose.env die Variable PAPERLESS_CONSUMER_POLLING_INTERVAL auf einen Wert wie 60 setzen, damit der Ordner regelmäßig aktiv geprüft wird.

Die Weboberfläche lädt, aber Uploads hängen ewig. Auf schwacher Hardware ist das normal, OCR ist Schwerstarbeit. Die Doku empfiehlt für Raspberry Pi und Co. unter anderem, mit PAPERLESS_OCR_PAGES=1 nur die erste Seite zu erkennen. Für die Suche reicht die in den meisten Fällen.

Fazit

Paperless-ngx gehört zu den Selfhosting-Projekten, die den Alltag wirklich verändern. Nicht sofort — erst mal musst du den Bestand einscannen, und das ist ehrlicherweise eine Wochenend-Aufgabe. Aber ab dann findest du jedes Dokument schneller, als du früher den richtigen Ordner aus dem Regal gezogen hast. Ein Punkt noch, weil er wichtig ist: Deine Dokumente liegen jetzt nur bei dir, also kümmere dich zeitnah um ein Backup der Docker-Volumes. Die offizielle Doku beschreibt dafür einen eigenen Dokumenten-Exporter.

Meine Einschätzung: Paperless-ngx ist seit Jahren aktiv gepflegt, hat eine riesige Community und ist mit den offiziellen Compose-Dateien in 20 Minuten aufgesetzt — sicherer kann man ein Selfhosting-Projekt kaum wählen. Wenn du nach Passwörtern und Fotos als Nächstes deinen Papierkram in die eigene Hand nehmen willst: genau hiermit.

Wie hältst du es mit dem Papier: Scannst du alles ein und wirfst das Original weg, oder bleibt der Ordner als Sicherheitsnetz im Regal? Und traust du den automatischen Tag-Vorschlägen, oder sortierst du lieber selbst? Schreib's in die Kommentare.

One more thing … wenn du solche Anleitungen regelmäßig gebrauchen kannst: Der Newsletter bringt dir jeden neuen Beitrag direkt ins Postfach. Einmal unten eintragen, fertig — abbestellen geht jederzeit.

Quellen