Was paperless-ngx ist
paperless-ngx ist ein quelloffenes Dokumentenmanagement-System, das du auf einem eigenen Rechner betreibst. Es nimmt eingescannte Dokumente entgegen, jagt sie durch eine Texterkennung, versucht Absender, Dokumenttyp und Schlagworte automatisch zuzuordnen, und stellt dir eine durchsuchbare Weboberfläche darüber bereit. Es ist der Nachfolger des nicht mehr gepflegten „Paperless“ beziehungsweise „paperless-ng“ und wird von einer aktiven Gemeinschaft entwickelt.
Das System besteht aus mehreren Bausteinen, die gemeinsam laufen: der Webserver mit der Oberfläche, eine Datenbank, ein Zwischenspeicher (Redis) für die Aufgabenverwaltung und — wenn du auch Office-Dateien einlesen willst — zusätzlich Tika und Gotenberg. Genau deshalb wird es als Container-Verbund ausgeliefert: Docker startet alle Teile in der richtigen Reihenfolge.
Die Software selbst kostet nichts. Was sie kostet, sind Hardware, Strom und deine Zeit für den Betrieb — was das konkret bedeutet, rechnet unser Ratgeber zum DMS ohne Server vor.
Was du brauchst
- Einen Rechner, der durchläuft. Ein NAS, ein Mini-PC, ein Raspberry Pi oder ein gemieteter virtueller Server. Windows scheidet für eine Installation ohne Docker aus — paperless-ngx läuft direkt nur auf Linux.
- Docker und Docker Compose. Auf einem NAS heißt das je nach Hersteller Container Manager (Synology) oder Container Station (QNAP).
- Arbeitsspeicher: mindestens 2 GB, angenehm ab 4 GB. Im Leerlauf braucht der Verbund einige hundert Megabyte; bei der Texterkennung steigt der Bedarf deutlich und ein Prozessorkern wird voll ausgelastet.
- Speicherplatz für deine Dokumente plus etwa den gleichen Betrag noch einmal, wenn du die durchsuchbaren Archivfassungen erzeugen lässt.
- Grundkenntnisse auf der Kommandozeile. Du solltest dich in einer SSH-Sitzung zurechtfinden, eine Textdatei bearbeiten und Dateirechte nachschlagen können.
Welche Datenbank? Für neue Installationen empfiehlt das Projekt PostgreSQL. SQLite spart Arbeitsspeicher und ist auf schwacher Hardware die bessere Wahl. MariaDB gibt es ebenfalls. Der Wechsel im Nachhinein ist möglich, aber unangenehm — überleg es dir also einmal richtig.
Weg 1: Das Installationsskript (der schnellste Weg)
Das Projekt stellt ein interaktives Skript bereit. Es stellt ein paar Fragen, legt danach die nötigen Dateien an, lädt die Abbilder herunter, startet die Container und legt dein Administratorkonto an. Für die meisten Erstinstallationen ist das der richtige Weg.
bash -c "$(curl --location --silent --show-error \
https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Das Skript fragt unter anderem nach dem Port, den Verzeichnissen für Dokumente und Einwurf, der Datenbank, der OCR-Sprache und deinen Zugangsdaten. Wenn dir unwohl dabei ist, ein Skript direkt aus dem Netz in eine Shell zu leiten: sieh es dir vorher an — das empfiehlt das Projekt selbst.
Danach erreichst du paperless-ngx unter http://127.0.0.1:8000 beziehungsweise unter der IP-Adresse deines Servers und dem gewählten Port.
Das Skript braucht dort GNU sed (als sed aufrufbar) und wget. Beides lässt sich über Homebrew nachinstallieren. Als dauerhafter Server ist ein Mac für paperless-ngx allerdings ungewöhnlich — üblicher ist ein Linux-Rechner oder ein NAS.
Weg 2: Docker Compose von Hand
Wer genau wissen will, was läuft — und wer später Anpassungen vornehmen möchte —, richtet den Verbund selbst ein. Das ist nicht schwer, es sind fünf Schritte.
-
Die passende Compose-Datei herunterladen
Im Projektverzeichnis
docker/composeliegen mehrere Varianten. Lade genau eine davon und speichere sie in einem eigenen Ordner alsdocker-compose.yml. Dazu gehören außerdem die Dateiendocker-compose.envund.env.← Seitlich scrollen — erste Spalte bleibt stehen →
Welche Compose-Variante? Datei Wofür docker-compose.postgres.yml Die Empfehlung für neue Installationen. docker-compose.postgres-tika.yml Wie oben, zusätzlich mit Unterstützung für Office-Dokumente. docker-compose.sqlite.yml Sparsam — die Wahl für Raspberry Pi und schwache NAS. docker-compose.sqlite-tika.yml Sparsam, mit Office-Unterstützung. docker-compose.mariadb.yml
docker-compose.mariadb-tika.ymlWenn du MariaDB ohnehin schon betreibst. docker-compose.portainer.yml Für die Einrichtung über Portainer — auf NAS-Systemen verbreitet. „Tika“ oder nicht? Die Varianten mit
-tikastarten zwei zusätzliche Container, die Word-, Excel- und ähnliche Dateien lesbar machen. Sie kosten spürbar Arbeitsspeicher. Wenn du fast nur PDFs und Scans hast, lass sie weg. -
Die Ordner festlegen
In der
docker-compose.ymlstehen die Einhängepunkte für den Einwurfordner (consume), die Dokumente (media) und die Daten. Ersetze den Teil vor dem Doppelpunkt durch einen echten Pfad auf deinem Server:docker-compose.ymlyaml# vorher - ./consume:/usr/src/paperless/consume # nachher — dein eigener Ordner, z. B. eine NAS-Freigabe - /volume1/dokumente/einwurf:/usr/src/paperless/consumeWenn Port 8000 bei dir schon belegt ist, ändere ihn hier ebenfalls — links steht der Port auf dem Server, rechts der im Container:
docker-compose.ymlyamlports: - 8010:8000 -
Die Konfiguration anpassen
Öffne
docker-compose.envund setze mindestens die vier Werte aus dem nächsten Abschnitt — vor allem den geheimen Schlüssel, die OCR-Sprache und die Benutzerkennung. -
Abbilder laden
im Ordner mit der docker-compose.ymlbashdocker compose pull -
Starten
im Ordner mit der docker-compose.ymlbashdocker compose up -dDer erste Start dauert einen Moment, weil die Datenbank angelegt wird. Danach rufst du
http://<server-ip>:8000auf — beim ersten Aufruf wirst du aufgefordert, dein Administratorkonto anzulegen.Läuft etwas nicht, zeigt
docker compose logs -fmit, was die Container melden.
Die wichtigsten Einstellungen
paperless-ngx kennt sehr viele Konfigurationswerte. Diese hier entscheiden darüber, ob die Installation im Alltag taugt:
# Pflicht: ein eigener geheimer Schlüssel — niemals den Standardwert lassen.
# Erzeugen mit: python3 -c "import secrets; print(secrets.token_urlsafe(64))"
PAPERLESS_SECRET_KEY=hier-deinen-erzeugten-schluessel-einsetzen
# Die Sprache, in der deine Dokumente verfasst sind. Für deutsche Post: deu.
# Mehrsprachig geht auch: deu+eng
PAPERLESS_OCR_LANGUAGE=deu
# Ohne das stimmen alle Zeitangaben und geplanten Aufgaben nicht.
PAPERLESS_TIME_ZONE=Europe/Berlin
# Damit Container und Server dieselben Dateirechte verwenden.
# Werte ermitteln mit: id -u und id -g
USERMAP_UID=1000
USERMAP_GID=1000
# Nur nötig, wenn paperless über einen Reverse Proxy oder eine eigene Adresse
# erreichbar sein soll. Ohne diesen Wert scheitert die Anmeldung an der
# CSRF-Prüfung — einer der häufigsten Fehler überhaupt.
PAPERLESS_URL=https://paperless.meine-domain.de
Zur OCR-Sprache: Der Container bringt Englisch, Deutsch, Italienisch, Spanisch und Französisch mit. Brauchst du eine weitere Sprache, wird sie über PAPERLESS_OCR_LANGUAGES zusätzlich installiert — das ist ein anderer Wert als PAPERLESS_OCR_LANGUAGE, was regelmäßig verwechselt wird.
Auf dem NAS
Auf einem NAS gelten dieselben Schritte, nur läuft die Bedienung über die Container-Oberfläche des Herstellers: Container Manager bei Synology (dort als Compose-Projekt), Container Station bei QNAP, die Docker-App bei UGREEN, oder Portainer, das auf vielen Systemen nachrüstbar ist.
Drei Punkte, die auf einem NAS anders sind als auf einem Linux-Server:
- Die Benutzerkennung.
USERMAP_UIDundUSERMAP_GIDmüssen zu dem NAS-Benutzer passen, dem die Freigabe gehört — sonst kann der Container den Einwurfordner nicht lesen oder du kommst über die Netzwerkfreigabe nicht mehr an die importierten Dateien. - Der Arbeitsspeicher. Das NAS-Betriebssystem, die Indizierung der Fotos und die Freigabedienste belegen bereits einen Teil. Bleibt zu wenig übrig, wird der Container mitten in der Texterkennung beendet.
- Die Platten schlafen nicht mehr. Der Verbund schreibt laufend — der Ruhezustand entfällt praktisch, der Stromverbrauch steigt.
Raspberry Pi und schwache Hardware
paperless-ngx läuft auf einem Raspberry Pi. Es ist dann nicht schnell, aber benutzbar — vorausgesetzt, du drehst ein paar Stellschrauben zurück. Diese Empfehlungen stammen aus der offiziellen Dokumentation:
- SQLite statt PostgreSQL — spart einen kompletten Datenbankdienst.
PAPERLESS_WEBSERVER_WORKERS=1— ein Arbeitsprozess statt mehrerer.PAPERLESS_TASK_WORKERSundPAPERLESS_THREADS_PER_WORKERherunterdrehen, damit noch Rechenleistung für alles andere bleibt.PAPERLESS_ENABLE_NLTK=false— schaltet die aufwendigere Sprachverarbeitung ab.PAPERLESS_OCR_PAGES=1— erkennt nur die erste Seite. Für das Wiederfinden reicht das meist.PAPERLESS_OCR_CLEAN=none— schnellere Erkennung bei leicht schlechterem Ergebnis.PAPERLESS_ARCHIVE_FILE_GENERATION=never— spart Platz und Rechenzeit, dafür entfällt die PDF/A-Ansicht im Browser.- Wenn dein Scanner selbst OCR beherrscht: lass ihn das machen.
PAPERLESS_OCR_MODEbleibt aufauto, dann überspringt paperless bereits erkannte Seiten.
Die ersten Schritte nach der Installation
-
Stammdaten anlegen
Lege zuerst Korrespondenten (Absender), Dokumenttypen und Tags an, die zu deinem Papierkram passen — Stadtwerke, Krankenkasse, Versicherung, Rechnung, Vertrag, Steuer. Die automatische Zuordnung braucht diese Begriffe als Grundlage.
-
Erste Dokumente einwerfen
Alles, was du in den Einwurfordner legst, wird automatisch eingelesen. Alternativ ziehst du Dateien direkt in die Weboberfläche.
-
Zuordnung korrigieren — und zwar geduldig
paperless-ngx lernt aus deinen Korrekturen. Die ersten Dokumente ordnest du überwiegend selbst zu; ab einigen Dutzend pro Kategorie wird die automatische Erkennung brauchbar. Wer nach zehn Dokumenten aufgibt, hat den Lerneffekt nie gesehen.
-
Ein normales Benutzerkonto anlegen
Das Projekt empfiehlt, für den Alltag ein Konto ohne Administratorrechte zu verwenden — der Superuser sieht und darf alles.
-
Das Backup einrichten — sofort, nicht später
Ein Archiv ohne Sicherung ist ein Risiko, kein Archiv. Wie das geht, steht gleich im nächsten Abschnitt.
Betrieb: Updates, Backup, Zugriff
Updates
docker compose pull
docker compose up -d
Vor jedem größeren Versionssprung lohnt ein Blick in die Veröffentlichungshinweise des Projekts — und ein Backup davor ist Pflicht, nicht Kür.
Backup
Ein Dateisystem-Schnappschuss allein reicht nicht: Er erwischt die Datenbank möglicherweise mitten im Schreiben. paperless-ngx bringt deshalb einen eigenen Export mit, der Dokumente und Metadaten in eine wiederherstellbare Form schreibt:
docker compose exec webserver document_exporter ../export
Dieses Exportverzeichnis sicherst du dann wie jeden anderen wichtigen Ordner — inklusive einer Kopie außer Haus. Und: Ein Backup, das nie zurückgespielt wurde, ist eine Vermutung. Probiere die Wiederherstellung einmal aus, solange nichts kaputt ist.
Zugriff von unterwegs
Öffne keinen Port am Router auf die Weboberfläche. Nutze stattdessen ein VPN in dein Heimnetz, ein Overlay-Netz wie Tailscale oder ZeroTier, oder einen Reverse Proxy mit vorgeschalteter Anmeldung und Zwei-Faktor-Schutz. Ein aus dem Internet erreichbares Dokumentenarchiv ist ein lohnendes Ziel.
Typische Fehler und ihre Ursache
← Seitlich scrollen — erste Spalte bleibt stehen →
| Was du siehst | Woran es meist liegt |
|---|---|
| Der Einwurfordner wird ignoriert | Dateirechte. USERMAP_UID und USERMAP_GID passen nicht zum Besitzer des Ordners. Auf dem Server mit id -u und id -g nachsehen und die Werte eintragen. |
| Anmeldung schlägt fehl, „CSRF“ in der Meldung | PAPERLESS_URL ist nicht gesetzt, obwohl du über einen Reverse Proxy oder eine eigene Domain zugreifst. Trage die Adresse ein, unter der du die Oberfläche wirklich aufrufst. |
| Container startet neu, Import bleibt hängen | Arbeitsspeicher. Die Texterkennung wird vom System beendet. RAM aufrüsten, oder auf SQLite wechseln und die Arbeitsprozesse reduzieren. |
| Port ist belegt | Etwas anderes hört schon auf 8000 — auf einem NAS gerne ein Hersteller-Dienst. In der Compose-Datei auf einen freien Port ändern. |
| Texterkennung liefert Unsinn | PAPERLESS_OCR_LANGUAGE steht noch auf eng. Für deutsche Post gehört dort deu hin. |
| Alles ist quälend langsam | ARM-Prozessor oder zu wenig Kerne. Die Einstellungen aus dem Abschnitt zu schwacher Hardware helfen — Wunder bewirken sie nicht. |
| Office-Dateien werden nicht gelesen | Du nutzt eine Compose-Variante ohne -tika. Für Word, Excel & Co. braucht es die Zusatzcontainer. |
| Nach einem Update ist die Datenbank kaputt | Ein Versionssprung wurde übersprungen oder das Backup fehlte. Deshalb: erst exportieren, dann aktualisieren. |
Wenn dir das alles zu viel ist
Wir haben diese Anleitung geschrieben, damit sie funktioniert — paperless-ngx ist ein gutes Stück Software, und wer sie betreiben will, soll das gut hinbekommen.
Aber es gibt einen Punkt, an dem viele hängenbleiben, und der liegt nicht bei der Installation, sondern danach. Die Installation ist ein Abend. Der Betrieb ist dauerhaft: Container aktualisieren, Backups prüfen, Sicherheitsmeldungen verfolgen, den Fernzugriff abdichten — und dabei sicherstellen, dass das Familienarchiv nicht an der einen Person hängt, die als Einzige versteht, wie es läuft.
Wenn du diese Anleitung liest und denkst „eigentlich will ich nur, dass mein Papierkram sortiert ist“ — dann ist PaperPeace vielleicht das Richtige für dich.
- Kein Server, keine Container, keine Updates. Eine App auf iPhone, iPad und Mac. Installieren, Speicherort wählen, fertig.
- Erkennung auf dem Gerät. Texterkennung, Dokumenttyp, Korrespondent und Tags werden lokal ermittelt. Nichts wird zur Analyse hochgeladen — auch nicht zu uns.
- Du bestimmst den Speicherort. Lokal, iCloud Drive, ein geteilter Ordner für die Familie, Dropbox, Google Drive, OneDrive oder dein NAS per SMB.
- Offline nutzbar. Die Bibliothek liegt auf dem Gerät — kein Netz heißt nicht: kein Dokument.
- Offenes Format. PDFs bleiben PDFs, die Metadaten liegen als lesbares Markdown daneben. Ein Backup ist eine Ordner-Sicherung, ein Wechsel ist ein Kopiervorgang.
Ehrlich bleibt: PaperPeace gibt es nur für Apple-Geräte, und Freigabe-Workflows oder revisionssichere Archivierung nach GoBD bietet es nicht. Wenn Windows- und Android-Geräte gleichberechtigt mitmachen sollen, ist paperless-ngx die bessere Wahl — dann hilft dir die Anleitung oben weiter.
Von paperless-ngx zu PaperPeace umziehen
Wenn du paperless-ngx bereits betreibst und wechseln möchtest, musst du nicht bei null anfangen. PaperPeace holt deine Dokumente direkt vom laufenden Server — samt der Ordnungsarbeit, die du bereits hineingesteckt hast.
-
In paperless-ngx einen API-Token erzeugen
Melde dich an der Weboberfläche an, klicke oben rechts auf dein Profilsymbol und wähle „Mein Profil“. Unter API Auth Token erzeugst du über die Schaltfläche daneben einen Token und kopierst ihn.
-
Server-Adresse und Token in PaperPeace eintragen
Du brauchst die Adresse, unter der du paperless erreichst (etwa
http://192.168.1.50:8000), und den eben erzeugten Token. PaperPeace prüft die Verbindung, bevor es loslegt. -
Den Import laufen lassen
PaperPeace lädt jedes Dokument herunter und legt es in deiner Bibliothek ab. Bei großen Archiven dauert das seine Zeit — der Lauf lässt sich unterbrechen und später fortsetzen, ohne dass etwas doppelt landet.
Was dabei übernommen wird
- Das Dokument selbst — bevorzugt die durchsuchbare Archivfassung, sonst die Originaldatei.
- Titel, Korrespondent, Dokumenttyp und Tags — die Tags einschließlich ihrer Farben.
- Beide Daten: das Datum auf dem Dokument und der Zeitpunkt, zu dem du es damals abgelegt hast. Deine Ablage-Historie bleibt damit erhalten und wird nicht auf den Importzeitpunkt plattgedrückt.
- Notizen und eigene Felder (Custom Fields) sowie die Archiv-Seriennummer.
Was nicht übernommen wird
- Benutzerkonten, Gruppen und Berechtigungen — PaperPeace kennt kein Rechtesystem im Server-Sinn.
- Workflows, Verarbeitungsregeln, gespeicherte Ansichten und Speicherpfade.
- Mail-Regeln. PaperPeace hat einen eigenen E-Mail-Import, den du neu einrichtest.
Der Import ist eine Einbahnstraße: PaperPeace liest von deinem paperless-Server und schreibt niemals dorthin zurück. Es gibt keinen laufenden Abgleich zwischen beiden Systemen. Dein paperless-ngx bleibt vollständig unangetastet und läuft weiter — du kannst es parallel behalten, solange du willst, und erst abschalten, wenn du dir sicher bist.
Unabhängig davon lassen sich auch ganze Ordner samt Unterordnern und ZIP-Archive importieren — damit ist der Umzug aus so gut wie jedem anderen System gangbar, auch wenn es keine direkte Anbindung gibt.
Häufige Fragen
Kann ich paperless-ngx unter Windows installieren?
Direkt nicht — paperless-ngx läuft nur auf Linux. Über Docker Desktop beziehungsweise WSL2 lässt es sich auf einem Windows-Rechner betreiben, das ist für einen Dauerbetrieb aber unüblich. Verbreiteter sind ein NAS, ein Mini-PC mit Linux, ein Raspberry Pi oder ein gemieteter virtueller Server.
Wie viel Arbeitsspeicher braucht paperless-ngx wirklich?
Zwei Gigabyte sind die Untergrenze, vier sind angenehm. Im Leerlauf belegt der Verbund aus Webserver, Datenbank und Redis meist einige hundert Megabyte; kommen Tika und Gotenberg für Office-Dateien dazu, steigt das deutlich. Während der Texterkennung braucht das System spürbar mehr und lastet einen Prozessorkern voll aus.
Gibt es eine offizielle App für iPhone oder Android?
Die Bedienung läuft über die Weboberfläche, die sich als Web-App auf dem Startbildschirm ablegen lässt. Daneben gibt es Anwendungen aus der Gemeinschaft. Eine offizielle native App des Projekts für iOS oder Android ist nicht Teil des Umfangs.
Kann ich mein paperless-Archiv später wieder herausholen?
Ja — dafür gibt es document_exporter. Er schreibt Dokumente und Metadaten in eine Form, die sich wiederherstellen oder anderweitig weiterverarbeiten lässt. Das ist auch der richtige Weg für ein echtes Backup; ein reiner Dateisystem-Schnappschuss erwischt die Datenbank unter Umständen in einem inkonsistenten Zustand.
Bleibt mein paperless-ngx nutzbar, wenn ich zu PaperPeace umziehe?
Ja. Der Import liest nur — er ändert und löscht auf deinem Server nichts. Du kannst beide Systeme parallel laufen lassen, in Ruhe vergleichen und paperless-ngx erst abschalten, wenn du dir sicher bist. Ein späterer erneuter Import holt dann nur die Dokumente, die inzwischen dazugekommen sind.
Was ist der Unterschied zwischen Paperless, paperless-ng und paperless-ngx?
Es ist dieselbe Linie über drei Stationen. Das ursprüngliche „Paperless“ wird nicht mehr gepflegt, ebenso wenig der Nachfolger „paperless-ng“. Aktiv weiterentwickelt wird heute allein paperless-ngx — das ist die Version, die du installieren solltest. Anleitungen zu den beiden älteren Namen sind mit Vorsicht zu genießen.
Dokumente ordnen, ohne einen Server zu betreiben
PaperPeace läuft auf iPhone, iPad und Mac — Erkennung auf dem Gerät, Speicherort deiner Wahl, offenes Dateiformat. Und wenn du schon paperless-ngx hast, ziehst du deine Dokumente samt Tags und Korrespondenten mit um.
Per TestFlight · iPhone · iPad · Mac · jederzeit abbestellbar