Paperless-ngx, Teil 18: Synology/NAS ohne Docker nutzen
Gerade bei günstigen NAS-Varianten von Synology, QNAP und anderen Unternehmen läuft Paperless-ngx oft nicht, da die Docker-Unterstützung (Portainer/Container usw.) fehlt. So steht bei mir eine Synology von 2014 rum, die technisch vollkommen in Ordnung ist und alle Backup-Aufgaben prima erledigt, aber eben nicht die erwähnte Unterstützung hat. Wenn man noch einen Raspberry Pi (ab Modell 4) in der Schublade hat, so kann man den Winzling mit dem NAS kombinieren – und schon läuft Paperless-ngx. Der Vorteil: Die Daten werden direkt im Filesystem des NAS gespeichert und erhalten damit die gleichen Sicherungen/Backups, die ohnehin der gesamte Datenbestand des NAS erhält.
Inhalt
Kombination von Raspberry Pi mit einer Synology/einem NAS
Das Vorgehen zeige ich am Beispiel meiner Synology. Es klappt aber auch mit Geräten von anderen Herstellern, da die Grundfunktion – NAS-Ordner für Uploads freigeben – praktisch überall von Haus aus eingebaut ist. Was wir nun machen: Wir lassen die eigentliche (Docker-)Verarbeitung auf dem Raspberry Pi geschehen, weil dieser Docker beherrscht. Aber alle Verzeichnisse, mit denen der Raspberry Pi arbeitet, befinden sich auf dem NAS. Sogar der consume-Ordner, der neue Dokumente aufnimmt, befindet sich dort. Hat man also ohnehin bereits seinen Dokumentenscanner mit dem NAS verbunden, so können Scans weiterhin über das NAS aufgenommen werden. Alternativ kann man auch Dokumente, die sich bereits auf dem NAS befinden, in den consume-Ordner verschieben/kopieren:
Ordner auf dem NAS freigeben
NFS-Dienst aktivieren
Wer ein NAS besitzt, der wird in der Regel auch wissen, wie er dortige Verzeichnisse freigibt, damit zum Beispiel ein PC ein Backup auf dem NAS erstellen kann. Geräte wie die Synology bieten hier mehrere Verfahren/Protokolle an. Wir greifen zur NFS-Option, da auf diesem Weg die Übergabe vom Raspberry Pi sehr flott geschieht. Sofern noch nicht geschehen: NFS-Dienst aktivieren mit Systemsteuerung/Dateidienste/NFS. Dort die aktuelle Version NFSv4 verwenden.
Freigabe-Ordner erstellen
Noch einmal Systemsteuerung, jetzt Menüpunkte „Freigegebener Ordner“ und „Erstellen“.
In unserem Beispiel erhält der Hauptordner den Namen „paperless“. Dann auf „Bearbeiten“ gehen und dort in den Reiter „NFS-Berechtigungen“.
In der Maske folgende Einträge vornehmen:
- Hostname: IP des Raspberry Pi im Heimnetz (hier: 192.168.178.64)
- Berechtigung: Lesen/Schreiben
- Squash: Alle Benutzer zu Admin zuweisen
- Sicherheit: sys
Weiterhin die Häkchen bei „Asynchron aktivieren“ usw. setzen:
Nun noch im Hauptordner „paperless“ folgende Unterordner einrichten:
- data
- media
- consume
- export
Raspberry Pi: Installation anpassen
NFS-Dienst auf dem Raspberry Pi einrichten
Jetzt sind einige Schritte auf dem Raspberry Pi zu erledigen. Gut, das kostet ein paar Minuten Zeit – muss man aber ja nur am Anfang machen. Wenn es einmal läuft, hat man damit keinen Aufwand mehr.
Hinweis:
Ich verwende im Beispiel meine beiden IP-Adressen „192.168.178.64“ für den Raspberry Pi, meinen Nutzernamen „a“ und für die Synology „Volume 1“ und deren IP „192.168.178.22„. Diese Angaben an die im eigenen Heimnetz anpassen.
1. NFS-Client installieren
sudo apt update
sudo apt install nfs-common
2. Mount-Punkt erstellen
sudo mkdir -p /mnt/paperless/{data,media,consume,export}
sudo mount -t nfs 192.168.178.22:/volume1/paperless/data /mnt/paperless/data
sudo mount -t nfs 192.168.178.22:/volume1/paperless/media /mnt/paperless/media
sudo mount -t nfs 192.168.178.22:/volume1/paperless/consume /mnt/paperless/consume
sudo mount -t nfs 192.168.178.22:/volume1/paperless/export /mnt/paperless/export
4. Permanente NFS-Verbindung einrichten
Damit die Verknüpfungen auch nach einem Neustart des Geräts erhalten bleiben, muss eine bestimmte Datei ergänzt werden. Die Textdatei „fstab“ in einem Editor aufrufen:
sudo nano /etc/fstab
Folgende Zeilen hinzufügen und speichern:
192.168.178.22:/volume1/paperless/data /mnt/paperless/data nfs defaults 0 0
192.168.178.22:/volume1/paperless/media /mnt/paperless/media nfs defaults 0 0
192.168.178.22:/volume1/paperless/consume /mnt/paperless/consume nfs defaults 0 0
192.168.178.22:/volume1/paperless/export /mnt/paperless/export nfs defaults 0 0
Paperless-ngx installieren
Die „normale“ Installation für den Raspberry Pi habe ich ja ausführlich beschrieben (Teil 5 der Paperless-ngx-Serie). Die Installation passiert jetzt auf dem gleichen Weg (evtl. muss statt „docker-compose“ die modernere Syntax „docker compose“ in den Befehlen verwendet werden). Wenn man danach vorgegangen ist, erhält man eine Textdatei auf dem Raspberry Pi im Verzeichnis „paperless-ngx“ die den Namen „docker-compose.yml“ trägt. Darin wird jetzt der Inhalt angepasst, damit die Synology-Verzeichnisse einbezogen werden. Prinzipiell kann man mit dem folgenden Text den Inhalt der Textdatei überschreiben. Daran denken: Ich verwende darin meine Beispiel-IP-Adressen – diese durch die eigenen ersetzen.
Weiterhin habe ich in die Datei den Nutzernamen „admin“ und das Passwort „admin“ aufgenommen, damit man direkt nach der Installation nicht lange überlegen muss. Diese Angaben sollte man natürlich auch ändern. Außerdem habe ich einen 10-Sekunden-Abruf/Poll für Dokumente eingerichtet, die via Consume-Verzeichnis aufgenommen werden sollen.
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/postgres:15
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
webserver:
container_name: paperless-webserver
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- "8000:8000"
volumes:
- /mnt/paperless/data:/usr/src/paperless/data
- /mnt/paperless/media:/usr/src/paperless/media
- /mnt/paperless/consume:/usr/src/paperless/consume
- /mnt/paperless/export:/usr/src/paperless/export
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_URL: http://192.168.178.64:8000
PAPERLESS_TIME_ZONE: Europe/Berlin
PAPERLESS_OCR_LANGUAGE: deu
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_ADMIN_USER: admin
PAPERLESS_ADMIN_PASSWORD: admin
PAPERLESS_CONSUMER_POLLING: 1
PAPERLESS_CONSUMER_POLLING_INTERVAL: 10
PAPERLESS_CONSUMER_DELETE_DUPLICATES: 1
gotenberg:
image: docker.io/gotenberg/gotenberg:7.8
restart: unless-stopped
tika:
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
volumes:
redisdata:
pgdata:
Docker Compose starten
Der Start von Paperless-ngx erfolgt mit dem gewohnten Befehl:
sudo docker compose up -d
Paperless-ngx verwenden
Der Aufruf von Paperless-ngx erfolgt im Browser mit der IP des Raspberry Pi plus „:8000“. Man hat die gewohnte Web-Oberfläche vor sich. Es ist also kein Unterschied zu einer Installation erkennbar, die pur auf dem Raspberry Pi läuft. Aber jedes Dokument, das aufgenommen wird, landet in den freigegebenen Ordnern auf der Synology.
Die Synology-Verzeichnisse werden von den Paperless-Kommandos, die man auf dem Raspberry-Pi ausführt, automatisch übernommen. Gibt man für den Export beispielsweise den Befehl
sudo docker-compose exec webserver document_exporter ../export
ein, so werden die Sicherungsdateien ebenfalls auf dem NAS gespeichert:
Auch die Anpassungen, die in der Artikelreihe erwähnt wurden – z. B. die Verwendung von sprechenden Dokumentennamen usw. – sollte funktionieren. Allerdings habe ich nicht alles getestet, da ich auch weiterhin vollständig Paperless-ngx auf meinem Raspberry-Pi betreiben werde. Aber da mich die Anfrage jetzt schon einige Male erreicht hat, ob man nicht seine Synology doch irgendwie verwenden kann, habe ich jetzt mal einen Test durchgeführt. Und wenn die Sache schon auf einem 10 Jahre alten Modell funktioniert, dann sollte es ja erst recht mit neueren Modellen klappen 🙂
Bisherige Teile der Paperless-ngx-Serie:
Teil 1: Ausführlicher Überblick
Teil 2: Suche & Tags
Teil 3: consume-Ordner – Einsatz von Scannern
Teil 4: Speicherpfade konfigurieren
Teil 5: Installation auf dem Raspberry Pi
Teil 6: Neue Funktionen in Version 2
Teil 7: Dokumente unterwegs über das eigene Modem abrufen
Teil 8: Exportfunktion nutzen
Teil 9: Update durchführen
Teil 10: Das Rundum-sorglos-Backup
Teil 11: Mail-Abruf mit vielen Extras
Teil 12: Mein Alltag mit Paperless-ngx
Teil 13: Ein Quanten-Code für das Papier-Archiv
FORUM für Fragen eröffnet
Teil 14: Automatisierte Ablage auf Speicherpfaden
Teil 15: Neue Funktion für das Verbinden und Trennen von Dokumenten
Teil 16: Dashboard, smarte Widgets und erweiterte Ansichten
Teil 17: Unterordner des consume-Verzeichnisses nutzen
Teil 18: Paperless-ngx auf Synology/NAS ohne Docker nutzen
7 Kommentare
Sebastian
kann es sein das etwas fehlt?
sobald ich reboote ist das Mount weg.
Herbert
Hallo Sebastian, danke Dir für den Hinweis! Ich werde den Artikel demnächst um die Befehle ergänzen, die die Verknüpfung auch nach einem Reboot beibehalten.
huebi
Moin,
dein Verfahren hat den Nachteil, dass du die Datenbank von den PDF Dateien trenst, denn die Dstenbank läßt du ja weiterhin auf dem Pi. Damit ist ein konsistentes Backup nicht mehr gegeben.
Herbert
Danke für den Hinweis – das ist prinzipiell richtig. Die Datenbank könnte man auch noch verschieben, was aber trotzdem die Sicherung von zwei Orten/Geräten erfordert. Im Falle von Paperless-ngx ist die Besonderheit, dass die Datenbankinhalte recht gut und sehr flott durch den Export-Ordner rekonstruiert werden können. Zusammen mit den Skripten, die ich in der Artikelreihe beschrieben habe, scheint mir das ausreichend zu sein.
Chris
Hallo, Danke für den Artikel,
funktioniert das auch wenn ich Paperless mit Docker auf einem PC instaliere und die Daten am NAS speichere, den möchte denPC nicht 24/7 laufen lassen und schalte ihn am Abend aus, da benötige ich paperless auch nicht .
bleibt die Verbindung dann beim docker starten bestehen?
Dank für deinen Tipp
Chris
Herbert
Ja, das sollte klappen. Das Synology-NAS wird ja immer in Betrieb oder Standby sein und damit die Freigabe der notwendigen Ordner zur Verfügung stellen. Zumindest bei einem Linux-PC mit Docker Compose startet das System automatisch neu, wenn man den PC wieder anwirft. Unter Windows habe ich es nicht ausprobiert.
Chris
Super Danke für die Antwort,
Die Volumes für die Redis und Postgress Container würdest du am PC lassen oder auch aufe den NAS setzen?