Anleitung Backup/Restore Paperless ngx?

deltapapa

Benutzer
Mitglied seit
06. Jan 2019
Beiträge
111
Punkte für Reaktionen
5
Punkte
24
Moin Moin,
kurze Frage, nachdem heute morgen das Update von meinem Redis Broker schief gegangen ist (nach dem Update hat er den consume Ordner nicht mehr überwacht, ich glaube ich MUSS das Update über Portainer machen) habe ich mit dem Export etwas rumprobiert.
Über SSH klappt es, nun wollte ich das komfortabel über die Aufgabenplanung lösen. Aber das klappt irgendwie nicht, weil sudo ein Pw benötigt.
Habt ihr eine Idee, wie ich das lösen kann?

1708155749752.png
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Du musst die Aufgabe als root durchführen lassen, vermutlich ist da einer der Benutzer gesetzt. sudo braucht immer erweiterte Rechte („super user do“), wenn man weiß, was man tut, kann man das so im Aufgabenplaner umgehen.
 

deltapapa

Benutzer
Mitglied seit
06. Jan 2019
Beiträge
111
Punkte für Reaktionen
5
Punkte
24
Supi, hat geklappt, danke :)
 

Sweeny

Benutzer
Mitglied seit
20. Mrz 2013
Beiträge
62
Punkte für Reaktionen
0
Punkte
6
Hallo,

ich habe noch nicht viel Ahnung von Docker, betreibe Paperless NGX und Redis über den Container Manager auf meiner Synology - ohne Watchtower etc.

Was backupe ich:
  • Paperless-Ordner (data und media sind das) per HyperBackup auf dieselbe Synology
  • Container-Export (Container-Inhalt + Container-Einstellungen) von REDIS und Paperless über den Container Manager auf dieselbe Synolgoy
  • Backup der gesamten Synology auf externen Datenträger, der nur für die Backups angeschaltet wird, per HyperBackup

Zwei Fragen?
1. Reicht das so aus?
2. Zudem kann ich den Container-Export nur manuell anschmeißen - da bräuchte ich wohl noch ein Skript für den Aufgabenmanager. Gibt es da schon eines? Ist das so für mich nutzbar: https://www.synology-forum.de/threads/anleitung-backup-restore-paperless-ngx.129230/post-1147639 Will ja Container für Redis UND Paperless sichern

Viele Grüße

Alex
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Per Hyper Backup auf die gleiche DS ist kein Backup 😉 Media, Data und die Datenbank müssen gesichert werden, wenn das der Fall ist, reicht das aus, der Exporter ist dafür nicht mal mehr notwendig; es kann aber nicht schaden, über einen zweiten Weg zu sichern.

Das verlinkte Skript würde dir da helfen, ja. Bitte als root ausführen.
 

Sweeny

Benutzer
Mitglied seit
20. Mrz 2013
Beiträge
62
Punkte für Reaktionen
0
Punkte
6
Danke für Deine Antwort.

Media, Data und die Datenbank müssen gesichert werden, wenn das der Fall ist
Sind die denn alle in dem Docker-Ordner (dort habe ich Media und Data als Unterordner)? Ich nutze SQLITE. Im data-Ordner ist z.B. die Datei db.sqlite3

reicht das aus, der Exporter ist dafür nicht mal mehr notwendig; es kann aber nicht schaden, über einen zweiten Weg zu sichern.
Das habe ich, obwohl ich schon mehr recherchiert habe, noch nicht verstanden. Beim Exporter werden doch nur a) die Konfiguration des Dockers selbst und b) die reine Paperless-Dateien gesichert, oder? Also eben NICHT die Datenbank, meine PDFs etc.? Gerade b) könnte ich ja eh wieder aus dem Dockerhub ziehen bei einem Problem?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Der Exporter exportiert alle originalen Dokumente und die archivierte Version. In einer manifest.json werden die ganzen anderen Parameter der Dateien gesichert; man kann also per Importer auch alles wiederherstellen und in eine leere Datenbank integrieren.

Bei SQLite bin ich ein wenig überfragt, da aber kein eigener Container erzeugt wird, kann es sein, dass das schon ausreicht.
 
  • Like
Reaktionen: Sweeny

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Bei SQLite ist die Datenbank die .sqlite Datei. Bei paperless weiß ich es nicht genau, es kann aber sein, dass du zwei weitere DB Dateien hast. Die müsstest du auch sichern. Müsste .wal und .shm sein.
 

Sweeny

Benutzer
Mitglied seit
20. Mrz 2013
Beiträge
62
Punkte für Reaktionen
0
Punkte
6
ne, .wal und .shm habe ich dort nicht. Müssten die im selben Ordner sein?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Ja, aber die müssen bei einer SQLite Datenbank nicht dabei sein. Das sind Cache Dateien. Dann reicht die DB datei
 
  • Like
