{"id":1623,"date":"2023-11-12T16:30:34","date_gmt":"2023-11-12T15:30:34","guid":{"rendered":"https:\/\/digital-cleaning.de\/?p=1623"},"modified":"2025-10-31T17:23:51","modified_gmt":"2025-10-31T16:23:51","slug":"paperless-ngx-teil-5-installation-auf-dem-raspberry-pi-ganz-einfach","status":"publish","type":"post","link":"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-5-installation-auf-dem-raspberry-pi-ganz-einfach\/","title":{"rendered":"Paperless-ngx, Teil 5: Installation auf dem Raspberry Pi. Ganz einfach."},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"335\" src=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-1024x335.jpg\" alt=\"\" class=\"wp-image-1624\" srcset=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-1024x335.jpg 1024w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-300x98.jpg 300w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-768x251.jpg 768w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-1536x502.jpg 1536w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1-1140x373.jpg 1140w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-1.jpg 1973w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Wer sich auf YouTube Anleitungen f\u00fcr die Installation von Paperless-ngx anschaut, wird rasch das Gef\u00fchl erhalten, dass es sich um eine Sache f\u00fcr IT-Nerds handelt. In Wahrheit gen\u00fcgen zwei einfache Befehle &#8211; und schon funktioniert Paperless-ngx auf dem Raspberry Pi. Das schafft jeder &#8211; selbst wenn er bisher noch nie etwas mit der kleinen Box zu tun hatte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Auf welchen Raspberry-Pi-Modellen l\u00e4uft Paperless-ngx? <\/h2>\n\n\n\n<p>Paperless-ngx ist gen\u00fcgsam. Ich selbst habe bisher einen Raspberry Pi 4 mit 4 GB bzw. den Tastatur-RPi 400 eingesetzt &#8211; auch mit rund 1.000 Dokumenten lief Paperless absolut rund zu z\u00fcgig. (Die 64-bit-Variante des Betriebssystems muss installiert sein.) 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\u00fcrbaren Unterschied.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-1024x593.jpg\" alt=\"\" class=\"wp-image-1625\" style=\"aspect-ratio:1.72681281618887;width:646px;height:auto\" srcset=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-1024x593.jpg 1024w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-300x174.jpg 300w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-768x445.jpg 768w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-1536x890.jpg 1536w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-2048x1187.jpg 2048w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-2-1140x660.jpg 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Drei Dinge braucht der Installateur &#8230;<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Tipp f\u00fcr Neu-Anschaffung<\/h3>\n\n\n\n<p>Falls man noch gar keinen Raspberry Pi besitzt, so k\u00f6nnte das 400-er-Modell eine gute Wahl sein, das man aktuell z.B. bei Berrybase f\u00fcr 79 Euro erh\u00e4lt (ist auch lieferbar). Der 400-er hat eine h\u00f6here Taktung als der 4-er und verf\u00fcgt ebenfalls \u00fcber 4 GB. Ferner spart man sich das Geh\u00e4use und den L\u00fcfter &#8211; beim 400-er reicht die passive K\u00fchlung vollkommen. Die Tastatur ist ja auch dabei, so dass man quasi einen Zweit-PC f\u00fcr Homeoffice, Homeschooling oder das G\u00e4stezimmer hat.<\/p>\n\n\n\n<p>Ansonsten fallen ja gerade die Preise durch das Erscheinen des 5-er-Modells, so dass man bei eBay oder Kleinanzeigenm\u00e4rkten f\u00fcndig werden kann.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welches (64-Bit-)Betriebssystem sollte man einsetzen?<\/h3>\n\n\n\n<p>Man kann auf dem Raspberry Pi unterschiedliche Linux-Systeme verwenden. Aber <a href=\"https:\/\/www.raspberrypi.com\/software\/\">Raspberry Pi OS<\/a> ist auf jeden Fall eine gute Wahl. Der 5-er l\u00e4uft nur noch mit der neuesten Version (&#8222;Bookworm&#8220;), auf dem 4-er k\u00f6nnte man es auch bei der bisherigen Version (&#8222;Bullseye&#8220;) belassen. Die Desktop-Oberfl\u00e4che ben\u00f6tigt man nicht unbedingt, sie hat aber einige Vorteile, wie wir beim sp\u00e4teren Backup-Kapitel noch sehen werden. <strong>Achtung: 32-Bit-Systeme werden von Paperless-ngx nicht mehr unterst\u00fctzt!<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welche Speichergr\u00f6\u00dfe ben\u00f6tigt man?<\/h3>\n\n\n\n<p>Fr\u00fcher ben\u00f6tigte man f\u00fcr den Betrieb eines Raspberry Pi zwingend eine microSD-Karte &#8211; 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\u00f6nlich dabei bleibe. PDF-Dokumente nehmen meist nicht viel Raum ein, so dass eigentlich eine SD-Karte ab 16 GB reichen w\u00fcrde. Empfehlenswert ist aber eine Gr\u00f6\u00dfe von mindestens 32 GB, lieber 64 GB und mehr. Dann ist auch gen\u00fcgend Platz f\u00fcr Export- und Backup-Vorhaben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vorbereitung: Falls Docker noch nicht vorhanden<\/h2>\n\n\n\n<p>Sofern man bereits mit Docker arbeitet, kann dieser Abschnitt \u00fcbersprungen werden, dann direkt zu &#8222;Installation mit Docker-Compose&#8220; gehen. Alle folgenden Befehle werden im Terminal ausgef\u00fchrt. Dieses also aufrufen und die Befehle einfach per Kopierfunktion \u00fcbertragen. Diesen Abschnitt halte ich kurz, bei der eigentlichen Installation kommen einige Erl\u00e4uterungen.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"curl -fsSL https:\/\/get.Docker.com -o get-Docker.sh &amp;&amp; chmod +x get-Docker.sh\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-fsSL<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/get.Docker.com<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-o<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">get-Docker.sh<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">chmod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">+x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">get-Docker.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Die Ausf\u00fchrung des n\u00e4chsten Befehls dauert ein wenig, also 1, 2 Minuten warten:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"sudo .\/get-Docker.sh\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/get-Docker.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Im Beispiel ist der Nutzername &#8222;pi&#8220; &#8211; sofern ein anderer verwendet wird, den Namen austauschen:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"sudo usermod -aG docker pi\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">usermod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-aG<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">docker<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pi<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Der folgende Befehl wird eigentlich erst nach einem Neustart wirksam, zahlt sich sp\u00e4ter aus, jetzt m\u00fcssen wir nicht neu booten: <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"cat \/etc\/group | grep docker\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">cat<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">\/etc\/group<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">grep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">docker<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Und noch:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"newgrp docker\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">newgrp<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">docker<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Damit sind die Vorbereitungen eigentlich fertig. Wenn man m\u00f6chte, kann man einen kurzen Test machen, ob Docker reagiert:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"docker run hello-world\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">docker<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">run<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">hello-world<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Da kommen jetzt ein paar S\u00e4tze, wenn alles korrekt l\u00e4uft.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation mit Docker-Compose*<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>*) Hinweis: Inzwischen wurde der urspr\u00fcnglich getrennte Befehl &#8222;docker-compose&#8220; in Docker integriert, so dass die zus\u00e4tzliche Installation nicht mehr notwendig ist. Der Befehle wird jetzt<strong> ohne Bindestrich<\/strong> geschrieben = <br>&#8222;docker compose&#8220;. <br>Darauf bei der nachfolgenden Installation bitte achten.<\/p>\n<\/blockquote>\n\n\n\n<p>Nun zur eigentlichen Installation: Zun\u00e4chst m\u00fcssen wir &#8222;docker-compose&#8220; auf dem Raspberry Pi installieren &#8211; das erledigt die folgende Zeile. <em>(W\u00e4hrend des Vorgangs h\u00e4lt das Skript kurz an und fragt &#8222;no\/yes&#8220; &#8211; dann einfach &#8222;y&#8220; eingeben und Enter.)<\/em><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"sudo apt install docker-compose\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">apt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">docker<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">compose<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Optional: <\/strong>Man kann seinen Nutzernamen (im Beispiel &#8222;pi&#8220;) noch kurz in die Berechtigungsgruppe &#8222;docker&#8220; aufnehmen lassen, dann spart man sich sp\u00e4ter gelegentlich ein &#8222;sudo&#8220; oder &#8222;sudo su&#8220;. Falls man das macht, so muss man sich danach kurz neu anmelden oder die Raspberry Pi neu starten, damit die Berechtigung zugewiesen wird.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"sudo usermod -aG docker pi\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">usermod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">aG<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">docker<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pi<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Das Installationsskript ausf\u00fchren<\/h3>\n\n\n\n<p>Jetzt wird ein Skript geladen und ausgef\u00fchrt. Dabei werden ein paar Punkte abgefragt, die gleich noch beschrieben werden. Die Zeile wird <strong>ohne &#8222;sudo&#8220;<\/strong> eingegeben, die darin aufgef\u00fchrten Anf\u00fchrungszeichen m\u00fcssen erhalten bleiben: <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"bash -c &quot;$(curl -L https:\/\/raw.githubusercontent.com\/paperless-ngx\/paperless-ngx\/main\/install-paperless-ngx.sh)&quot;\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">bash<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">c<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$(curl -L https:\/\/raw.githubusercontent.com\/paperless-ngx\/paperless-ngx\/main\/install-paperless-ngx.sh)<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Die Abfragen<\/h3>\n\n\n\n<p>Zeile f\u00fcr Zeile erscheinen Abfragen mit vorgegebenen Werten, die man eigentlich nur durch Return best\u00e4tigen muss. An zwei, drei Stellen sollten Anpassungen vorgenommen werden. Im Beispiel wird davon ausgegangen, dass man den Benutzernamen &#8222;pi&#8220; verwendet (falls Udo oder PipiLangstrumpf &#8211; dann entsprechend ersetzen): <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>URL: best\u00e4tigen<\/li>\n\n\n\n<li>Port [8000]: best\u00e4tigen<\/li>\n\n\n\n<li>Current time zone [Europe\/Berlin]: best\u00e4tigen<\/li>\n\n\n\n<li>Database [postgres]: best\u00e4tigen<\/li>\n\n\n\n<li><strong>Enable Apache Tika [no]:<\/strong> Hier geht es um einen zus\u00e4tzlichen Dienst, der auch Word-\/LibreOffice-Dokumente in PDF-Dateien konvertieren kann. <strong>Meist wird es sich lohnen, an dieser Stelle &#8222;yes&#8220; (ohne Anf\u00fchrungszeichen) zu tippen. <\/strong>Falls man einen Raspberry Pi unter 4-er\/4GB einsetzt, sollte man es bei &#8222;no&#8220; belassen und sp\u00e4ter derartige Dateien vorab mit anderen Programmen konvertieren.<\/li>\n\n\n\n<li><strong>OCR language [eng]: <\/strong>Meist wird man Dokumente mit deutschen Texten einstellen, daher <strong>hier &#8222;deu&#8220;<\/strong> <strong>(ohne Anf\u00fchrungszeichen)<\/strong> tippen. Die Verwendungen von Dokumenten mit unterschiedlichen Sprachen stellt im Alltag meist ohnehin kein Problem dar: Intern verwendet Paperless-ngx eine &#8222;skip&#8220;-Funktion f\u00fcr alle Dokumente, die bereits \u00fcber einen Text-Layer verf\u00fcgen. Damit erspart sich das Programm die eigene OCR-Erkennung und ist flotter in der Verarbeitung.<\/li>\n\n\n\n<li>User ID [1000]: best\u00e4tigen<\/li>\n\n\n\n<li>Group ID [1000]: best\u00e4tigen<\/li>\n\n\n\n<li>Target folder [\/home\/pi\/paperless-ngx]: best\u00e4tigen<\/li>\n\n\n\n<li>Consume folder [\/home\/pi\/paperless-ngx\/consume]: best\u00e4tigen<\/li>\n\n\n\n<li><strong>Media folder []:<\/strong> K\u00f6nnte man best\u00e4tigen. Dann landen die verarbeiteten Dokumente allerdings im Docker-Bereich, zu dem man sich &#8222;hangeln&#8220; 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 &#8211; damit kann man sp\u00e4ter ungemein einfach Backups durchf\u00fchren. Daher hier tippen:<strong> &#8222;\/home\/pi\/paperless-ngx&#8220; (ohne Anf\u00fchrungszeichen)<\/strong>.<\/li>\n\n\n\n<li>Data folder []: best\u00e4tigen<\/li>\n\n\n\n<li>Database folder []: best\u00e4tigen<\/li>\n\n\n\n<li>Paperless username [pi]: best\u00e4tigen<\/li>\n\n\n\n<li>Paperless password: <strong>jetzt ein Passwort vergeben<\/strong><\/li>\n\n\n\n<li>Paperless password again: Passwort eintragen<\/li>\n\n\n\n<li>Email [pi@localhost]: <strong>musterperson@web.de<\/strong> Die E-Mail-Adresse ist egal &#8211; es kann eine erfundene sein.<\/li>\n\n\n\n<li>Press any key to install: geschafft \ud83d\ude42<\/li>\n<\/ul>\n\n\n\n<p>So, nun muss man warten. Wenn man Tika (und damit Gotenberg) bei den Abfragen installiert hat, dauert der Abruf aller Dateien durchaus 10 &#8211; 15 Minuten &#8211; aber daf\u00fcr hat man ja seinen Espresso zur Hand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nach der Installation<\/h2>\n\n\n\n<p>Der gro\u00dfe Moment ist gekommen &#8211; Paperless-ngx kann in Betrieb genommen werden. Die IP-Adresse im heimischen Netzwerk ben\u00f6tigen wir nun noch. Die erh\u00e4lt man \u00fcber den einfachen Befehl<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"ip a\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">ip<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">a<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Das Ergebnis kann dann so aussehen:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"622\" src=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4-1024x622.jpg\" alt=\"\" class=\"wp-image-1628\" style=\"aspect-ratio:1.6463022508038585;width:652px;height:auto\" srcset=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4-1024x622.jpg 1024w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4-300x182.jpg 300w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4-768x466.jpg 768w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4-1140x692.jpg 1140w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-4.jpg 1428w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n<p>Oder man ruft kurz das Backend seines Modems\/seiner Fritz!Box auf &#8211; dort steht die ben\u00f6tigte Ziffernfolge ebenfalls.<\/p>\n\n\n\n<p>So, jetzt weg vom K\u00e4stchen &#8211; hin zum &#8222;normalen&#8220; Browser auf dem PC, dort die IP gefolgt von &#8222;:8000&#8220; eingeben. Im Beispiel &#8222;192.168.178.116:8000&#8220;.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"508\" src=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-1024x508.jpg\" alt=\"\" class=\"wp-image-1629\" style=\"aspect-ratio:2.015748031496063;width:676px;height:auto\" srcset=\"https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-1024x508.jpg 1024w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-300x149.jpg 300w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-768x381.jpg 768w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-1536x762.jpg 1536w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5-1140x565.jpg 1140w, https:\/\/digital-cleaning.de\/wp-content\/uploads\/2023\/11\/paperl_5-5.jpg 1579w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n<p>Die Anmeldung erfolgt mit dem gew\u00e4hlten Passwort. Nun kann das Abenteuer beginnen! Wie in den vorherigen Teilen beschrieben, k\u00f6nnen Dokumente aufgenommen und verwaltet werden. Aber wir sind noch lange nicht am Ende der Reise &#8211; denn Paperless-ngx bietet noch eine Vielzahl weiterer M\u00f6glichkeiten, um die wir uns in den n\u00e4chsten Kapiteln k\u00fcmmern werden.<\/p>\n\n\n\n<p><strong>Bisherige Teile der Paperless-ngx-Serie:<\/strong><\/p>\n\n\n\n<p>Teil 1: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-auf-dem-raspberry-pi-erstaunlich-gut-teil-1\/\">Ausf\u00fchrlicher \u00dcberblick<\/a><\/strong><br>Teil 2: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-2-suche-tags\/\">Suche &amp; Tags<\/a><\/strong><br>Teil 3: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-3-consume-der-laub-sauger-fur-dokumente\/\">consume-Ordner &#8211; Einsatz von Scannern<\/a><\/strong><br>Teil 4: <a href=\"https:\/\/digital-cleaning.de\/?p=1600\"><strong>Speicherpfade konfigurieren<\/strong><\/a><br>Teil 5: <a href=\"https:\/\/digital-cleaning.de\/?p=1623\"><strong>Installation auf dem Raspberry Pi<\/strong><\/a><br>Teil 6: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-6-neue-funktionen-in-version-2\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-6-neue-funktionen-in-version-2\/\">Neue Funktionen in Version 2<\/a><\/strong><br>Teil 7: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-7-dokumente-unterwegs-ueber-das-eigene-modem-abrufen\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-7-dokumente-unterwegs-ueber-das-eigene-modem-abrufen\/\">Dokumente unterwegs \u00fcber das eigene Modem abrufen<\/a><\/strong><br>Teil 8: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-8-exportfunktion-nutzen\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-8-exportfunktion-nutzen\/\">Exportfunktion nutzen<\/a><\/strong><br>Teil 9: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-9-update-durchfuehren\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-9-update-durchfuehren\/\">Update durchf\u00fchren<\/a><\/strong><br>Teil 10: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-10-das-rundum-sorglos-backup\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-10-das-rundum-sorglos-backup\/\">Das Rundum-sorglos-Backup<\/a><\/strong><br>Teil 11: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-11-mail-abruf-mit-vielen-extras\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-11-mail-abruf-mit-vielen-extras\/\">Mail-Abruf mit vielen Extras<\/a><\/strong><br>Teil 12: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-12-mein-alltag-mit-paperless-ngx\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-12-mein-alltag-mit-paperless-ngx\/\">Mein Alltag mit Paperless-ngx<\/a><\/strong><br>Teil 13: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-13-ein-quanten-code-fuer-das-papier-archiv\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-13-ein-quanten-code-fuer-das-papier-archiv\/\">Ein Quanten-Code f\u00fcr das Papier-Archiv<\/a><\/strong><br>Teil 14: <strong><a href=\"https:\/\/digital-cleaning.de\/?p=1819\">Automatisierte Ablage auf Speicherpfaden<\/a><\/strong><br>Teil 15: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-15-neue-funktion-fuer-das-verbinden-und-trennen-von-dokumenten\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-15-neue-funktion-fuer-das-verbinden-und-trennen-von-dokumenten\/\">Neue Funktion f\u00fcr das Verbinden und Trennen von Dokumenten<\/a><\/strong><br>Teil 16: <a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-16-dashboard-smarte-widgets-und-erweiterte-ansichten\/\"><strong>Dashboard, smarte Widgets und erweiterte Ansichten<\/strong><\/a><br>Teil 17: <strong><a href=\"https:\/\/digital-cleaning.de\/?p=2105\">Unterordner des consume-Verzeichnisses nutzen<\/a><\/strong><br>Teil 18: <a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-18-synology-nas-ohne-docker-nutzen\/\"><strong>Paperless-ngx auf Synology\/NAS ohne Docker nutzen<\/strong><\/a><br>Teil 19: <a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-19-praxisbeispiel-kleine-hausverwaltung\/\" data-type=\"post\" data-id=\"2648\"><strong>Praxisbeispiel \u2013 kleine Hausverwaltung<\/strong><\/a><br>Teil 20: <a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-20-dokumente-per-mail-aus-dem-heimnetz-versenden\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-20-dokumente-per-mail-aus-dem-heimnetz-versenden\/\u2197\"><strong>Dokumente per Mail aus dem Heimnetz versenden<\/strong><\/a><br>Teil 21: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-21-die-1-klick-sicherung-mit-allem-drum-und-dran\/\">Die 1-Klick-Sicherung mit allem Drum und Dran<\/a><\/strong><br>Teil 22: <strong><a href=\"https:\/\/digital-cleaning.de\/?p=2911\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/?p=2911\">Update der Datenbank &#8211; super-simpel<\/a><\/strong><br>Teil 23: <strong><a href=\"https:\/\/digital-cleaning.de\/?p=2962\">Neuer PDF-Editor<\/a><\/strong><br>Teil 24: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-24-sofortinstallation\/\">Der Mega-All-in-One-Befehl f\u00fcr die Sofortinstallation<\/a><\/strong><br>Teil 25: <strong><a href=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-25-der-briefmarken-pc\/\" data-type=\"link\" data-id=\"https:\/\/digital-cleaning.de\/index.php\/paperless-ngx-teil-25-der-briefmarken-pc\/\">Der Briefmarken-PC f\u00fcr die Weitergabe<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer sich auf YouTube Anleitungen f\u00fcr die Installation von Paperless-ngx anschaut, wird rasch das Gef\u00fchl erhalten, dass es sich um eine Sache f\u00fcr IT-Nerds handelt. In Wahrheit gen\u00fcgen zwei einfache Befehle &#8211; und schon funktioniert Paperless-ngx auf dem Raspberry Pi. Das schafft jeder &#8211; selbst wenn er bisher noch nie etwas mit der kleinen Box zu tun hatte. Auf welchen Raspberry-Pi-Modellen l\u00e4uft Paperless-ngx? Paperless-ngx ist gen\u00fcgsam. Ich selbst habe bisher einen Raspberry Pi 4 mit 4 GB bzw. den Tastatur-RPi 400 eingesetzt &#8211; auch mit rund 1.000 Dokumenten lief Paperless absolut rund zu z\u00fcgig. (Die 64-bit-Variante des Betriebssystems muss installiert sein.) 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\u00fcrbaren Unterschied. Tipp f\u00fcr Neu-Anschaffung Falls man noch gar keinen Raspberry Pi besitzt, so k\u00f6nnte das 400-er-Modell eine gute Wahl sein, das man aktuell z.B. bei Berrybase f\u00fcr 79 Euro erh\u00e4lt (ist auch lieferbar). Der 400-er hat eine h\u00f6here Taktung als der 4-er und verf\u00fcgt ebenfalls \u00fcber 4 GB. Ferner spart man sich das Geh\u00e4use und den L\u00fcfter &#8211; beim 400-er reicht die passive K\u00fchlung vollkommen. Die Tastatur ist ja auch dabei, so dass man quasi einen Zweit-PC f\u00fcr Homeoffice, Homeschooling oder das G\u00e4stezimmer hat. Ansonsten fallen ja gerade die Preise durch das Erscheinen des 5-er-Modells, so dass man bei eBay oder Kleinanzeigenm\u00e4rkten f\u00fcndig werden kann. Welches (64-Bit-)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\u00e4uft nur noch mit der neuesten Version (&#8222;Bookworm&#8220;), auf dem 4-er k\u00f6nnte man es auch bei der bisherigen Version (&#8222;Bullseye&#8220;) belassen. Die Desktop-Oberfl\u00e4che ben\u00f6tigt man nicht unbedingt, sie hat aber einige Vorteile, wie wir beim sp\u00e4teren Backup-Kapitel noch sehen werden. Achtung: 32-Bit-Systeme werden von Paperless-ngx nicht mehr unterst\u00fctzt! Welche Speichergr\u00f6\u00dfe ben\u00f6tigt man? Fr\u00fcher ben\u00f6tigte man f\u00fcr den Betrieb eines Raspberry Pi zwingend eine microSD-Karte &#8211; 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\u00f6nlich dabei bleibe. PDF-Dokumente nehmen meist nicht viel Raum ein, so dass eigentlich eine SD-Karte ab 16 GB reichen w\u00fcrde. Empfehlenswert ist aber eine Gr\u00f6\u00dfe von mindestens 32 GB, lieber 64 GB und mehr. Dann ist auch gen\u00fcgend Platz f\u00fcr Export- und Backup-Vorhaben. Vorbereitung: Falls Docker noch nicht vorhanden Sofern man bereits mit Docker arbeitet, kann dieser Abschnitt \u00fcbersprungen werden, dann direkt zu &#8222;Installation mit Docker-Compose&#8220; gehen. Alle folgenden Befehle werden im Terminal ausgef\u00fchrt. Dieses also aufrufen und die Befehle einfach per Kopierfunktion \u00fcbertragen. Diesen Abschnitt halte ich kurz, bei der eigentlichen Installation kommen einige Erl\u00e4uterungen. Die Ausf\u00fchrung des n\u00e4chsten Befehls dauert ein wenig, also 1, 2 Minuten warten: Im Beispiel ist der Nutzername &#8222;pi&#8220; &#8211; sofern ein anderer verwendet wird, den Namen austauschen: Der folgende Befehl wird eigentlich erst nach einem Neustart wirksam, zahlt sich sp\u00e4ter aus, jetzt m\u00fcssen wir nicht neu booten: Und noch: Damit sind die Vorbereitungen eigentlich fertig. Wenn man m\u00f6chte, kann man einen kurzen Test machen, ob Docker reagiert: Da kommen jetzt ein paar S\u00e4tze, wenn alles korrekt l\u00e4uft. Installation mit Docker-Compose* *) Hinweis: Inzwischen wurde der urspr\u00fcnglich getrennte Befehl &#8222;docker-compose&#8220; in Docker integriert, so dass die zus\u00e4tzliche Installation nicht mehr notwendig ist. Der Befehle wird jetzt ohne Bindestrich geschrieben = &#8222;docker compose&#8220;. Darauf bei der nachfolgenden Installation bitte achten. Nun zur eigentlichen Installation: Zun\u00e4chst m\u00fcssen wir &#8222;docker-compose&#8220; auf dem Raspberry Pi installieren &#8211; das erledigt die folgende Zeile. (W\u00e4hrend des Vorgangs h\u00e4lt das Skript kurz an und fragt &#8222;no\/yes&#8220; &#8211; dann einfach &#8222;y&#8220; eingeben und Enter.) Optional: Man kann seinen Nutzernamen (im Beispiel &#8222;pi&#8220;) noch kurz in die Berechtigungsgruppe &#8222;docker&#8220; aufnehmen lassen, dann spart man sich sp\u00e4ter gelegentlich ein &#8222;sudo&#8220; oder &#8222;sudo su&#8220;. Falls man das macht, so muss man sich danach kurz neu anmelden oder die Raspberry Pi neu starten, damit die Berechtigung zugewiesen wird. Das Installationsskript ausf\u00fchren Jetzt wird ein Skript geladen und ausgef\u00fchrt. Dabei werden ein paar Punkte abgefragt, die gleich noch beschrieben werden. Die Zeile wird ohne &#8222;sudo&#8220; eingegeben, die darin aufgef\u00fchrten Anf\u00fchrungszeichen m\u00fcssen erhalten bleiben: Die Abfragen Zeile f\u00fcr Zeile erscheinen Abfragen mit vorgegebenen Werten, die man eigentlich nur durch Return best\u00e4tigen muss. An zwei, drei Stellen sollten Anpassungen vorgenommen werden. Im Beispiel wird davon ausgegangen, dass man den Benutzernamen &#8222;pi&#8220; verwendet (falls Udo oder PipiLangstrumpf &#8211; dann entsprechend ersetzen): So, nun muss man warten. Wenn man Tika (und damit Gotenberg) bei den Abfragen installiert hat, dauert der Abruf aller Dateien durchaus 10 &#8211; 15 Minuten &#8211; aber daf\u00fcr hat man ja seinen Espresso zur Hand. Nach der Installation Der gro\u00dfe Moment ist gekommen &#8211; Paperless-ngx kann in Betrieb genommen werden. Die IP-Adresse im heimischen Netzwerk ben\u00f6tigen wir nun noch. Die erh\u00e4lt man \u00fcber den einfachen Befehl Das Ergebnis kann dann so aussehen: Oder man ruft kurz das Backend seines Modems\/seiner Fritz!Box auf &#8211; dort steht die ben\u00f6tigte Ziffernfolge ebenfalls. So, jetzt weg vom K\u00e4stchen &#8211; hin zum &#8222;normalen&#8220; Browser auf dem PC, dort die IP gefolgt von &#8222;:8000&#8220; eingeben. Im Beispiel &#8222;192.168.178.116:8000&#8220;. Die Anmeldung erfolgt mit dem gew\u00e4hlten Passwort. Nun kann das Abenteuer beginnen! Wie in den vorherigen Teilen beschrieben, k\u00f6nnen Dokumente aufgenommen und verwaltet werden. Aber wir sind noch lange nicht am Ende der Reise &#8211; denn Paperless-ngx bietet noch eine Vielzahl weiterer M\u00f6glichkeiten, um die wir uns in den n\u00e4chsten Kapiteln k\u00fcmmern werden.<\/p>\n","protected":false},"author":1,"featured_media":1624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[97,100,103,102,98,99,101],"class_list":["post-1623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","tag-2e3440ff","tag-81a1c1","tag-88c0d0","tag-a3be8c","tag-d8dee9","tag-d8dee9ff","tag-eceff4"],"_links":{"self":[{"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/posts\/1623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/comments?post=1623"}],"version-history":[{"count":14,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/posts\/1623\/revisions"}],"predecessor-version":[{"id":3049,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/posts\/1623\/revisions\/3049"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/media\/1624"}],"wp:attachment":[{"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/media?parent=1623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/categories?post=1623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digital-cleaning.de\/index.php\/wp-json\/wp\/v2\/tags?post=1623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}