Paperless-ngx, Teil 24: Der Mega-All-in-One-Befehl für die Sofortinstallation (Beta)

Mit einem einzigen Befehl nicht nur Paperless-ngx installieren, sondern auch alle zusätzlichen Funktionen aktivieren? So, dass man bereits nach wenigen Minuten die ersten Dokumente in das System schieben kann, die Texterkennung funktioniert (für deutsche und englische Texte), Dateiverzeichnisse zugänglich sind, ein Admin-Konto angelegt ist? Auch Bilder und gespeicherte Mails aufgenommen werden können? Und dazu noch das neue Raspberry Pi OS Trixie zum Einsatz kommen kann und die neueste Datenbank-Version 17 von Postgres (Unterstützung bis 2029) zum Einsatz kommt? Auch die Docker-Installation geschieht durch diesen Befehl, – und man muss sich um nichts Gedanken machen. Ja, das funktioniert.

Das vorkonfigurierte Paket

In Teil 5 der Serie habe ich die „traditionelle“ Vorgehensweise zur Installation von Paperless-ngx auf einem Raspberry Pi beschrieben. Durch eine Reihe von einzelnen Schritten und Abfragen kann man das System den eigenen Wünschen anpassen – etwa auf die Texterkennung in MS-Word-Dokumenten verzichten, um Speicher zu sparen. Es hat sich aber gezeigt, dass viele Anwender:innen das „volle Paket“ haben möchten, um alle Funktionen zu nutzen, die das Dokumentenmanagementsystem bietet. Daher habe ich die Installation vorkonfiguriert mit allen Parametern, die in meiner Serie benutzt werden. So wird das Medienverzeichnis beispielsweise auf eine Weise angelegt, die direkt über den Dateimanager zugänglich ist. Man kommt also zu jedem Zeitpunkt an seine Daten, Dokumente, Unterverzeichnisse ran – selbst wenn Paperless-ngx einmal nicht funktionieren sollte. Auch die 1-Klick-Sicherung mit Versionierung klappt und die anderen empfohlenen Backup-Methoden. Nach wie vor kann man also alles, was in der umfangreichen Artikelserie beschrieben wird mit der neuen Installation nachvollziehen, ohne etwas ändern zu müssen. Natürlich kann man den Befehl gemäß den eigenen Wünschen anpassen, aber gedacht ist er für absolute Beginner. Befehl kopieren und sofort ein vollständig funktionierendes System vor sich haben, das ist das Ziel. Bei mir funktioniert der Befehl zwar, aber ich möchte abwarten, welche Rückmeldungen ich erhalte.

Auf welchem Raspberry Pi funktioniert es?

Sehr gut läuft Paperless-ngx bereits auf einem Raspberry Pi 4 mit 4 GB. Mit dieser Hardware habe ich den Befehl auch bei mir getestet (mein Hauptarchiv liegt auf einem Raspberry Pi 5 mit 8 GB und 500 GB NVMe M.2 SSD). Wer noch kein Gerät hat, dem empfehle ich einen Raspberry Pi 400. Der ist aktuell neu für ca. 70 Euro zu haben und läuft „lautlos“, da keinen Ventilator zur Kühlung benötigt wird. Und ein (Tastatur-)Gehäuse ist auch direkt dabei.

Ob man das Betriebssystem auf eine microSD-Karte spielt oder einen USB-Stick ist nicht so wichtig. Wichtiger ist, dass das Speichermedium „schnell“ ist – man sollte also keine Billigvarianten verwenden.

Installiert sollte auf dem Raspberry Pi das neueste 64-Bit-Betriebssystem (Trixie) mit Desktop sein. Wenn man sich ein Starter-Kit von einem Raspberry Pi kauft, ist dieses bereits auf der beiliegenden SD-Karte installiert, ansonsten überspielt man kurz die aktuelle Version. Aber sogar das muss man nicht mehr machen: Sofern man ein LAN-Kabel in den Raspberry Pi steckt, holt sich dieser das neue System über das Internet und installiert es.

