Paperless-Sicherung-Neuinstalation

_gm

Benutzer
Mitglied seit
28. Dez 2020
Beiträge
17
Punkte für Reaktionen
1
Punkte
53
Ich habe ein laufendes Paperless was ich nicht upgraden kann.
Auf diesem Wege suche ich jemanden, der mir bitte hilft und ich es bezahle.
Über remote über Anydesk zb
Ich wäre sehr dankbar wenn wer da etwas Ahnung hat.

vielen Dank

LG Frank
 
Unabhängig von der gewünschten Remote-Hilfe: warum läßt sich paperless nicht updaten? Und ist das paperless oder paperless-ngx?
Läuft das paperless in einem Docker-Container?
 
Ja es ist ngx
Es läuft im Docker auf Synology NAS

Mir ist das Programm zu wichtig, dass ich es vor die Wand setze und hätte gern jemanden der mir hilft.
Mit mal eben Update ist es nicht getan weil ein Fehler auftaucht bzgl des Certifikates und da komme ich nicht weiter.
Wie gesagt, es läuft einwandfrei aber irgendwo habe ich einen Bock gebaut.

Am liebsten jetzt wo es 1a geht mit einem der es besser kann als ich eine saubere Sicherung erstellen und evtl. neu aufsetzen.
Lasse mich das gern 50€ kosten.
Kannst du mir helfen?
 
Nein, remote helfen kann ich Dir leider nicht. Und wenn ich es könnte, dann schon gar nicht für Geld.
Aber vielleicht könntest Du noch ein paar mehr Informationen posten, dann findet sich vielleicht eher jemand, der Dir helfen kann.
was für eine Diskstation, welches DSM, welche Version von paperless-ngx, was für ein Zertifikatsfehler (bei mir läuft paperless-ngx auch in einem Docker-Container, kann mich aber jetzt nicht an ein Zertifikat erinnern, das dafür installiert/geladen/hinterlegt werden mußte). Docker oder Portainer oder Containermanager?
 
  • Like
Reaktionen: _gm
Es läuft nicht das neuste DSM
Alles im Portainer und hatte es nach einer Anleitung installiert.
Werde mich später mal an den PC setzen und genau dokumentieren.
Sonst macht das keinen Sinn und niemand weiß worum es geht.
Es ist jetzt auch Monate her wo ich es versucht habe und scheiterte immer an der gleichen Stelle. Ich erinnere mich dass ich die Datei im portainer also diese textdatei (wo auch die Version und Passwort steht) editiert hatte weil beim Update aufpassen muss welche Version es ist.
Geändert und dann lief es nicht mehr. Zurück geändert und Paperless ngx lief wieder. Als Fehler in der log rechts stand das certifikat was fehlerhaft ist.
Über die Shell also mit putty kam ich überall rein und habe auch die Prozesse gefunden. Leider bin ich jetzt überfordert und hätte es so gern perfekt gesichert und wieder aktualisiert, was aber nicht geht.
Verstehe nicht was genau der Portainer mit dem docker macht und was ein certifikat da will.
Deshalb dachte ich mir dass ich mal jemand mit Ahnung da drauf lasse.

Werde gleich mal schauen und detailliert zeigen.
Danke dass du das anschaust. Bin sehr dankbar. Mir liegt sehr viel daran.
LG frank
 
Diese Textdatei im Portainer wird “Stack” genannt. Dort ist beispielsweise wichtig, daß man bei der Zeile, die die Datenbank beschreibt, nicht ”latest” einträgt, wenn man dort postgresql verwendet. Sonst trifft man bei Versionssprüngen ganz schnell auf Inkompatibilitäten.
Also für den Anfang mal die folgenden Informationen bereitstellen:
- Version DSM (evtl. 6.2.4?)
- den Stack (also die Textdatei im Portainer)
- nach welcher Anleitung wurde installiert?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: _gm
Hier mal ein Beispiel für einen Portainer-Stack für paperless-ngx, der auf einer DS720+ unter DSM 6.2.4 läuft und sich problemlos auch updaten läßt. Da können wir dann mal vergleichen, wo der Unterschied zu Deinem liegt:
Code:
version: "3.4-DSM"
services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:15
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless-ngx/database:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - "8000:8000"
    volumes:
      - /volume1/docker/paperless-ngx/data:/usr/src/paperless/data
      - /volume1/docker/paperless-ngx/media:/usr/src/paperless/media
      - /volume1/docker/paperless-ngx/export:/usr/src/paperless/export
      - /volume1/docker/paperless-ngx/consume:/usr/src/paperless/consume
    environment:
      USERMAP_UID: 1000
      USERMAP_GID: 1000
      PAPERLESS_ADMIN_USER: paperless-ngx_username_here
      PAPERLESS_ADMIN_PASSWORD: paperless-ngx_userpassword_here
      PAPERLESS_TIME_ZONE: Europe/Berlin
      PAPERLESS_OCR_LANGUAGE: deu+eng+ita
      PAPERLESS_SECRET_KEY: 'secret_key_here'
      PAPERLESS_OCR_LANGUAGES: deu eng ita
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true,"continue_on_soft_render_error": true}'

  gotenberg:
    image: docker.io/gotenberg/gotenberg:latest
    restart: unless-stopped

    # The gotenberg chromium route is used to convert .eml files. We do not
    # want to allow external content like tracking pixels or even javascript.
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"

  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    restart: unless-stopped

volumes:
  redisdata:
 
Zuletzt bearbeitet:
  • Like
Reaktionen: _gm
Dokumentation:

Paperless V 2.2.0
Synology NAS
Datenbank V16
System: DSM 6.2.3-25426

Portainer: Standalone 20.10.3
/var/run/docker.sock
GPU: none
Tags: -
----------------------------------------------------------------------------------------------------------------
Stack: 1
Images: 7
Networks: 4
Containers: 4
Volumes: 4
----------------------------------------------------------------------------------------------------------------
Containers:

Paperless-NGX Image: ghcr.io/paperless-ngx/paperless-ngx:latest Port: 8777:8000 owner: administrator
Paperless-NGX-DB Image: postgres postgres:latest
Paperless-NGX-REDIS Image: redis redis:latest
portainer Image: portainer/portainer-ce:latest
----------------------------------------------------------------------------------------------------------------
Stack
Code:
version: "3.6"
services:
  broker:
    image: redis
    container_name: Paperless-NGX-REDIS
    restart: always
    volumes:
      - /volume3/docker/paperlessngx/redis:/data

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

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

----------------------------------------------------------------------------------------------------------------
Fehlermeldung nach dem Editieren des Stack und dem Anwenden also Neustarts:
Also Certifikat Fehler (das ist jetzt der log von vor einem halben Jahr, deshalb das falsche Datum aber unverändert:


Failure
failed to deploy a stack: db Pulling f11c1adaa26e Pulling fs layer 76ce212b9153 Pulling fs layer 919ca406a058 Pulling fs layer 6b7a1245fe71 Pulling fs layer 8064ffe06c65 Pulling fs layer 4b5c59f2d82c Pulling fs layer fe72764b9070 Pulling fs layer 6ef8e2c0f4d9 Pulling fs layer e71fe9d7ff11 Pulling fs layer f3225d69190d Pulling fs layer 2bf90d17afc8 Pulling fs layer d3aee49eb079 Pulling fs layer e1e856658919 Pulling fs layer 95c2c2ef9f02 Pulling fs layer fe72764b9070 Waiting 6ef8e2c0f4d9 Waiting e71fe9d7ff11 Waiting f3225d69190d Waiting 2bf90d17afc8 Waiting d3aee49eb079 Waiting e1e856658919 Waiting 95c2c2ef9f02 Waiting 6b7a1245fe71 Waiting 8064ffe06c65 Waiting 4b5c59f2d82c Waiting error pulling image configuration: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/f2/f23dc7cd74bd7693fc164fd829b9a7fa1edf8eaaed488c117312aef2a48cafaa/data?verify=1720370729-hzxB1scVsQNyrEJrybQ9J16dX7g=": x509: certificate has expired or is not yet valid: current time 2024-07-07T17:55:29+02:00 is after 2021-09-30T14:01:15Z
----------------------------------------------------------------------------------------------------------------

postges latest wollte ich umstellen und ab da geht eben nichts mehr!
Also egal was ich im Stack verändere, mein Paperless startet mit der Fehlermeldung. Ändere ich es wieder also die postgres Zeile, startet ein voll funktionierendes Paperless
 
Wenn ich da Europe/Bucharest sehe kommt mir sofort MariusHosting als Quelle in den Sinn. Persönlich fand ich damals den von Marius gewählten Stack nicht ganz ideal, aber das mag Geschmackssache sein.
Ein Problem bei den Containern liegt hier:
Paperless-NGX-DB Image: postgres postgres:latest
Das ist keine gute Idee, wenn Du nicht vor einem Update die Datenbank exportierst und danach wieder importierst. Die aufsteigenden Versionen von postgresql sind in der Regel nicht abwärtskompatibel. Das heißt, wenn Du postgres-basiert arbeitest, mußt Du entweder postgresql konstant halten (darum steht in meinem Stack oben nicht "postgresql:latest" sondern "postgresql:15").
Wenn Du bei Dir latest zu 15 änderst (was Du vermutlich zum Testen gemacht hast) und es nicht startet, dann hast Du nicht Version 15, sondern vielleicht 16 oder 17. Auf alle Fälle ist das eine potentielle Fehlerquelle für die Zukunft, an die Du denken mußt, wenn das grundsätzliche Update-Problem gelöst ist.
Auch redis würde ich persönlich konstant halten, das ist aber meines Wissen nicht ganz so kritisch.

Die Frage ist hier aber erst einmal eher, warum Du den Zertifikatsfehler bekommst. Das sieht aus, als ob das "CA certificate" in Deinem sogenannten trust store abgelaufen ist. Ein Grund dafür könnte sein, daß Du DSM 6.2.3 verwendest. Gibt es dafür einen speziellen Grund? Wenn nicht, würde ich erst einmal versuchen, das auf 6.2.4 hochzuziehen.
Hast Du Zugang über ein Terminal zu Deinem NAS, also per ssh? Wenn ja, dann verbinde Dich bitte einmal über das Terminal mit dem NAS, und gehe in den Ordner
Code:
/etc/docker
Dort gibst Du dann bitte einmal ein:
Code:
curl -v https://production.cloudflare.docker.com

Als Ergebnis erhältst Du, wenn alles o.k. ist:
Code:
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
> GET / HTTP/2
> Host: production.cloudflare.docker.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/2 403
< date: Sun, 16 Feb 2025 16:46:44 GMT
< content-type: application/json
< content-length: 55
< server: cloudflare
< cf-ray: 912f0388108e0ddc-FRA
<
{"status":403,"message":"Error: invalid URL signature"}

wobei in der Zeile cf-ray ein anderer Wert stehen kann.

Liegt bei Deinem System ein veraltetes Zertifikat vor, wird stattdessen folgende Meldung ausgeworfen:
Code:
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: certificate has expired
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Wenn das der Fall ist, dann gehe bitte einmal im DSM ins "Control Panel", dort unter "Security", da gibt es einen Punkt "Zertifikate".
Bei Vorliegen gültiger Zertifikate sieht das so aus:
IMG_2131.jpeg
Wenn das abgelaufen ist, dann mach mal einen Rechtsklick drauf und klicke "renew certificate".
 
Zuletzt bearbeitet:
Wenn das mit dem einfachen "renew certificate" nicht funktioniert, dann mußt Du noch mal mit dem Terminal ran:
Code:
sudo cp /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.backup
wget --no-check-certificate https://curl.se/ca/cacert.pem
sudo mv cacert.pem /etc/ssl/certs/ca-certificates.crt
sudo synoservice --restart pkgctl-Docker

Zur Erläuterung: zuerst kopierst das existierende Zertifikat mit "cp" in eine Backupdatei. Dann holst Du Dir mittels "wget" ein neues Zertifikat. Das schiebst Du dann mit "mv" in den richtigen Ordner. Zum Abschluß startest Du dann mit "synoservice --restart" den Dockerservice neu, damit er das neue Zertifikat einliest. Stattdessen könntest Du auch die ganze Diskstation neu starten.
 
  • Like
Reaktionen: _gm
Dokumentiere nach Deinen Anweisungen:

Zertifikat ist gültig! Da hatte ich mir vor einem halben Jahr mal Hilfe geholt.

Zertifikat.jpg
Per ssh angemeldet und Deine Befehle eingegeben:
Code:
FD@NAS2:/$ /etc/docker
-sh: /etc/docker: Is a directory
FD@NAS2:/$ curl -v https://production.cloudflare.docker.com
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
HTTPS-proxy has similar options --proxy-cacert and --proxy-insecure.

Ich habe letztens noch eine neue Kamera ans Haus angebracht, die über die Surveillance Station läuft. Dazu musste ich den NAS einmal ganz herunter fahren. Also ist mein Certificate wohl auch neu eingelesen.
Bin ich denn wirklich gezwungen, das DSM upzugraden? Ich verstehe gar nicht, dass das Certifikat so einen Konflikt auslöst.
Wenn ich das Certifikat nach Deiner Anleitung erneuere, wird mein altes überschrieben, ist doch richtig, oder? Könnte das die Lösung sein??

Meine Frage ist auch:
ist meine Sicherung denn perfekt, wenn ich den gesamten Portainer sichere?
Das Backup habe ich unter Aufgaben so gelöst:
sudo tar cfvz /volume3/docker/paperlessngx.tar.gz /volume3/docker/paperlessngx
Was sonst auch gehen könnte, ist ein Neu aufsetzen (nach Deiner Empfehlung einer aktuellen Paperless-NGX) und mein Backup der tar.gz einspielen. Ich weiss nicht wie schwer es ist?
Und Du hast Recht, ich hatte es nach der Anleitung von MariusHosting installiert. Wollte es unbedingt haben und jetzt stehe ich da ;.-/

Wie gesagt, es läuft und ohne Fehlermeldung aber ich muss jetzt was tun. Es ist alt und ich finde so wie jetzt nicht mehr sicher.
 
FD@NAS2:/$ /etc/docker -sh: /etc/docker: Is a directory
Du solltest in den Ordner /etc/docker gehen, das heißt da fehlt ein cd davor. Also cd /etc/docker

Das Backup habe ich unter Aufgaben so gelöst:
sudo tar cfvz /volume3/docker/paperlessngx.tar.gz /volume3/docker/paperlessngx
Es kann, muss aber natürlich nicht, zu Problemen kommen, weil die Datenbank nicht nicht konsistent ist. Wenn du den Ordner gerade packst und irgendwas in die DB schreibt, dann kann die DB eventuell korrupt sein beim wiederherstellen. Besser ist es ein DB Dump zu erzeugen oder Export (siehe https://docs.paperless-ngx.com/administration/#exporter) zu erzeugen. Das kannst du dann mit dem Importer (https://docs.paperless-ngx.com/administration/#importer) wieder importieren.
 
  • Like
Reaktionen: _gm
 

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