Reaktionen: Sweeny

unsicher

Benutzer
Mitglied seit
26. Dez 2009
Beiträge
79
Punkte für Reaktionen
7
Punkte
8
@Sweeny,

ich habe jahrelang eine Datensicherung auf eine externe Festplatte nachts durchgeführt per HyperBackup. Die Sicherungsaufgabe hat die HDD „aufgeweckt“, die Sicherung durchgeführt und nach einer Voreinstellung ging die HDD wieder in den Tiefschlaf.
Mittlerweile mache ich ein richtiges Backup auf meine alte DS, die bei meinen Schwiegereltern steht, also an einem anderen Ort.
Ich sichere alle Ordner, die man per HyperBackup auswählen kann.
 

asef

Benutzer
Mitglied seit
15. Feb 2015
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
alles auszuwählen reicht aus um alles wieder relativ einfach wiederherzustellen? Incl. Docker und settings,.... (ich habe noch ne alte Synology auf 6.2 die kann anscheinend kein komplettes Backup)
 
Zuletzt bearbeitet von einem Moderator:

wooohooo

Benutzer
Mitglied seit
25. Mrz 2014
Beiträge
13
Punkte für Reaktionen
13
Punkte
3
Ich habe ein Problem mit dem Export, welchen ich über den Aufgaben Manager ausführe. Hat jemand eine Idee?

Wenn ich -z dahinter hänge, sieht der Fehler wie folgt aus:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/paperless/export/export-2024-05-06.zip'

Wenn ich das -z weglasse, kommt folgende Fehlermeldung:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/paperless/export/2023-03-16 DATEINAMEXYZ_2022.pdf'

Beim Sanity Check gibt es keine Auffälligkeiten

Das script wird als root ausgeführt.

Script:
#!/bin/bash
cd /volume2/docker/paperless-ngx/
sudo docker exec paperless-ngx-webserver-1 document_exporter ../export/