Der Stromverbrauch bei allen Raspberry-Pi-Geräten ist mit ca. 4 – 6 W derart gering, dass man Paperless-ngx durchgehend laufen lassen kann und so zu jeder Zeit und auch von unterwegs Zugriff auf alle Dokumente hat.

Aber auf YouTube sieht das immer so kompliziert aus. Und braucht man nicht auch ein NAS?

Ich weiß – es schlackern einem die Ohren, wenn da von Portainern, Stacks, Proxmox, Stacks und weiß der Geier von was noch die Rede ist. Ein simpler Befehl gibt halt keine Einschaltquoten. „Nerds“ werden in dem komplexen Vorgehen Vorteile sehen – ich sehe keine. Gegen ein gutes NAS für Backups habe ich nichts – aber man benötigt die teuren Geräte nicht für Paperless-ngx. Selbst wenn man tausende von Dokumenten verwalten möchte. Im Gegenteil, die Power eine Raspberry Pi kann bei der Verarbeitung einem einfacheren NAS sogar überlegen sein. Nebenbei: Der Raspberry Pi eignet sich auch hervorragend für Backup-Aufgaben, wenn man noch eine USB-SSD anschließt. Alternativ kann man auch gebrauchte ThinClients von Ebay nehmen, wie ich in meiner „25-Euro-NAS“-Serie gezeigt habe. (Ich will hier ja keine Werbung für eine bestimmte Hardware machen. Es geht mir nur darum, Anwendern, die noch keine Erfahrung mit Homeservern haben, etwas die Sorge zu nehmen, dass ein preisgünstiges Gerät nicht ausreicht.)

Wie wird der Befehl eingegeben?

Raspberry Pi starten, auf dem Gerät den Browser starten (der ist schon installiert), diese Webseite aufrufen (1), zur Text-Box scrollen, in der rechten Ecke ist ein Kopier-Symbol (2), das anklicken. Dann Terminal aufrufen (3) und ins Terminal den gesamten Text kopieren (4) – am einfachsten mit der rechten Maustaste und „einfügen“. Enter drücken. Fertig.

Damit wird die gesamte Installation in Gang gesetzt. Es muss lediglich 1 x neu gebootet werden (nach ca. 2 Minuten). Das versuche ich noch zu automatisieren, aber momentan gibt man einfach ein:

sudo reboot

Wenn der Raspberry Pi hochgefahren ist:

cd paperless-ngx && docker compose up -d

Durch diesen Befehl wird der Code von den Servern geholt und alle notwendigen Dienste werden gestartet. Das hat bei mir knapp 7 Minuten gedauert, dann ist alles erledigt. (Falls man langsame Speichermedien benutzt, dauert alles ein paar Minuten länger.)

Aufgerufen wird Paperless-ngx in einem Browser auf einem beliebigen Gerät mit [IP-des-Geräts]:8011, also z. B. http://192.168.178.77:8011.
Beim ersten Start benötigt das System 2 – 3 Minuten, bis es hochgefahren ist – also nicht ungeduldig werden :-).
Nutzername: admin, Passwort: admin (und natürlich dann in den Einstellungen ändern nach dem ersten Login).

Ein Befehl – zwei Varianten

Variante 1: mit Docker-Installation

Wenn man Raspberry Pi OS frisch startet und bisher noch keine Homeserver-Anwendungen genutzt hat, so ist dieser Befehl die richtige Variante. In einem Vorschub installiert er gleich Docker mit und geht dann nahtlos zur Installation von Paperless-ngx über.

bash -c 'set -e; SCRIPT_MARKER="/tmp/paperless_install_stage2"; if [ ! -f "$SCRIPT_MARKER" ]; then echo "=== Paperless-ngx Installation - Stage 1 (Mit Office-Support) ==="; sudo apt update && sudo apt install -y ca-certificates curl extrepo && sudo extrepo enable docker-ce && sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && sudo systemctl enable docker && sudo systemctl start docker && sudo usermod -aG docker $USER && mkdir -p ~/paperless-ngx/{data,media,consume,pgdata} && cd ~/paperless-ngx && cat > docker-compose.yml << "EOF"
services:
  broker:
    image: redis:alpine
    restart: unless-stopped

  db:
    image: postgres:17
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  paperless-ngx:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - tika
      - gotenberg
    ports:
      - 8011:8000
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperless
      PAPERLESS_DBPASS: paperless
      PAPERLESS_MEDIA_ROOT: /usr/src/paperless/media
      PAPERLESS_DATA_DIR: /usr/src/paperless/data
      PAPERLESS_OCR_LANGUAGE: deu+eng
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: admin
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_USER_ARGS: "{\"continue_on_soft_render_error\": true}"
      # Office Support Konfiguration
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_GOTENBERG_ENDPOINT: http://gotenberg:3000

  tika:
    image: apache/tika:latest
    restart: unless-stopped

  gotenberg:
    image: gotenberg/gotenberg:latest
    restart: unless-stopped
    command: 
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

volumes:
  pgdata:
EOF
touch "$SCRIPT_MARKER" && cat > ~/.config/autostart/paperless-installer.desktop << "AUTOSTART"
[Desktop Entry]
Type=Application
Name=Paperless Installer Stage 2
Exec=lxterminal -e bash -c "cd ~/paperless-ngx && docker compose up -d && sleep 3 && echo && echo \"=== Installation abgeschlossen! ===\" && echo \"Paperless-ngx läuft jetzt auf: http://\$(hostname -I | awk \"{print \\\$1}\"):8011\" && echo \"Standard-Login: admin / admin\" && echo \"WICHTIG: Bitte ändern Sie das Passwort!\" && echo \"Dokumente-Ordner: ~/paperless-ngx/consume\" && echo && docker compose ps && rm ~/.config/autostart/paperless-installer.desktop && rm /tmp/paperless_install_stage2 && echo && echo \"Drücken Sie ENTER zum Schließen...\" && read"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
AUTOSTART
echo "" && echo "=== Stage 1 abgeschlossen - System wird neu gestartet ===" && echo "Nach dem Neustart wird die Installation automatisch fortgesetzt..." && sleep 3 && sudo reboot; else echo "Stage 2 wurde bereits ausgeführt oder Marker existiert."; fi'

Variante 2: ohne Docker-Installation

Sofern bereits andere Dienste auf die Raspberry Pi laufen, die Docker mit docker-compose verwenden, ist die Installation von Docker unnötig. Daher reicht ein kürzerer Befehl und die Installationszeit sollte sich entsprechend verringern:

bash -c 'set -e; SCRIPT_MARKER="/tmp/paperless_install_stage2"; if [ ! -f "$SCRIPT_MARKER" ]; then echo "=== Paperless-ngx Installation - Stage 1 (Ohne Docker-Installation, mit Office-Support) ==="; mkdir -p ~/paperless-ngx/{data,media,consume,pgdata} && cd ~/paperless-ngx && cat > docker-compose.yml << "EOF"
services:
  broker:
    image: redis:alpine
    restart: unless-stopped

  db:
    image: postgres:17
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  paperless-ngx:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - tika
      - gotenberg
    ports:
      - 8011:8000
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperless
      PAPERLESS_DBPASS: paperless
      PAPERLESS_MEDIA_ROOT: /usr/src/paperless/media
      PAPERLESS_DATA_DIR: /usr/src/paperless/data
      PAPERLESS_OCR_LANGUAGE: deu+eng
      PAPERLESS_ADMIN_USER: admin
      PAPERLESS_ADMIN_PASSWORD: admin
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_USER_ARGS: "{\"continue_on_soft_render_error\": true}"
      # Office Support Konfiguration
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_GOTENBERG_ENDPOINT: http://gotenberg:3000

  tika:
    image: apache/tika:latest
    restart: unless-stopped

  gotenberg:
    image: gotenberg/gotenberg:latest
    restart: unless-stopped
    command: 
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

volumes:
  pgdata:
EOF
touch "$SCRIPT_MARKER" && cat > ~/.config/autostart/paperless-installer.desktop << "AUTOSTART"
[Desktop Entry]
Type=Application
Name=Paperless Installer Stage 2
Exec=lxterminal -e bash -c "cd ~/paperless-ngx && docker compose up -d && sleep 3 && echo && echo \"=== Installation abgeschlossen! ===\" && echo \"Paperless-ngx läuft jetzt auf: http://\$(hostname -I | awk \"{print \\\$1}\"):8011\" && echo \"Standard-Login: admin / admin\" && echo \"WICHTIG: Bitte ändern Sie das Passwort!\" && echo \"Dokumente-Ordner: ~/paperless-ngx/consume\" && echo && docker compose ps && rm ~/.config/autostart/paperless-installer.desktop && rm /tmp/paperless_install_stage2 && echo && echo \"Drücken Sie ENTER zum Schließen...\" && read"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
AUTOSTART
echo "" && echo "=== Stage 1 abgeschlossen - System wird neu gestartet ===" && echo "Nach dem Neustart wird die Installation automatisch fortgesetzt..." && sleep 3 && sudo reboot; else echo "Stage 2 wurde bereits ausgeführt oder Marker existiert."; fi'

Den Code möchte ich noch optimieren. Gerne nehme ich dazu Eure Tipps an. Wie immer gilt: Ich gebe das hier so weiter, wie das bei mir klappt. *)

Ein Dokument zur Erklärung, wie der Befehl funktioniert, kann abgerufen mit diesen Links:

PDF-Format
EPUB-Format

*) Ab und zu – sehr selten – erhalte ich eine Mail mit Vorwürfen, dass etwas auf dem eigenen Gerät nicht so klappt, wie ich das hier beschreibe. Ich bin kein IT-Berater – ich gebe das so weiter, wie ich es kann, aber man muss selbst entscheiden, ob man das übernehmen möchte. Das nur mal nebenbei … 😉

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
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
Teil 19: Praxisbeispiel – kleine Hausverwaltung
Teil 20: Dokumente per Mail aus dem Heimnetz versenden
Teil 21: Die 1-Klick-Sicherung mit allem Drum und Dran
Teil 22: Update der Datenbank – super-simpel
Teil 23: Neuer PDF-Editor
Teil 24: Der Mega-All-in-One-Befehl für die Sofortinstallation
Teil 25: Der Briefmarken-PC für die Weitergabe

