[[Uebersicht|← Zurück zur Homepage]] # PaperSafe – Zuleitung für den automatischen Import > **Rolle dieser Note:** Sie beschreibt die **gebaute Technik** – wie Dateien vom PC bis in Paperless gelangen. Sie ist Ist-Dokumentation. > > **Das Regelwerk – Korrespondenten, Tags, Workflows, E-Mail – und alle offenen Punkte stehen in [[08-Feinkonzept-Regelwerk]].** Dort wird entschieden, *was* mit den Dokumenten geschieht; hier steht, *wie* sie ankommen. ## So benutzt du es Ordner im Windows-Explorer nach `\\dsobe2023\papersafeconsume` kopieren. Innerhalb einer Minute zieht Paperless sie ein, vergibt die Ordnernamen als Schlagwörter und räumt die Dateien weg. Der leere Ordner bleibt stehen. **Für den Erstbestand Kopien verwenden** – Paperless *verschiebt* die Dateien, sie sind danach auf der Freigabe weg. ## Der Weg der Datei ``` Windows-Explorer └─ \\dsobe2023\papersafeconsume DSM-Freigabe, Papierkorb deaktiviert └─ /mnt/papersafe-consume Proxmox-Host, CIFS, uid=101000 └─ /opt/paperless/consume-net CT 110, mp1, backup=0 └─ /usr/src/paperless/consume Docker ``` Der Mount trägt `backup=0`: Eine Netzfreigabe hat in `vzdump` nichts verloren. ## Ordnernamen werden zu Schlagwörtern Der wichtigste Mechanismus. Da deine Unterlagen bereits in getrennten Ordnern liegen, entsteht die Schlagwortstruktur ohne einen Handgriff. ``` consume/ Allianz/ 2023-Police.pdf -> Tag: Allianz Fahrzeug/ Versicherung/ police.pdf -> Tags: Fahrzeug, Versicherung ``` ## Gesetzte Variablen | Variable | Wert | Wirkung | | ---------------------------------------- | ------ | ---------------------------------------------------------- | | `PAPERLESS_CONSUMER_RECURSIVE` | `true` | Unterordner werden mitgelesen | | `PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS` | `true` | Ordnernamen werden zu Tags, fehlende Tags werden angelegt | | `PAPERLESS_CONSUMER_POLLING` | `60` | Prüfintervall in Sekunden. **Pflicht bei Netzfreigabe**, siehe unten. Standard `0` = aus, dann `inotify` | | `PAPERLESS_CONSUMER_POLLING_DELAY` | `5` | Sekunden zwischen zwei Stillstandsprüfungen einer gefundenen Datei | | `PAPERLESS_CONSUMER_POLLING_RETRY_COUNT` | `10` | Höchstzahl dieser Prüfungen – also bis zu 50 s Geduld bei großen Dateien | | `PAPERLESS_CONSUMER_DELETE_DUPLICATES` | `true` | Dubletten beim Massenimport werden verworfen | | `PAPERLESS_FILENAME_FORMAT_REMOVE_NONE` | `true` | Leere Felder fallen aus dem Ablagepfad, kein `2026/none/…` | ## Gelöste Fallstricke | Problem | Lösung | |---|---| | **`inotify` feuert über CIFS/SMB nicht.** Der Host erfährt nicht, dass auf der Synology eine Datei angekommen ist – neue Dateien wären unbemerkt liegen geblieben und der Ordner vollgelaufen | Polling: aktives Nachsehen im 60-Sekunden-Takt statt Benachrichtigung. Preis dafür ist bis zu einer Minute Verzögerung | | **Halb übertragene Dateien.** Über SMB ist eine große Datei sekundenlang unvollständig – Paperless hätte sie als beschädigtes Dokument archiviert | Stillstandsprüfung: Änderungszeit und Größe werden verglichen, nach 5 s erneut. Erst wenn beide zweimal identisch sind, wird eingelesen (max. 10 Versuche) | | **Der unprivilegierte Container verschiebt Benutzerkennungen** (1000 → 101000) | CIFS-Mount mit `uid=101000,gid=101000`. Ohne das darf Paperless die Datei nicht löschen – und Löschen gehört zum Import | ## Praktisch verifiziert (18.07.2026) Nicht nur konfiguriert, sondern durchgespielt: - Schreiben **und Löschen** unter der Kennung, mit der Paperless läuft - Testdatei in `Testfirma/` → nach einem Polling-Zyklus eingelesen, **Tag `Testfirma` automatisch angelegt** - Ablage als `2026/importtest.txt` – kein `none`-Ordner, `REMOVE_NONE` wirkt - Kein `#recycle` auf der Freigabe nach dem Abräumen → DSM-Papierkorb tatsächlich deaktiviert ## ⚠ Nebenwirkung: Der Bind-Mount verhindert Proxmox-Snapshots **Befund 19.07.2026:** `pct snapshot 110` scheitert mit `snapshot feature is not available`. Ursache ist der Bind-Mount `mp1` auf `/mnt/papersafe-consume` – **Proxmox kann Container mit Bind-Mounts nicht snapshotten**, weil das Host-Verzeichnis nicht Teil des Container-Speichers ist. Das war der Preis für die saubere Zuleitung und beim Einrichten nicht bedacht. Praktische Folge: **Für Rücksprungpunkte steht kein Snapshot zur Verfügung.** **Ersatz – funktioniert unabhängig davon:** | Weg | Wann geeignet | |---|---| | **Abzug des Datenverzeichnisses** (`tar` von `/opt/paperless/data`) | Schnell und zielgenau, solange der Bestand klein ist. Erfordert angehaltenen Stack | | **`vzdump`** | Vollständige Sicherung; `mp1` ist über `backup=0` ausgenommen. Rückweg über Restore ([[04-Betrieb-Backup]]) | | **`document_exporter`** | Logische Ebene, versionsunabhängig – aber ohne Suchindex und Systemzustand | **Abzug erstellen** (Stack vorher anhalten): ```bash pct exec 110 -- bash -c 'cd /opt/paperless && docker compose stop' pct exec 110 -- tar --numeric-owner --exclude=data/lost+found \ -cpf /root/papersafe-vortest.tar -C /opt/paperless data pct pull 110 /root/papersafe-vortest.tar /root/papersafe-rollback/papersafe-vortest.tar ``` **Zurückspielen:** ```bash pct exec 110 -- bash -c 'cd /opt/paperless && docker compose stop' pct exec 110 -- bash -c 'rm -rf /opt/paperless/data.alt && mv /opt/paperless/data /opt/paperless/data.alt' pct exec 110 -- tar --numeric-owner -xpf /root/papersafe-vortest.tar -C /opt/paperless pct exec 110 -- bash -c 'cd /opt/paperless && docker compose start' ``` `--numeric-owner` ist wichtig: Der Container ist unprivilegiert, die Kennungen dürfen nicht über Namen aufgelöst werden. **Falls Snapshots je gebraucht werden:** `mp1` vorübergehend entfernen, snapshotten, wieder hinzufügen. Während dieser Zeit ist der Consume-Ordner nicht erreichbar. ## Wichtig fürs Löschen Dokumente **nicht über die Django-Shell löschen.** Dabei verschwindet der Datenbankeintrag, Original und Thumbnail bleiben aber auf der Platte liegen – auch nach dem Leeren des Papierkorbs. Die Aufräumroutine greift nur über Oberfläche oder API. ## Offene Punkte Werden zentral in [[08-Feinkonzept-Regelwerk]] geführt – dort stehen alle offenen Punkte des automatischen Imports an einer Stelle. ## Quellen - Paperless-ngx – Konfigurationsoptionen (`PAPERLESS_CONSUMER_RECURSIVE`, `SUBDIRS_AS_TAGS`, `POLLING`, `DELETE_DUPLICATES`, `FILENAME_FORMAT_REMOVE_NONE`) – geprüft direkt in `settings.py` der installierten Version 2.20.15, Zugriff 18.07.2026 - Paperless-ngx – `docs/configuration.md`, Tag `v2.20.15`: exakte Semantik von `PAPERLESS_CONSUMER_POLLING` (Intervall in Sekunden, Standard `0` = `inotify`), `POLLING_DELAY` (Sekunden zwischen Stillstandsprüfungen) und `POLLING_RETRY_COUNT` (Höchstzahl der Prüfungen; identische Änderungszeit und Größe bei zwei aufeinanderfolgenden Prüfungen lösen den Import aus) – Zugriff 19.07.2026 - Eigene Verifikation am laufenden System CT 110 – 18.07.2026 --- **Status:** **Zuleitung in Betrieb und verifiziert.** Regelwerk und offene Punkte in [[08-Feinkonzept-Regelwerk]] **Version:** 2.2 **Letzte Aktualisierung:** 19.07.2026 ### Änderungshistorie | Version | Datum | Uhrzeit | Änderung | |---|---|---|---| | 1.0 | 18.07.2026 | 18:00 | Erstfassung – ersetzt den verworfenen Entwurf `07-Tag-Schema` vollständig. Neuausrichtung auf ein reines Suchsystem ohne manuelle Pflege: Ordnernamen als automatische Tags, E-Mail-Regeln als Quelle für Korrespondenten, Volltextsuche als Hauptzugang. Dokumenttypen, Workflow-Tags und Custom Fields gestrichen | | 1.1 | 18.07.2026 | 18:45 | **Ordner-Import umgesetzt:** Quelle Windows-PC, Weg über neue DSM-Freigabe `papersafeconsume` → CIFS-Mount → `mp1` → Docker. Zwei gelöste Fallstricke dokumentiert (kein `inotify` über SMB → Polling; UID-Verschiebung im unprivilegierten Container → `uid=101000`). End-to-End-Verifikation ergänzt, inklusive automatisch erzeugtem Tag aus dem Ordnernamen. Warnung ergänzt, Dokumente nicht über die Django-Shell zu löschen | | 2.0 | 19.07.2026 | – | **Rolle der Note geschärft.** Konzeptteile (Zielbild, Suchwege, Grenzen, E-Mail-Regeln) und **sämtliche offenen Punkte** nach [[08-Feinkonzept-Regelwerk]] verlagert, damit alles Offene an einer Stelle steht. Diese Note beschreibt nur noch die gebaute Zuleitung – Ist-Dokumentation. Inhaltlich nichts verloren, nur verschoben | | 2.1 | 19.07.2026 | – | **Beschreibung der Polling-Variablen korrigiert.** Die bisherige Formulierung („wartet, bis die Datei fertig übertragen ist") war ungenau. Tatsächlich: `POLLING` ist das Prüfintervall in Sekunden (Standard `0` = `inotify`), `POLLING_DELAY` der Abstand zwischen zwei Stillstandsprüfungen, `POLLING_RETRY_COUNT` deren Höchstzahl – eingelesen wird erst, wenn Änderungszeit und Größe zweimal identisch sind. Halb übertragene Dateien als eigener Fallstrick ergänzt, `configuration.md` v2.20.15 als Quelle nachgetragen | | 2.2 | 19.07.2026 | – | **Nebenwirkung des Bind-Mounts dokumentiert:** `pct snapshot 110` scheitert – Proxmox unterstützt keine Snapshots für Container mit Bind-Mounts. Beim Einrichten der Zuleitung nicht bedacht. Ersatzwege für Rücksprungpunkte ergänzt (Abzug des Datenverzeichnisses, `vzdump`, `document_exporter`) samt fertigen Befehlen für Sicherung und Rückspielung, inklusive Hinweis auf `--numeric-owner` wegen des unprivilegierten Containers | --- [[Impressum|Impressum]] | [[Datenschutzerklärung|Datenschutz]]