0%| | 0/1490 [00:00<?, ?it/s]
2%|▏ | 31/1490 [00:00<00:04, 306.13it/s]
4%|▍ | 62/1490 [00:00<00:04, 306.50it/s]
6%|▌ | 93/1490 [00:00<00:05, 272.70it/s]
8%|▊ | 126/1490 [00:00<00:04, 292.68it/s]
10%|█ | 156/1490 [00:00<00:04, 289.89it/s]
13%|█▎ | 192/1490 [00:00<00:04, 312.31it/s]
15%|█▌ | 228/1490 [00:00<00:03, 324.66it/s]
18%|█▊ | 264/1490 [00:00<00:03, 334.59it/s]
20%|██ | 299/1490 [00:00<00:03, 338.58it/s]
22%|██▏ | 335/1490 [00:01<00:03, 343.44it/s]
25%|██▍ | 370/1490 [00:01<00:03, 344.83it/s]
27%|██▋ | 405/1490 [00:01<00:04, 264.79it/s]
29%|██▉ | 436/1490 [00:01<00:03, 275.61it/s]
32%|███▏ | 470/1490 [00:01<00:03, 291.99it/s]
34%|███▍ | 504/1490 [00:01<00:03, 304.68it/s]
36%|███▌ | 538/1490 [00:01<00:03, 313.53it/s]
38%|███▊ | 573/1490 [00:01<00:02, 323.27it/s]
41%|████ | 608/1490 [00:01<00:02, 329.35it/s]
43%|████▎ | 642/1490 [00:02<00:02, 327.17it/s]
45%|████▌ | 676/1490 [00:02<00:02, 325.73it/s]
48%|████▊ | 710/1490 [00:02<00:02, 327.65it/s]
50%|████▉ | 743/1490 [00:02<00:02, 314.12it/s]
52%|█████▏ | 778/1490 [00:02<00:02, 322.42it/s]
55%|█████▍ | 813/1490 [00:02<00:02, 328.65it/s]
57%|█████▋ | 848/1490 [00:02<00:01, 334.39it/s]
59%|█████▉ | 882/1490 [00:02<00:01, 326.94it/s]
61%|██████▏ | 915/1490 [00:02<00:01, 318.57it/s]
64%|██████▎ | 949/1490 [00:03<00:01, 323.13it/s]
66%|██████▌ | 984/1490 [00:03<00:01, 329.03it/s]
68%|██████▊ | 1020/1490 [00:03<00:01, 336.00it/s]
71%|███████ | 1054/1490 [00:03<00:01, 337.11it/s]
73%|███████▎ | 1088/1490 [00:03<00:01, 316.23it/s]
75%|███████▌ | 1120/1490 [00:03<00:01, 303.50it/s]
77%|███████▋ | 1151/1490 [00:03<00:01, 299.22it/s]
79%|███████▉ | 1184/1490 [00:03<00:00, 306.75it/s]
82%|████████▏ | 1216/1490 [00:03<00:00, 309.22it/s]
84%|████████▍ | 1250/1490 [00:03<00:00, 316.62it/s]
86%|████████▌ | 1282/1490 [00:04<00:00, 311.66it/s]
88%|████████▊ | 1314/1490 [00:04<00:00, 300.47it/s]
90%|█████████ | 1345/1490 [00:04<00:00, 295.95it/s]
92%|█████████▏| 1376/1490 [00:04<00:00, 296.91it/s]
94%|█████████▍| 1406/1490 [00:04<00:00, 262.12it/s]
96%|█████████▋| 1435/1490 [00:04<00:00, 268.53it/s]
98%|█████████▊| 1463/1490 [00:04<00:00, 269.03it/s]
100%|██████████| 1490/1490 [00:04<00:00, 308.11it/s]
Traceback (most recent call last):
File "/usr/src/paperless/src/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 458, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/paperless/src/documents/management/commands/document_exporter.py", line 211, in handle
shutil.make_archive(
File "/usr/local/lib/python3.11/shutil.py", line 1165, in make_archive
filename = func(base_name, base_dir, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/shutil.py", line 1020, in _make_zipfile
with zipfile.ZipFile(zip_filename, "w",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/zipfile.py", line 1294, in __init__
self.fp = io.open(file, filemode)
^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/paperless/export/export-2024-05-06.zip'
 

snirf81

Benutzer
Mitglied seit
16. Feb 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hi, ich hoffe mein Problem passt hier auch hin. Ich hab paperless nach der Anleitung von mariushosting auf meiner DS 420+ unter Docker installiert und funktioniert auch alles super.I.d.R. mach ich alles über Portainer. Jetzt wollte ich mich an die Backupstrategie ransetzen. Die Dokumente wegzusichern ist ja nicht so schwer, dafür bräuchte ich die Exporterfunktion ja nicht, aber ich will ja auf die Verknüpfungen zur DB haben. Sonst sind ja alle meine Zuordnungen weg. Nur mit dem Aufruf der Exporterfunktion gibts schon Schwierigkeiten. Ich hatte gehofft, dass ich über den Terminal in Portainer im Paperless-Container einfach
Code:
sudo docker exec Paperless-NGX document_exporter usr/src/paperless/export

ausführen kann und dann läuft es. Aber nein...da kam nur "command not found".
Nach dem wälzen von vielen Anleitungen hab ich rausgefunden, dass es so funktioniert:
Code:
python3 manage.py document_export /usr/src/paperless/export

warum das so ist, erschließt sich mir nicht. Mein Ziel wäre es, den Export automatisch über den Aufgabenmanager laufen zu lassen und auch einen DB-Dump zu machen. Ich wollte eigentlich keine python-scripte ansprechen.
Vielleicht kann mir ja jemand nen Tip geben, warum das nicht so einfach funzt.
Mein Stack sieht so aus:
Code:
version: "3.6"
services:
  broker:
    image: redis
    container_name: Paperless-NGX-REDIS
    restart: always
    volumes:
      - /volume1/docker/paperlessngx/redis:/data

  db:
    image: postgres
    container_name: Paperless-NGX-DB
    restart: always
    volumes:
      - /volume1/docker/paperlessngx/db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB:
      POSTGRES_USER:
      POSTGRES_PASSWORD:

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: Paperless-NGX
    restart: always
    depends_on:
      - db
      - broker
    ports:
      - 8777:8000
    volumes:
      - /volume1/docker/paperlessngx/data:/usr/src/paperless/data
      - /volume1/docker/paperlessngx/media:/usr/src/paperless/media
      - /volume1/docker/paperlessngx/export:/usr/src/paperless/export
      - /volume1/docker/paperlessngx/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      USERMAP_UID:
      USERMAP_GID:
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_ADMIN_USER:
      PAPERLESS_ADMIN_PASSWORD:
      PAPERLESS_OCR_LANGUAGE: deu+eng


VG snirf
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Wie die Befehle ja schon direkt zu erkennen geben....
sudo docker exec Paperless-NGX document_exporter usr/src/paperless/export
Führt eine Funktion im Container aus, wenn du es vom HOST aus aufrufst.
python3 manage.py document_export /usr/src/paperless/export
Führt eine Funktion im CONTAINER aus.

Du musst unterscheiden wo du dich befindest.... Das erste kannst du auf der DS ausführen.
Nur mit Portainer wirst du dein Vorhaben nicht umsetzen können. Der Rest ist hier im Thread/Forum eigentlich alles erklärt.
 
  • Like
Reaktionen: snirf81


 

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