23 Kommentare

  • T-Punkt

    Hallo Herbert,

    nicht nur in meinem, sondern – da werden mir Deine Mitleser sicher Recht geben – auch in deren Namen erstmal ein dickes Dankeschön für Deine ausführlichen Beschreibungen und Hilfestellungen rund um paperless-ngx!

    Nachdem die Daten (inkl. Konfiguration) meiner bisherigen paperless-ngx Umgebung, die aus einem Docker Stack auf einer Ubuntu-VM auf Proxmox läuft, von einem Tag auf den anderen (nehme an, da war Watchtower am Werk) weg waren und ich einen Benutzer anlegen sollte, bin ich sehr daran interessiert, möglichst einfach wieder an ein laufendes paperless-ngx auf o.g. System zu kommen, dass sich dann ebenso einfach aktualisieren lässt. Gerne auch ohne expliziten Stack.

    Die auf dieser Seite beschriebene Verfahrensweise sollte doch auch auf meiner Umgebung funktionieren oder ist diese speziell und nur für einen Pi gedacht?

    VG
    T-Punkt

    • Herbert

      Danke für die nette Rückmeldung! Prinzipiell sollte das klappen, ein bisschen was ist speziell auf den Raspberry Pi ausgerichtet, aber wenn die yml damit korrekt angelegt wird, dann kannst du die Container ja mal starten.

  • Adolf Brings

    Guten Tag Herr Hertramph, ich verfolge seit Wochen Ihren Blog.
    Meine Systeme Linuxmint 22 und Raspberry 5 (Trixie-Anleitung23)
    Paperless-ngx zweimal erfolgreich installiert.
    a.) Anleitung 1-22
    b.) Anleitung 23
    Etwas Zeit verloren , weil der bisherige Weg über Putty nicht funktionierte.
    Meine Augen (Jahrgang 1935) entdecken erst später den Hinweis
    über Raspberry auf Ihre Webseite und nicht wie bisher über Linuxmint 22 zu gehen.
    Die Installation funktioniert danach für einen Noob !! hervorragend.
    Bisher ist es mir nicht gelungen meinen Hp-scan mit consume zu konfigurieren
    sane und syncthing heute auf Raspi 5 Triexi installiert .
    Über einen Script würde ich mich sehr freuen. Mit den Besten Grüßen AB

    • Herbert

      Danke für die nette Rückmeldung! Prima, dass alles funktioniert hat! Einen HP-Scanner sollten wir auch zum Laufen bringen. Ist er denn über das WLAN erreichbar? Oder wird er mit einem USB-Kabel angeschlossen? Unter Linux Mint: Wird der Scanner dort erkannt?

      • AB

        Guten Tag,
        HP Druckerscanner funktionieren
        Lösungsweg:
        Wenn xsane auf Linuxmint22 funktioniert, muss xsane auch auf dem Raspberry funktionieren.
        Das Problem wie Druckerbefehle im Terminal umsetzen (Als Noob nicht so einfach)

        Raspi 5 Paperless-ngx – Dokumente scannen mit hp-scanner
        Folgende Terminal Befehle im Internet u.a. Linux Guide gefunden
        Terminal
        pi@raspberrypi:~/paperless-ngx/consume $

        a.) Einzug hp-scan –adf -o excel.pdf –resolution 100 –mode color
        b.) Flachbett hp-scan -o Titel.pdf –resolution 100 –mode color
        Da im Hause zwei hp-scanner sind kann über
        —————–
        | SELECT DEVICE |
        —————–
        der Drucker ausgewählt werden

  • Adolf Brings

    Der Drucker ist über Wlan erreichbar
    ~/paperless-ngx $ ls
    scanimage –format=png > test.png
    scanimage: rounded value of br-x from 215.9 to 215.9
    scanimage: rounded value of br-y from 297.011 to 297.011
    consume data docker-compose.yml media pgdata pronova.png test.png
    oder
    pi@raspberrypi:~/paperless-ngx $ hp-scan
    —————–
    | SELECT DEVICE |
    —————–
    Num Scan device URI
    ——– —————————————————————–
    0 escl:https://192.168.185.127:443
    1 hpaio:/net/hp_laserjet_mfp_m28-m31?ip=192.168.185.127&queue=false
    2 airscan:e2:HP LaserJet MFP M28w (753C36)
    3 airscan:w4:Samsung M288x Series (SEC30CDA7FD9C4E)
    Enter number 0…3 for device (q=quit) ?3
    warning: No destinations specified. Adding ‚file‘ destination by default.
    Using device airscan:w4:Samsung M288x Series (SEC30CDA7FD9C4E)
    Opening connection to device…
    Resolution: 300dpi
    Mode: gray
    Compression: JPEG
    Scan area (mm):
    Top left (x,y): (0.000000mm, 0.000000mm)
    Bottom right (x,y): (215.976196mm, 297.992798mm)
    Width: 215.976196mm
    Height: 297.992798mm
    Destination(s): file
    Output file:
    warning: File destination enabled with no output file specified.
    Setting output format to PNG for greyscale mode.
    warning: Defaulting to ‚/home/pi/paperless-ngx/hpscan001.png‘.

    Warming up…

    Scanning…
    Reading data: [******************************************] 100% 8.6 MB
    Read 8.6 MB from scanner.
    Closing device.

    Outputting to destination ‚file‘:

    Done.

  • Adolf Brings

    Nachtrag
    paperless-ngx aufgerufen mit folgendem Ergebnis
    Dateiaufgaben
    Filtern nach
    Automatisch aktualisieren

    Fehlgeschlagen2
    Abgeschlossen
    Gestartet
    In Warteschlange

    Name Ausgestellt Ergebnisse Aktionen
    pronova.png 05.11.25, 09:19
    pronova.png: Unsupported mime type application/oct…

    pronova.png 04.11.25, 12:10
    pronova.png: Unsupported mime type application/oct…

    • Herbert

      Hm, so auf Anhieb kann ich leider nicht viel dazu sagen. Kann aber gut sein, dass ein Leser das gleiche Problem hat und dann die Lösung hier schreiben kann.

  • V. S.

    Hallo Herbert,
    einen ganz herzlichen Dank für die Bereitstellung des Scripts. Hiermit bin ich erfolgreich „umgezogen“ aus einer Proxmox-scriptbasierten Umggebung zur offiziellen Docker Version. Es hat auf anhieb gejklappt.

    Kleine Probleme gibt es:
    – In meiner bisherigen Installation wurden .docx Dateien verarbeitet. Mit „Deiner“ Variante scheint es nicht zu funktionieren (die services gotenberg und tika laufen….)
    – Das installieren mit dem rooot user, im home/root Verzeichnis ist schwierig bezüglich der samba freigabe. Wenn ich also von windows 11 auf das compose verzeichnis zugreifen will, will windows es partout nicht. Ich habe nun das Ganze „paperless“ Verzeichnis auf /srv/ verschoben. Oder gibt es hierfür eine andere Lösung?

    Vielen Dank schon mal für die Hilfe

    • Herbert

      Danke für die Rückmeldung! Zu Deinem Problem: Du solltest das Skript im /home/user-Verezeichnis starten, also z. B. „/home/pi/“ – dann wird dort ein Unterordner für alles angelegt („~/paperless-ngx“) – damit ist der Zugang für den consume-Ordner problemlos möglich. – Das mit den docx-Dateien schau ich mir an, vielleicht komme ich da noch auf eine Lösung.

    • Herbert

      Zu Deinem docx-Problem – tausche bei Gotenberg mal latest gegen die Version davor aus

      gotenberg:
      image: gotenberg/gotenberg:7.11
      restart: unless-stopped
      command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

      Funktioniert es damit?

      • V.S.

        Danke,
        Gotenberg 7.11 gibt es nicht, aher habe ich es mit 7.10.1 ausprobiert, leider kommt da der gleiche Fehler bei den .docx Dateien wie bei latest….

      • V.S

        …ich habe es auch mit den 8er Versionen ausprobiert. Leider kommt immer der gleiche Fehler:
        „document to PDF: [Errno 111] Connection refused“. Am Dokument liegt es nicht, ich habe das gleiche Dokument auch auf meiner alten Installation probiert (hier wird die neuste gotenberg und tika benutzt).

        • Herbert

          Danke Dir für den Test. Das Problem wird auch in den Foren beschrieben. Ich vermute, dass sich da etwas mit dem nächsten Update bessern könnte, die Entwickler sind da oft sehr flott.

          • v.s.

            Hallo Herbert,
            ich habe auf 2.19.5. geupdatet, leider erscheint ncoh immer der gleiche Fehler beim Füttern mit docx-Dateien.
            VG V.S.

  • Ingmar

    Auch von meiner Seite aus vielen Dank für die ausführliche Anleitung zu Paperless NGX.

    Da ich für meinen Teil auch gern sehen möchte welche Versionen der Komponenten gerade laufen habe ich ein kleines Script erstellt – das ich hier teilen möchte. Der Vorteil ist, dass man damit auch die Version sieht die sich z.B. hinter „latest“ verbirgt.
    Somit kann man vor Updates auch immer sehen, welche Komponenten liefen, falls es nach einem Update ein Problem gibt.
    Vielleicht ist es ja für den einen oder anderen hilfreich.

    — code für eine sh-Datei —
    #!/bin/bash

    echo „Versionen Paperless NGX und Komponenten:“

    sudo docker inspect webserver | grep -i image.version | sed -n ’s/.*“org.opencontainers.image.version“: „\([^“]*\)“.*/Version_Paperless NGX: \1/p‘
    sudo docker logs db 2>&1 | grep „starting Postgre“ | awk ‚{print „PostgreSQL_Version: “ $8,$9,$10}‘
    sudo docker exec tika ps -ef | grep „java -cp“ | awk ‚{print $10}‘ | sed -n ’s|.*-standard-\([0-9]\+\.[0-9]\+\.[0-9]\+\)\.jar.*|Tika_Version: \1|p‘
    sudo docker exec broker redis-cli INFO server | grep ^redis_version:
    sudo docker logs paperless-gotenberg-1 2>&1 | grep -i version: | sed ’s/^/Gotenberg_/‘
    — Ende —

    Die Aussage sieht dann so aus:

    Versionen Paperless NGX und Komponenten:
    Version_Paperless NGX: 2.19.5
    PostgreSQL_Version: 17.6 (Debian 17.6-2.pgdg13+1)
    Tika_Version: 3.2.3
    redis_version:8.2.3
    Gotenberg_Version: 8.24.0

  • Erich

    Hallo

    Erstmal Danke für die hilfreichen, ausführlichen Informationen in Deinem Blog.

    Ich habe heute den „Mega-All-in-One-Befehl“ für Paperless auf einem unbenutzten Pi5 angewendet. Primär wollte ich ihn einfach mal ausprobieren und versuchen, eine bestehende rund 6’000 Dokumente umfassende Instanz zu spiegeln.

    Zum Einsatz kamen der ‚exporter‘ Befehl auf der produktiven Instanz und der ‚importer‘ Befehl bei der Pi-Instanz. Die nach lokal heruntergeladenen Daten der produktiven Instanz habe ich mittels Filezilla in den Pi hochgeladen.

    Und jetzt kommt der eigentliche Grund meines Kommentares:

    Leider fehlt im „Mega-All-in-One-Befehl“ die Erstellung eines „export“ Ordners in welchem die Daten hochgeladen werden können um diese dann mittels ‚importer‘ in die neue Instanz zu ziehen.

    Um das zu realisieren habe ich im betreffenden Verzeichnis mittels ‚mkdir‘ einen Ordner erstellt und die ‚docker-compose.yml‘ entsprechend im Abschnitt ‚volumes‘ ergänzt.

    Der Abschnitt sieht bei mir jetzt so aus:
    volumes:
    – ./data:/usr/src/paperless/data
    – ./media:/usr/src/paperless/media
    – ./consume:/usr/src/paperless/consume
    – ./export:/usr/src/paperless/export

    Die letzte Zeile ist meine Ergänzung. Danach noch: ‚docker compose down‘ sowie ‚docker compose up -d‘ und in der Folge lief dann der ‚importer‘ fehlerfrei durch und nun habe ich zwei identische Instanzen und kann diese für was auch immer nutzen.

    Beste Grüsse

  • Bettina

    Hallo, erst mal vielen vielen herzlichen Dank für die ganzen Infos auf der Seite, das ist echt extrem hilfreich!

    Ich bin gerade dabei, das System auf einem Raspberry 5 aufzusetzen (ein Kit von berrybase), dementsprechend mit Skript 1 inklusive Docker. Hier schon mal die kurze Rückmeldung, dass der Befehl „“cd ~/paperless-ngx && docker compose up -d“ offenbar aufgrund der unterschiedlichen Rechte eine Fehlermeldung ergeben hat:

    bettina@raspberrypi:~ $ cd paperless-ngx && docker compose up -d
    unable to get image ‚ghcr.io/paperless-ngx/paperless-ngx:latest‘: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get „http://%2Fvar%2Frun%2Fdocker.sock/v1.51/images/ghcr.io/paperless-ngx/paperless-ngx:latest/json“: dial unix /var/run/docker.sock: connect: permission denied
    bettina@raspberrypi:~/paperless-ngx $ sudo cd paperless-ngx && docker compose up -d
    sudo: cd: Befehl nicht gefunden
    sudo: »cd“« ist ein Shell-internes Kommando, das nicht direkt gestartet werden kann.
    sudo: Die Option »-s« kann zum Start einer privilegierten Shell verwendet werden.
    sudo: Die Option »-D« kann zum Start des Programms im angegebenen Verzeichnis verwendet werden.

    Was hingegen problemlos durchläuft, ist die Variante User + Sudo:

    bettina@raspberrypi:/home $ cd ~/paperless-ngx/
    bettina@raspberrypi:~/paperless-ngx $ sudo docker compose up -d

    Ein Neustart war übrigens nicht erforderlich.

    • Herbert

      Danke Dir für Deine ausführliche Rückmeldung! Vielleicht kann ich den Artikel durch Deine Hinweise ergänzen. Prima, wenn jemand das ausprobiert und sagt, wie es bei ihm/ihr läuft!

Schreibe einen Kommentar zu T-Punkt Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert