Paperless-ngx, Teil 5: Installation auf dem Raspberry Pi. Ganz einfach.

Wer sich auf YouTube Anleitungen für die Installation von Paperless-ngx anschaut, wird rasch das Gefühl erhalten, dass es sich um eine Sache für IT-Nerds handelt. In Wahrheit genügen zwei einfache Befehle – und schon funktioniert Paperless-ngx auf dem Raspberry Pi. Das schafft jeder – selbst wenn er bisher noch nie etwas mit der kleinen Box zu tun hatte.
Inhalt
Auf welchen Raspberry-Pi-Modellen läuft Paperless-ngx?
Paperless-ngx ist sehr genügsam. Ein alter Raspberry Pi 3, den man vielleicht noch im Keller hat, sollte bereits genügen (neu: knapp 40 Euro). Ich selbst habe bisher einen Raspberry Pi 4 mit 4 GB bzw. den Tastatur-RPi 400 eingesetzt – auch mit rund 1.000 Dokumenten lief Paperless absolut rund zu zügig. Seit einigen Tagen verwende ich den neuen Raspberry Pi 5 mit 8 GB. Der nimmt umfangreiche PDF-Dateien durch seine hohe Leistung zwar deutlich rascher in die Datenbank auf, bei Suche und Abruf gibt es hingegen keinen spürbaren Unterschied.
Tipp für Neu-Anschaffung
Falls man noch gar keinen Raspberry Pi besitzt, so könnte das 400-er-Modell eine gute Wahl sein, das man aktuell z.B. bei Berrybase für 79 Euro erhält (ist auch lieferbar). Der 400-er hat eine höhere Taktung als der 4-er und verfügt ebenfalls über 4 GB. Ferner spart man sich das Gehäuse und den Lüfter – beim 400-er reicht die passive Kühlung vollkommen. Die Tastatur ist ja auch dabei, so dass man quasi einen Zweit-PC für Homeoffice, Homeschooling oder das Gästezimmer hat.
Ansonsten fallen ja gerade die Preise durch das Erscheinen des 5-er-Modells, so dass man bei eBay oder Kleinanzeigenmärkten fündig werden kann.
Welches Betriebssystem sollte man einsetzen?
Man kann auf dem Raspberry Pi unterschiedliche Linux-Systeme verwenden. Aber Raspberry Pi OS ist auf jeden Fall eine gute Wahl. Der 5-er läuft nur noch mit der neuesten Version („Bookworm“), auf dem 4-er könnte man es auch bei der bisherigen Version („Bullseye“) belassen. Die Desktop-Oberfläche benötigt man nicht unbedingt, sie hat aber einige Vorteile, wie wir beim späteren Backup-Kapitel noch sehen werden.
Welche Speichergröße benötigt man?
Früher benötigte man für den Betrieb eines Raspberry Pi zwingend eine microSD-Karte – seit einiger Zeit kann man auch andere Start-Medien, z.B. einen USB-Stick, verwenden. Meine Erfahrungen mit hochwertigen SD-Karten sind aber ganz gut, so dass ich persönlich dabei bleibe. PDF-Dokumente nehmen meist nicht viel Raum ein, so dass eine SD-Karte ab 16 GB reichen würde. 32 GB wären eine gute Wahl, damit man für weitere Anwendungen etwas mehr Spielraum hat. (Ich selbst verwende fast nur 64-er und 128-er Karten, da ich noch eine Reihe zusätzlicher Dinge mit dem Raspberry Pi mache.)
Die Installation
Die Installation geschieht über die Kommandozeile. Das ist ganz einfach: Das „schwarze Fensterchen“ wird aufgerufen, die folgenden Befehle werden „reinkopiert“ und abgeschickt. Gelegentlich etwas warten. Fertig. Es gibt verschiedene Möglichkeiten, Paperless-ngx zu installieren. Hier wird die Variante über „docker-compose“ beschrieben.
Befehl für docker-compose
Zunächst müssen wir „docker-compose“ auf dem Raspberry Pi installieren – das erledigt die folgende Zeile.
sudo apt install docker-compose
Optional: Man kann seinen Nutzernamen (im Beispiel „pi“) noch kurz in die Berechtigungsgruppe „docker“ aufnehmen lassen, dann spart man sich später gelegentlich ein „sudo“ oder „sudo su“. Falls man das macht, so muss man sich danach kurz neu anmelden oder die Raspberry Pi neu starten, damit die Berechtigung zugewiesen wird.
sudo usermod -aG docker pi
Das Installationsskript ausführen
Jetzt wird ein Skript geladen und ausgeführt. Dabei werden ein paar Punkte abgefragt, die gleich noch beschrieben werden. Die Zeile wird ohne „sudo“ eingegeben, die darin aufgeführten Anführungszeichen müssen erhalten bleiben:
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Die Abfragen
Zeile für Zeile erscheinen Abfragen mit vorgegebenen Werten, die man eigentlich nur durch Return bestätigen muss. An zwei, drei Stellen sollten Anpassungen vorgenommen werden. Im Beispiel wird davon ausgegangen, dass man den Benutzernamen „pi“ verwendet (falls Udo oder PipiLangstrumpf – dann entsprechend ersetzen):
- URL: bestätigen
- Port [8000]: bestätigen
- Current time zone [Europe/Berlin]: bestätigen
- Database [postgres]: bestätigen
- Enable Apache Tika [no]: Hier geht es um einen zusätzlichen Dienst, der auch Word-/LibreOffice-Dokumente in PDF-Dateien konvertieren kann. Meist wird es sich lohnen, an dieser Stelle „yes“ (ohne Anführungszeichen) zu tippen. Falls man einen Raspberry Pi unter 4-er/4GB einsetzt, sollte man es bei „no“ belassen und später derartige Dateien vorab mit anderen Programmen konvertieren.
- OCR language [eng]: Meist wird man Dokumente mit deutschen Texten einstellen, daher hier „deu“ (ohne Anführungszeichen) tippen. Die Verwendungen von Dokumenten mit unterschiedlichen Sprachen stellt im Alltag meist ohnehin kein Problem dar: Intern verwendet Paperless-ngx eine „skip“-Funktion für alle Dokumente, die bereits über einen Text-Layer verfügen. Damit erspart sich das Programm die eigene OCR-Erkennung und ist flotter in der Verarbeitung.
- User ID [1000]: bestätigen
- Group ID [1000]: bestätigen
- Target folder [/home/pi/paperless-ngx]: bestätigen
- Media folder []: Könnte man bestätigen. Dann landen die verarbeiteten Dokumente allerdings im Docker-Bereich, zu dem man sich „hangeln“ muss, Berechtigungen setzen muss usw. Wesentlich besser ist es, man bringt Original-Dokumente und Archiv-Dokumente samt Ordnern und Unterordner direkt im Paperless-ngx-Verzeichnis unter – damit kann man später ungemein einfach Backups durchführen. Daher hier tippen: „/home/pi/paperless-ngx“ (ohne Anführungszeichen).
- Data folder []: bestätigen
- Database folder []: bestätigen
- Paperless username [pi]: bestätigen
- Paperless password: jetzt ein Passwort vergeben
- Paperless password again: Passwort eintragen
- Email [pi@localhost]: musterperson@web.de Die E-Mail-Adresse ist egal – es kann eine erfundene sein.
- Press any key to install: geschafft 🙂
So, nun muss man warten. Wenn man Tika (und damit Gotenberg) bei den Abfragen installiert hat, dauert der Abruf aller Dateien durchaus 10 – 15 Minuten – aber dafür hat man ja seinen Espresso zur Hand.
Nach der Installation
Der große Moment ist gekommen – Paperless-ngx kann in Betrieb genommen werden. Die IP-Adresse im heimischen Netzwerk benötigen wir nun noch. Die erhält man über den einfachen Befehl
ip a
Das Ergebnis kann dann so aussehen:
Oder man ruft kurz das Backend seines Modems/seiner Fritz!Box auf – dort steht die benötigte Ziffernfolge ebenfalls.
So, jetzt weg vom Kästchen – hin zum „normalen“ Browser auf dem PC, dort die IP gefolgt von „:8000“ eingeben. Im Beispiel „192.168.178.116:8000“.
Die Anmeldung erfolgt mit dem gewählten Passwort. Nun kann das Abenteuer beginnen! Wie in den vorherigen Teilen beschrieben, können Dokumente aufgenommen und verwaltet werden. Aber wir sind noch lange nicht am Ende der Reise – denn Paperless-ngx bietet noch eine Vielzahl weiterer Möglichkeiten, um die wir uns in den nächsten Kapiteln kümmern werden.
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: …
Teil 7: …


10 Kommentare
Dirk
Erstmal vielen Dank für die tolle Serie! Ich lese gespannt jeden Teil.
In diesem Teil wird das Medienverzeichnis auf die SD-Karte gespeichert. Reicht der Platz einer 32/64GB Karte aus für all die Dateien, die in papgerless über die Zeit gespeichert werden?
Herbert
Mal eine Beispielrechnung: Bei mir umfassen 1.000 PDF-Dokumente ca. 1 GB (meistens „normale“ Post = zwischen 1 – 3 Seiten plus etliche Verträge). Durch die Doppelung „archiv“ plus „original“ also dann die doppelte Menge („archiv“ kann man aber auch abstellen). Die 1.000 Dokumente wurden bei mir in den letzten 5 Jahren gesammelt. Raspberry Pi OS nimmt ca. 8 GB in Anspruch. Wenn man sonst nichts installiert, hat man also locker noch 20 GB Platz auf einer 32 GB-Karte – das sollte also für die nächsten 20 Jahre ausreichend sein. – Du kannst mit Tools wie „Treesize“ einfach mal deinen aktuellen Archiv-Ordner mit Unterordnern auf der Festplatte auslesen – dann bekommst Du rasch ein Gefühl für die notwendige Größe. Ansonsten würde ich immer eine Nummer größer nehmen – man entdeckt mit der Zeit viele Dinge, die man auch noch auf einem Raspberry Pi laufen lassen kann.
Herbert Hannebrook
Danke für die ausgezeichnete Anleitung – noch nie war es einfacher Paperless zu installieren!
Ich habe mir noch einige Gedanken zur Sicherung und Wiederherstellung gemacht.
Herzlichen Gruß vom Namensvetter Herbert
— Update von Paperless im paperless-Verzeichnis mit: „docker compose down“ – „docker compose pull“ – „docker compose up -d“ —
— Sicherung erstellen —
cd paperless
sudo rm -f /home/pi/paperless/export/* #Inhalt vom export-Verzeichnis löschen – sonst bleiben in Paperless gelöschte Dateien in der Sicherung!
docker-compose exec -T webserver document_exporter ../export #kopiert alles in das export-Verzeichnis
ggf. ein altes Archiv löschen:
rm -f /home/pi/paperless/export.tgz
export-Verzeichnis packen mit:
tar -czf /home/pi/paperless/export.tgz /home/pi/paperless/export
Die Datei export.tgz kann dann mit einem FTP-Programm auf den lokalen Rechner als Sicherung kopiert werden.
— Sicherung wiederherstellen: —
In der Sicherung darf kein Benutzername der aktuellen Installation vorkommen!!!
Bzw.: Bei einer Neuinstallation keinen Benutzernamen der alten Installation eingeben!!!
sudo rm -f /home/pi/paperless/export/* #Inhalt vom export-Verzeichnis löschen
export.tgz ins pi-Verzeichnis kopieren
sudo tar -xzf export.tgz
Das entpackte export-Verzeichnis liegt Pfad home/pi/home/pi/paperless/export
Den Inhalt z.B. mit dem MitnightCommander (sudo apt-get install mc) nach /home/pi/paperless/export kopieren
{mit mc ins export-Verzeichnis gehen und mit * alle markieren – dann löschen bzw. kopieren} [wenn das export-Verzeichnis gelöscht und kopiert wird, im paperless-Verzeichnis „docker compose down“ und „docker compose up -d“ ausführen]
oder:
cp /home/pi/home/pi/paperless/export/* /home/pi/paperless/export
cd paperless
docker-compose exec -T webserver document_importer ../export
Fertig!
— Automatische Sicherung —
cd /home/pi/paperless/
nano sicherung.sh #Datei „sicherung .sh“ ertellen
cd /home/pi/paperless #Zeile in die Datei kopieren
sudo docker-compose exec -T webserver document_exporter ../export #Zeile in die Datei kopieren
Datei in nano speichern und schließen
chmod +x sicherung.sh #“sicherung.sh“ ausführbat machen
aufrufen mit:
/home/pi/paperless/sicherung.sh
— jede Nacht sichern —
crontab -e
50 2 * * * sudo rm -f /home/pi/paperless/export/* #(nachts um 2.50 Uhr)
0 3 * * * /home/pi/paperless/sicherung.sh #(nachts um 3.00 Uhr)
30 3 * * * sudo rm -f /home/pi/paperless/export.tgz #(nachts um 3.30 Uhr)
35 3 * * * tar -czf /home/pi/paperless/export.tgz /home/pi/paperless/export
Herbert
Hallo Herbert,
der erste Kommentar mit ausführlicher Anleitung – herzlichen Dank!
Sicher hilfreich auch für andere Mit-Lesenden! Ich werde Deine Vorschläge auch durchprobieren.
Ja, der Export-Befehl wird auch in meinem Kapitel zur Datensicherung eine wichtige Rolle spielen. Da die Serie für Einsteiger gedacht ist, habe ich für das eigentliche Backup einige Tools vorgesehen, die alles automatisiert erledigen. Kommt in einer der nächsten Folgen. Gerne weiterhin kommentieren! Danke!
Herbert Hannebrook
noch einige Anmerkungen:
– Ich habe Paperless im Verzeichnis „paperless“ und nicht in „paperless-ngx“ installiert.
– Mir gelingt es nicht , den Inhalt des Archivs (hier „export.tgz“) von einem beliebigen Ort ins Verzeichnis „/home/pi/paperless/export“ direkt (ohne weitere Verzeichnisse) zu entpacken. Für einen Tip wäre ich sehr dankbar!
-Sehr empfehlen kann ich, das Betriebssystem -und damit alles andere- auf eine externe SSD (z.B.: Samsung T5/T7 -hier mit 500GB-) zu installieren. Das bringt viel Speicherplatz und einen nicht unerheblichen Geschwindigkeitsvorteil. Zudem sind SSD wesentlich besser für ständige Schreib-Lesezugriffe ausgelegt als SD-Karten. Bei mir laufen darauf an einem PI4 mit 4GB Nextcloud und Paperless wunderbar nebeneinander.
Herzlichen Gruß aus Bremen
Harry Elgert
Es gelingt mir nich Paperless auf zusetzen, ich bekomme nach der lezten Bestätigung Key install die Meldung:
ERROR: yaml.reader.ReaderError: unacceptable character #x001b: special characters are not allowed
in „./docker-compose.yml“, position 2244
was mache ich da falsch.?
Herbert
Verwendest Du irgendwo ein Sonderzeichen (Leerraum, Umlaut oder so)?
Der Ahnungslose
Hallo,
habe mich, da alles was mit Programmierung für mich ne andere Welt ist, haargenau an diese Anleitung hier gehalten (so macht man es ja, wenn man keine Ahnung hat).
Raspberry Pi 3B+, ganz neu Betriebssystem auf SD-Karte geschrieben, alles geupdates.
Erste Hürde: nach den ganzen Bestätigungen lief es nicht – „Docker – compose“ sei nicht zu finden.
Naja, durch google dann mal docker vollstandig installiert, danach ging es wie hier mit Docker compose.
Keine Fehlermeldung mehr, immer erfolgreich.
ABER: im Browser die IP:8000 -> Fehler: Verbindung fehlgeschlagen
Ist der Pi aus, ich versuche es, rödelt der Browser lange, ist der Pi an, kommt die Fehlermeldung sofort. Also rate ich mal, das der Zugriff grundsätzlich funktioniert (also ip anfragen, es kommt eine antwort).
Selbst direkt auf dem Pi kann ich auf diese IP nicht zugreifen.
Jetzt die große Frage: Was zur Hölle mache ich falsch, wenn ich genau nach Anleitung gehe?
Über eine Antwort würde ich mich freuen, bevor der Pi fliegen lernt.
Vielen Dank
Herbert
Du hast im Pfad paperless-ngx eine Datei mit der Endung „.yml“. Die mal mit Doppelklick im Texteditor öffnen (oder auf der Kommandozeile mit Nano). Darin nach „port“ suchen
Stehen muss da
ports:
– „8000:8000“
Ist das so bei Dir?
Harry Elgert
Sorry das ich mich jetzt errst melde,keine Sonderzeichen nur das gemacht was auf der Seite angegeben wird.
Meldung: docker: ‚compose‘ is not a docker command.
Gruß
Harry