Deployn

Paperless-ngx: Speicherpfade und Ordnerstruktur einrichten

Paperless-ngx legt Dokumente standardmäßig als 0000001.pdf ab. So bekommst du lesbare Dateinamen und Ordner mit Speicherpfaden, Platzhaltern und document_renamer.

Veröffentlicht am
Paperless-ngx: Speicherpfade und Ordnerstruktur einrichten hero image
Inhalt
Getestet mit
Paperless-ngx 3.4.2Docker 29.9Debian 13
Zuletzt geprüft am

Wenn du in Paperless-ngx ein Dokument hochlädst, speichert die Software es auf der Festplatte als 0000001.pdf. Im Browser siehst du davon nichts, dort heißt das Dokument weiterhin “Stromrechnung September 2026”. Auf dem Server sieht das Ganze anders aus, und das merkst du spätestens bei einem Backup oder wenn du die Dateien ohne Paperless brauchst.

Hier richte ich eine Ordnerstruktur mit lesbaren Dateinamen ein. Dafür gibt es zwei Werkzeuge: einen globalen Standard (PAPERLESS_FILENAME_FORMAT) und Speicherpfade, die du pro Dokumentgruppe festlegst. Ich zeige beides an einem laufenden Paperless-ngx 3.4 mit Beispieldokumenten.

Was Paperless standardmäßig ablegt

Ohne Einstellung landen alle Originale im Ordner media/documents/originals, nummeriert nach der internen ID:

media/documents/originals/0000001.pdf
media/documents/originals/0000003.pdf
media/documents/originals/0000004.pdf
media/documents/archive/0000004.pdf

Der Ordner archive enthält die durchsuchbare PDF/A-Version, die Paperless nach der Texterkennung erzeugt. Beide Ordner liegen im Volume, das du in der compose.yaml als media eingebunden hast.

Das ist kein Fehler. Paperless findet seine Dokumente über die Datenbank und braucht keine schönen Namen. Eine Struktur lohnt sich aber, wenn du:

  • Dateien direkt vom Server oder per Backup einzeln herausholen willst,
  • Paperless später wechseln möchtest und die Ablage dann noch verstehen sollst,
  • Dokumente per Samba oder Nextcloud-Sync zusätzlich als normale Ordner brauchst.

Eine wichtige Regel vorab

Verschiebe oder benenne Dateien im Ordner media nie von Hand. Paperless merkt sich den Dateinamen jedes Dokuments. Ändert sich die Datei auf der Platte, meldet der Dokumenten-Check sie als fehlend.

Alle Änderungen laufen über Paperless selbst. Das Programm benennt die Dateien um, sobald du ein Dokument speicherst oder einen Speicherpfad änderst. Mach vor größeren Umbauten ein Backup, wie es hier beschrieben ist.

Der globale Standard: PAPERLESS_FILENAME_FORMAT

Die einfachste Variante ist eine Vorlage für alle Dokumente. Du trägst sie in der .env neben deiner compose.yaml ein:

Terminalbash
PAPERLESS_FILENAME_FORMAT={{ created_year }}/{{ correspondent }}/{{ title }}

Das ergibt Ordner nach Jahr, darunter Ordner nach Korrespondent, und als Dateiname den Titel. Paperless hängt die Endung selbst an. Damit die Änderung greift, starte den Container neu:

Terminalbash
sudo docker compose up -d paperless

Neue Dokumente nutzen die Vorlage sofort. Bereits vorhandene Dokumente bleiben zunächst, wo sie sind. Für sie startest du den Renamer:

Terminalbash
sudo docker compose exec paperless document_renamer

Das Skript geht alle Dokumente durch und verschiebt jede Datei an den Platz, den die aktuelle Vorlage vorgibt. Bei mir sind das zwölf Dokumente in unter einer Sekunde.

Platzhalter

Du kannst diese Platzhalter in der Vorlage nutzen:

Platzhalter Inhalt
{{ title }} Titel des Dokuments
{{ correspondent }} Name des Korrespondenten, sonst none
{{ document_type }} Dokumenttyp, sonst none
{{ tag_list }} alle Tags, durch Komma getrennt
{{ asn }} Archivseriennummer
{{ created }} Ausstellungsdatum, zum Beispiel 2026-10-28
{{ created_year }} Jahr, {{ created_month }} Monat (01-12), {{ created_day }} Tag
{{ added_year }} Jahr des Hochladens, ebenso added_month und added_day
{{ original_name }} ursprünglicher Dateiname ohne Endung
{{ owner_username }} Besitzer des Dokuments

Fehlt bei einem Dokument zum Beispiel der Korrespondent, steht dort none im Pfad. Mit PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=true lässt Paperless solche Teile weg, samt dem Leerzeichen davor.

Zwei Dokumente mit demselben Pfad bekommen automatisch den Zusatz _01, _02 und so weiter. Zeichen wie / oder : in Titeln ersetzt Paperless durch einen Bindestrich.

Setze nicht {{ tag_list }} in lange Pfade. Betriebssysteme begrenzen die Pfadlänge, und Paperless behält dann den alten Pfad bei.

Speicherpfade: unterschiedliche Regeln pro Dokumentgruppe

Eine einzige Vorlage passt selten für alles. Rechnungen möchtest du nach Monat sortieren, Verträge nach Vertragspartner, Steuerunterlagen nach Jahr. Dafür gibt es Speicherpfade. Jeder Speicherpfad hat einen Namen und eine eigene Vorlage mit denselben Platzhaltern.

Du findest sie unter Attribute → Speicherpfade. Ich habe drei angelegt:

Liste der Speicherpfade Rechnungen, Steuer und Verträge mit Pfadvorlage und Anzahl der Dokumente

Name Vorlage
Rechnungen Rechnungen/{{ created_year }}/{{ created_month }} {{ correspondent }} - {{ title }}
Verträge Verträge/{{ correspondent }}/{{ title }}
Steuer Steuer/{{ created_year }}/{{ title }}

Zum Anlegen klickst du auf Erstellen, vergibst einen Namen und trägst die Vorlage ein. Das Feld Zuweisungsalgorithmus lasse ich auf “Keiner”. Die Zuweisung übernehmen Workflows, dazu unten mehr.

Vorschau im Dialog

Im Bearbeiten-Dialog gibt es ein ausklappbares Feld Vorschau. Du wählst darin ein vorhandenes Dokument aus und siehst sofort, wohin es mit dieser Vorlage wandern würde:

Dialog Speicherpfad bearbeiten mit der Vorschau Rechnungen/2026/10 Nordlicht Energie GmbH - Stromrechnung September 2026.pdf

Nutze die Vorschau, bevor du speicherst. Sobald du speicherst, verschiebt Paperless alle Dokumente mit diesem Speicherpfad.

Einem Dokument einen Speicherpfad geben

Im Dokument selbst gibt es unter Details das Feld Speicherpfad. Dort wählst du den Pfad aus und speicherst. Paperless benennt die Datei sofort um.

Dokumentdetails mit Korrespondent, Dokumenttyp, Speicherpfad Verträge und Tags

Du kannst auch mehrere Dokumente in der Liste markieren und über die Massenbearbeitung einen Speicherpfad setzen.

Speicherpfade automatisch zuweisen

Von Hand zuweisen ist bei hundert Dokumenten mühsam. Ich lasse deshalb die Workflows das erledigen. Die Aktion Zuweisung hat ein Feld für den Speicherpfad. Mein Workflow “Rechnungen automatisch kennzeichnen” setzt dort neben Tag und Dokumenttyp auch den Speicherpfad “Rechnungen”.

Alternativ geht auch der Zuweisungsalgorithmus am Speicherpfad selbst, etwa “Beliebiges Wort” mit Rechnung. Der Workflow ist übersichtlicher, weil Tag, Typ und Pfad an einer Stelle stehen.

Das Ergebnis auf dem Server

Nach der Zuweisung und mit dem globalen Standard {{ created_year }}/Sonstiges/{{ title }} für alles ohne Speicherpfad sieht der Ordner originals bei mir so aus:

2026/Sonstiges/Kontoauszug Oktober 2026.pdf
2026/Sonstiges/Notiz Steuer 2026.pdf
Rechnungen/2026/08 Praxis Dr. Meyer - Arztrechnung August 2026.pdf
Rechnungen/2026/09 Kabelnetz Nord AG - Internet September 2026.pdf
Rechnungen/2026/10 Nordlicht Energie GmbH - Stromrechnung September 2026.pdf
Rechnungen/2026/11 Haustechnik Nord GmbH - Heizungswartung 2026.pdf
Steuer/2026/Einkommensteuerbescheid 2025.pdf
Verträge/Hansa Versicherung AG/Hausratversicherung.pdf
Verträge/Haustechnik Nord GmbH/Wartungsvertrag Heizung.pdf
Verträge/Hausverwaltung Lindenhof/Mietvertrag Wohnung 4B.pdf

Dokumente mit Speicherpfad folgen dessen Vorlage. Alles andere fällt auf den globalen Standard zurück. Der Ordner archive bekommt dieselbe Struktur.

Ordnerstruktur planen

Lege die Struktur an, bevor du Hunderte Dokumente importierst. Ein Umbau ist zwar möglich, aber jede Änderung verschiebt viele Dateien.

  • Sortiere die Ordner nach dem, was sich nie ändert: Dokumenttyp und Jahr.
  • Der Dateiname enthält, was du beim Durchsuchen im Dateimanager brauchst: Datum, Korrespondent, Titel.
  • Verträge laufen über Jahre. Hier ordnest du nach Vertragspartner, nicht nach Jahr.
  • Mehr als drei Ebenen brauchst du selten. Die Volltextsuche in Paperless ersetzt tiefe Ordner.
  • Tags bleiben für alles, was sich mit Ordnern nicht abbilden lässt, etwa “Frist prüfen” oder “Steuer absetzbar”.

Typische Fehler

Dokumente werden als fehlend gemeldet. Du hast Dateien von Hand verschoben. Stelle das Backup wieder her oder führe sudo docker compose exec paperless document_sanity_checker aus, um die Liste der betroffenen Dokumente zu sehen.

Der Pfad enthält none. Ein Platzhalter hat bei diesem Dokument keinen Wert. Weise Korrespondent oder Dokumenttyp zu oder aktiviere PAPERLESS_FILENAME_FORMAT_REMOVE_NONE.

Die Vorlage hat keine Wirkung. Bei einem Fehler in den Platzhaltern fällt Paperless auf 0000001.pdf zurück. Prüfe die Klammern und teste die Vorlage in der Vorschau eines Speicherpfads.

Alte Dokumente bleiben am alten Ort. Nach einer Änderung von PAPERLESS_FILENAME_FORMAT musst du document_renamer einmal ausführen. Änderungen an einem Speicherpfad greifen dagegen automatisch.

FAQ

Häufige Fragen

Wo speichert Paperless-ngx meine Dokumente?

Im Ordner media, den du in der compose.yaml einbindest. Originale liegen unter media/documents/originals, die durchsuchbaren PDF/A-Versionen unter media/documents/archive.

Kann ich Dateien in Paperless-ngx umbenennen?

Ja, aber nur über Paperless. Ändere den Titel oder den Speicherpfad im Dokument oder setze PAPERLESS_FILENAME_FORMAT. Von Hand umbenannte Dateien meldet Paperless als fehlend.

Was macht document_renamer?

Der Befehl docker compose exec paperless document_renamer verschiebt alle vorhandenen Dokumente an den Platz, den die aktuelle Vorlage vorgibt. Du brauchst ihn nach einer Änderung von PAPERLESS_FILENAME_FORMAT.

Was ist der Unterschied zwischen Speicherpfad und PAPERLESS_FILENAME_FORMAT?

PAPERLESS_FILENAME_FORMAT ist die Standardvorlage für alle Dokumente. Ein Speicherpfad ist eine eigene Vorlage für eine Dokumentgruppe und hat Vorrang vor dem Standard.

Verschiebt Paperless Dokumente, wenn ich einen Speicherpfad ändere?

Ja. Paperless prüft den Dateinamen bei jedem Speichern und verschiebt betroffene Dokumente automatisch. Mach vorher ein Backup.