Paperless-ngx Paperless-ngx Datensicherung

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

was genau macht der Befehl?
containername-von-postgres muss ich ersetzen durch paperless-db wahrscheinlich, oder?
 
Wenn der Container so heißt dann ja. Du musst auch /volume1/...../backup.sql ersetzen durch einen Pfad wo es gespeichert werden soll.
Der Befehl schreibt einen Export der Datenbank in die Datei backup.sql.
 
/usr/local/bin/docker exec paperless-ngx-db-1 pg_dump -c DB_NAME > /volume1/backup paperless/backup.sql

passt so?
 
Hast du einen Freigegeben Ordner mit dem Namen backup paperless? Wenn ja, dann /volume1/backup paperless/backup.sql. Aber ich würde eher /volume1/docker/paperless-ngx/backup.sql nutzen....
Und DB_NAME muss noch durch den DB Namen (paperless) ersetzt werden.
 
db:
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- /volume1/docker/paperless-ngx/pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
Steht in deinem Stack.....
Sorry, aber bisschen einarbeiten in das was man nutzt wäre nicht verkehrt.
 
Du hast recht, bin auch gewillt, aber wenn man nicht genau weiß, wo man anfangen soll, is das gar ned so einfach

ich hab jetzt die backup.sql, allerdings 0 byte groß

im Ausführungsergebnis zeigt er mir folgendes an, evtl. kann ich das auch ignorieren?
pg_dump: error: connection to database "paperless" failed: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" does not exist
 
ich bin Dir sehr dankbar für Deine Unterstützung

mein Befehl schaut folgendermaßen aus: /paperless/local/bin/docker exec paperless-ngx-db-1 pg_dump -c paperless > /volume1/docker/paperless-ngx/backup.sql
ist das korrekt jetzt?

Fehlermeldung im Ausführungsergebnis:
/bin/bash: /paperless/local/bin/docker: No such file or directory
 
Äh neee....
Bash:
/usr/local/bin/docker exec paperless-ngx-db-1 pg_dump -U paperless -c paperless > /volume1/docker/paperless-ngx/backup.sql
 
oje...herzlichen Dank für Deine Hilfe.

Und das backup der Datenbank ist jetzt ausreichend? Wie könnte ich das wiederherstellen?
 
Das Backup nennt man in dem Fall einen "Dump". Mit dem Dump kannst du die Tags und Zuordnungen der Dokumente wiederherstellen. Diesen Dump sicherst du gemeinsam mit "/volume1/docker/paperless-ngx" via Hyper Backup weg. Wie das Wiedereinspielen in eine postgres Datenbank funktioniert, kann ich dir leider nicht sagen, da ich stattdessen eine mariadb nutze. Sollte aber nicht sehr schwer sein.
Ich empfehle dir, das Ganze einmal mit einem Testsystem durchzuspielen (Sicherung & Restore). Ansonsten siehst du im Problemfall alt aus

EDIT: Wie der Dump wiedereingespielt werden kann, hat @alexhell bereits verlinkt. Hier der genaue Punkt: https://www.postgresql.org/docs/16/backup.html
 
Der genaue Befehle wäre:
Code:
/usr/local/bin/docker exec paperless-ngx-db-1 psql -U paperless -d paperless < /volume1/docker/paperless-ngx/backup.sql

Ich empfehle dir, das Ganze einmal mit einem Testsystem durchzuspielen (Sicherung & Restore). Ansonsten siehst du im Problemfall alt aus
Das würde ich dir auch empfehlen. Das ist immer gut, wenn man es schon mal gemacht hat
 
Was ich noch nicht verstehe:
Der document_exporter gibt mir zu jedem Dokument das Originalfile, das Archivfile und die Thumbnail aus.

Und das verstehe ich nicht: Mir wurden nur die Originalfiles gesichert. Ich muss nach document_importer alle Archiv- und Thumbnails neu erzeugen lassen. Was wegen erneutem OCR fast einen Tag gedauert hat.

Würde mich über einen Tipp dazu freuen, was ich evtl. falsch gemacht habe. Mein Kommando war schlicht
docker exec paperless document_exporter ../export

Aktuell sichere ich per Aufgabenplaner und bash-Script mit

docker exec paperless document_exporter ../export -c -nt -na -z --delete --no-progress-bar
 
Warum sicher du nicht einfach die Ordner per Hyper Backup o. ä.?
 
Ich habe es gerne so wie vom Entwickler empfohlen. Und Paperless hat sich mit dem document_exporter sicher was gedacht. Aber natürlich hast du recht, und ich kann es auf die einfache Tour erledigen. Ich probiere das mal aus, also nur \thumbnail und \archive zusätzlich im Skript zu sichern.
 
Zuletzt bearbeitet von einem Moderator:
Und das verstehe ich nicht: Mir wurden nur die Originalfiles gesichert. Ich muss nach document_importer alle Archiv- und Thumbnails neu erzeugen lassen. Was wegen erneutem OCR fast einen Tag gedauert hat.

Würde mich über einen Tipp dazu freuen, was ich evtl. falsch gemacht habe. Mein Kommando war schlicht
docker exec paperless document_exporter ../export

Aktuell sichere ich per Aufgabenplaner und bash-Script mit

docker exec paperless document_exporter ../export -c -nt -na -z --delete --no-progress-bar
Hi, falls dir das irgendwie hilft. Mein Skript sieht folgendermaßen aus:

Code:
#!/bin/bash

# Datenbankdump

# Pfad für den Datenbankdump
dump_pfad="/volume1/docker/Paperless-ngx/db_dump/"

# Schritt 1: Lösche Dateien, die älter als 28 Tage sind, im angegebenen Verzeichnis.
find "$dump_pfad" -mtime +28 -delete

# Schritt 2: Führe den PostgreSQL-Datenbankdump-Befehl aus und speichere ihn im angegebenen Pfad.
docker exec -i paperless-ngx-db-1 pg_dump -U paperless -d paperless > "${dump_pfad}$(date +%F_%a_%T_%Z)_backup.sql"

# Dokumentenexport

# Verzeichnis, aus dem das Backup ausgeführt werden soll
backup_dir="/volume1/Data/#recycle/test/compose/5"

# Name des Docker-Containers
container_name="paperless-ngx-webserver-1"

# Ausführendes Programm
program="document_exporter"

# Zielverzeichnis im Host, in das exportiert werden soll
source_dir="../export"

# Wechsel in das Verzeichnis
cd $backup_dir

# Führen Sie den Befehl im Docker-Container aus
sudo docker exec $container_name $program $source_dir -d
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat