ich bin frisch mit meinem Paperless ngx auf meiner Synology am werkeln, und habe Fragen, zu denen ich mich frage, warum das nicht Einstellungen sind, die das System von Haus aus richtig macht oder zumindest als Einstellung zulässt.
Zunächst mal: ich scanne mit einem brother ADS-4700W in den consume-Ordner.
Dann funktioniert die Erkennung in Paperless schon wirklich gut, aber gerade um 90 Grad gedrehte Dokumente werden weder selbstständig gedreht, noch wenn ich sie im Editor drehe und in die gleiche Datei speichere.
Zudem frage ich mich, ob ich nicht die Benennung meiner Datei automatisieren kann. Im Moment heißt sie wie der Scanner sie liefert, was maximal unbrauchbar ist. Könnte da nicht der Betreff des Schreibens vielleicht erkannt werden und schonmal vorgeschlagen (so dass selbst wenn er nur in 50% der Fälle stimmen würde, ich zumindest 50% weniger ändern müsste)?
Als drittes ärgert es mich derzeit, dass ich das eine Benutzerdefinierte Feld, nämlich die Versicherungsnummer, jedes mal händisch dazu einblenden muss. Ich sehe keine Option, dass das einfach immer da ist, und wenn es leer bliebe, DANN erst verschwände.
Vielleicht gibt es für meine bisherigen Probleme ja schon Lösungen.
Außerdem bekomme ich beim Backup über Hyperbackup zwar alle möglichen Apps zum Sichern angeboten, aber nicht den Container Manager. Ist das so richtig? Ich sichere jetzt immer nur den kompletten docker-Ordner auf ein externes NAS, aber reicht das zum Wiederherstellen? Es kommt mir so vor, als fehlt mir hier was.
willkommen in der Paperless-ngx Welt! Das sind absolut verständliche Fragen für den Einstieg. Viele der Dinge, die du ansprichst, sind tatsächlich möglich oder lösbar – teils durch versteckte Einstellungen, teils durch smarte Erweiterungen.
Hier sind Lösungsansätze zu deinen vier Punkten (und wie wir das extrem weit automatisiert haben):
**Zu 1: Die 90-Grad Drehung**
Paperless verfügt von Haus aus über eine Funktion zur automatischen Drehung von Dokumenten anhand der Textausrichtung während der OCR-Phase. Das ist standardmäßig oft deaktiviert, um Ressourcen zu sparen.
Du musst in deiner `docker-compose.env` (bzw. in deinen Container-Umgebungsvariablen) folgenden Wert eintragen:
`PAPERLESS_OCR_ROTATE_PAGES=true`
(Optional auch noch `PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD=1.5`, um die Sensibilität anzupassen). Danach startet der OCR-Prozess bei falsch gedrehten Scans von deinem Brother ADS-4700W automatisch die Korrektur. Wichtig: Wenn du ein Dokument stattdessen manuell im Editor drehst, musst du es danach einmal „Neu verarbeiten“ (über die Dokumentenansicht), damit auch die Vorschau korrekt neu gerendert wird.
Hier sollten wir zunächst klären: Meinst du den Dateinamen auf der Festplatte oder den Titel des Dokuments in Paperless? Das sind zwei unterschiedliche Dinge.
Wenn es dir nur um den Dateinamen geht: Das macht Paperless über sogenannte **Speicherpfade** (Storage Paths). Dort kannst du Platzhalter wie `{{ created_year }}/{{ correspondent }}_{{ title }}` hinterlegen, und Paperless benennt die physischen Dateien automatisch passend um.
Was den Titel betrifft: Paperless lernt zwar mit der Zeit über die „Passenden Algorithmen“ (Zuweisungen), aber wirklich den semantischen *Betreff* eines Schreibens aus dem Text zu extrahieren, kann Paperless nativ ohne vorgegebene Regeln nicht.
Um dies zuverlässig zu bewerkstelligen, wirst du meist um eine KI-Lösung nicht herumkommen (wie z.B. Paperless-AI, Paperless-GPT oder mein Setup). **Unsere Lösung:** Wir betreiben eine **Paperless-ngx AI Dual-System Edition**.
Da eine Synology NAS für echte KI-Modelle zu schwach ist, belassen wir das Haupt-Paperless und die Datenbank auf der NAS. Die rechenintensiven Aufgaben (intelligente Zuweisung, OCR von schwer lesbaren Dingen, Dublettenprüfung und Metadaten-Extraktion) haben wir auf einen separaten, leistungsstarken Windows-PC ausgelagert.
Unser Setup:
- **Intel Core i7 Ultra**
- **32 GB DDR5-RAM**
- **Nvidia RTX 5060 Ti (16 GB VRAM)** für GPU-Beschleunigung
- **Windows 11 Pro mit WSL2 (Ubuntu 24.04)**
Über ein Python-Skript (unser `ai_watchdog` und via API/Ollama) schaut eine echte KI (z.B. Qwen2.5-VL) auf das frisch gescannte Dokument in Paperless, *liest* den kompletten Text, extrahiert den perfekten Titel (oft exakt den Betreff des Briefes!), das Datum, den Korrespondenten und sogar passende Tags. Danach schreibt die KI diese Daten vollautomatisch über die REST-API in Paperless zurück. Das reduziert die Nacharbeit nicht um 50%, sondern locker um 95%! Wenn du technikaffin bist, wäre so eine Auslagerung via API/LLM vielleicht der nächste logische Schritt für dich.
Das ständige händische Einblenden musst du nicht machen! Paperless nutzt dafür das Konzept der **Dokumententypen**.
1. Gehe unter *Verwalten* auf *Dokumententypen* und lege z. B. den Typ „Versicherungsschreiben“ an.
2. Gehe in die Bearbeitung dieses Dokumententyps und weise unten im Bereich „Benutzerdefinierte Felder“ dein Feld „Versicherungsnummer“ zu.
*Der Trick:* Sobald nun einem Dokument der Typ „Versicherungsschreiben“ zugewiesen wird (was Paperless über den Auto-Lern-Algorithmus nach ein paar Beispielen auch selbstständig macht), ploppt das Feld „Versicherungsnummer“ automatisch auf. Wenn der Typ nicht zutrifft, bleibt das Feld unsichtbar. So bleibt die Oberfläche immer schön aufgeräumt (KI-Lösungen können dann sogar die Versicherungsnummern automatisch in die benutzerdefinierten Felder eintragen).
**Zu 4: Das Backup via Hyper Backup**
Dein Ansatz, den kompletten `docker`-Ordner wegzusichern, ist gut, da dort dein `media`-Ordner (mit allen deinen echten PDFs und Archiven) liegt. **Aber große Vorsicht bei der Datenbank!**
Du nutzt `postgres:17.9`. Wenn Hyper Backup die rohen Datenbank-Dateien von Postgres sichert, während der Container läuft und Schreibvorgänge stattfinden, ist das Backup zu 90% korrupt und unbrauchbar. Der Container Manager selbst muss auch nicht zwingend gesichert werden, wichtig sind deine Daten.
*Best Practice zur Wiederherstellung:* Lass entweder regelmäßig per Cronjob über die Synology oder den Aufgabenplaner einen sauberen SQL-Dump (Datensicherung) deiner Postgres-Datenbank erstellen (`pg_dump`) und speichere diesen Dump in einem Ordner, den Hyper Backup sichert.
Alternativ kannst du den integrierten Document-Exporter von Paperless-ngx nutzen (`document_exporter`), der alle PFDs *inklusive* einer sauberen manifest.json (in der alle Tags, Metadaten etc. stehen) in einen Export-Ordner schiebt. Wenn du diesen Ordner mit Hyper Backup sicherst, bist du zu 100% auf der sicheren Seite.
*(Falls du auf unser Dual-System-Setup umsteigst: Wir haben dort eine Backup-Funktion direkt ins Dashboard eingebaut. Ein Klick, und das System fährt kurz die Container runter, zieht automatisch einen sauberen Postgres-Dump über SSH von der Synology und packt alles zusammen mit dem `media`-Ordner, der Vektordatenbank und allen Skripten in ein komprimiertes `tar.gz`-Archiv. Das ist die absolute „Rundum-sorglos-Lösung“.)*
wow – vielen Dank für deine so ausführliche Antwort.
Die 90-Grad-Drehung werde ich mal versuchen. Vielen Dank auch für den Hinweis auf das neu berechnen nach manueller Drehung. Damit hatte ich nicht gerechnet und werde das auch mal versuchen bei den schon falschen Daten.
Ein Dual-System ist mir derzeit sicherlich zu groß, daher werde ich diesen Weg noch nicht gehen. Bei der Benennung meinte ich nicht die Speicherpfade, da habe ich erstmal eine für mich schlüssige Fassung gefunden, und schon herausgefunden, dass wenn ich die ändere, sich das auch für bestehende gut und einfach mit ändern würde. Das wird sich im laufenden Betrieb für mich zeigen, wie fein granuliert ich da benennen muss oder möchte.
Bei den Benutzerdefinierten Feldern scheinst du eine andere Version als ich zu haben. Wenn ich einen Dokumententyp anlege, habe ich nur Name, Zuweisungsalgorythmus und Berechtigung. Nichts weiter. Auch wenn ich einen bestehenden bearbeite habe ich keine weiteren Felder. Denn ansonsten härt sich das genau an wie das, was ich da eigentlich gerne hätte.
Bzgl. der Sicherung bin ich schon mal beruhigt, dass ich da kein grundsätzliches Problem habe, dass sich der Container Manager überhaupt nicht zeigt im Backup. Cronjob und SQL-Dump hört sich wie die für mich sinnvolle und greifbare Lösung an, ggf. schaue ich mir auch den exporter an, und ob ich den automatisieren kann.
Ein neues Problem ist für mich nun (daran dachte ich gar nicht mehr, es zu nennen, es taucht aber gerade wieder auf), dass wenn ich den Container herunterfahren möchte, um zB wie jetzt am yaml-File was zu ändern, geht zwar das Fenster mit dem schwarzen Kasten auf im DSM, aber darin erscheint nichts, und der Container wird auch nicht heruntergefahren. Ich kann das nur mit dem Neustart der Synology beheben, und danach scheint das dann genau ein mal zu klappen, danach lässt sich der Container nicht mehr herunterfahren.
Unsicher bin ich auch noch beim Einsatz von Dokumententypen und den Tags. Gibt es da irgendwelche Best Practices, die sich für einen Haushalt als sehr hilfreich erwiesen haben? Aktuell habe ich manche Infos sowohl im Dokumententyp als auch im Tag, weil ich noch nicht abschätzen kann, wie ich später am schnellsten was finde, die Suche einschränken kann etc.
Die Bindung der Dokumententypen mit den benutzerdefinierten Feldern läuft über die “Arbeitsabläufe”:
Name: Zuweisung Versicherungsnummer
Auslöser:Dokument hinzugefügt und Dokument aktualisiert (beides anhaken)
Filter: Wähle hier „Dokumententyp ist“ → Versicherungsschreiben
Aktion: Setze einen Haken bei „Benutzerdefiniertes Feld zuweisen“ und wähle dort dein Feld Versicherungsnummer aus. Speichern.
Ich nehme an du gehst über den Container-Manager? Ich hatte diese Probleme (hängende Container) immer, wenn ich versucht habe einen auf der Konsole gestarteten Container über den Manager herunter zu fahren.
Die von mir präferierte Lösung
Der SSH-Quickfix (ohne Reboot)
SSH aktivieren: Falls noch nicht geschehen, unter Systemsteuerung > Terminal & SNMP > SSH-Dienst aktivieren.
Einloggen: Mit einem Tool wie PuTTY (Windows) oder dem Terminal (Mac/Linux) verbinden: ssh deinbenutzer@deine-nas-ip.
Befehl ausführen:
Lass dir die Container anzeigen: sudo docker ps
Stoppe den störrischen Container direkt: sudo docker stop <Container-ID oder Name>
Falls er immer noch nicht reagiert, die Brechstange: sudo docker kill <Container-ID oder Name>
Die Sache mit der Zuweisung von Suchkriterien über TAG oder Dokumententypen ist reine Geschmackssache. Ich zum Beispiel habe über die Pfadzuweisung (Dokumententyp) dann halt alle Verträge oder Rechnungen usw. in dem jeweiligen Ordner. Über TAG könnte man erst Filtern (alle Rechnungen) und dann den Pfad zuweisen.
Kurzer Hinweis zum Backup: Je nach Struktur deines Verzeichnisses (wie bei Stefan inkl. DB im Dockerpfad) kannst du auch den kompletten Ordnerpfad wegsichern hast aber oft Probleme mit den Rechten für den PGData-Ordner (SQL-DB). Wie schon oben beschrieben erst alles stoppen bei bedarf Rechte anpassen (CHMOD auf den .docker/paperless-ngx/) und dann diesen Ordner inkl. DB sichern.