Installation im Container Manager der Synology als Projekt

Normalerweise funktionieren die Updates auch mit dem Container Manager.
Würde einfach beim nächsten Update von Paperless einen Tag warten und schauen und warten ob das Update angeboten wird.

Wenn der Manager kein Update erkannt hat wurde es deshalb evtl. nicht installiert.

Was funktionieren müsste : Bereinigen > das Image löschen > Erstellen

ja geht auch, wenn du es nicht erwarten kannst bis der Container Manager das Update anbietet.

Container Manager:
Projekte > Paperless-ngx markieren > Aktion > Bereinigen
Images > Paperless-ngx markieren > löschen
Projekte > Paperless-ngx markieren > Aktion > erstellen

Dann hast du die aktuelle Version.

VG

1 „Gefällt mir“

Moin Jake,
danke für die Anleitung - hat perfekt funktioniert. :smiley:

@Jake @ROIOS Ich wollte nun endlich mal noch meine bisher via SSH Erstellte Paperless Instanz in ein „normales“ Container Projekt umwandeln.

Irgendwie bin ich aber anschliessend in einer komplett leeren Paperless Instanz gelandet:

Was ich gemacht habe:

  1. Bestehende Container für Webserver & DB & Broker gestoppt und gelöscht
  2. Bestehendes docker-compose.yml und docker-compose.env files aus dem Folder /config in den Root folder von paperless-ngx kopiert
  3. relative Pfade bei Volumes angepasst zu absoluten
  4. Via GUI im Container Manager ein neues Projekt erstellt und den Pfad „/volume1/docker/paperless-ngx“ ausgewählt
  5. Das Projekt erstellt und gewartet bis es gestartet ist
  6. Eingeloggt (Zur Info, ich nutze Authelia mit 2FA, was auch in einem Kurs von Stefan erklärt wird)

Mein docker-compose.yml fürs Projekt sieht so aus:

version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7.0
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:15
    restart: unless-stopped
    volumes:
      - pgdata:/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
    ports:
      - 8000:8000
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    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/config/paperless-ngx-postprocessor:/usr/src/paperless-ngx-postprocessor
      - /volume1/docker/paperless-ngx/config:/paperless_startup.sh:ro
      - /volume1/paperless-input:/usr/src/paperless/consume

    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db

volumes:
  data:
  media:
  pgdata:
  redisdata:

Ich hab nun erstmals das Projekt im Container Manager gestoppt und gelöscht und wieder via SSH die Container erstellt. Nun ist alles wieder da.

Ich versteh grad nicht, wieso ich dann nicht meine bestehenden Dokumente ect sehe… habt ihr eine idee?

Hi,

Laufen alle Container nachdem das Projekt gestartet wurde?

Ich würde erst mal die Firewall ausstellen (wenn aktiviert) und Paperless ganz normal per http://lokalerIp:8000 aufrufen.
Die Meldung schaut aus als gäbe es mit der https Verbindung ein Problem.

@Jake ja es laufen alle. OK, probier ich mal.

Die Alternative über die GUI wäre prima. Wann kommt das Update der Masterclass ca.?!

1 „Gefällt mir“

Wäre auch interessiert an der Container Manager Lösung in der Masterclass Danke

Dein Volume pgdata liegt virtuell im Docker Host, ergo das hast Du nicht gelöscht. Wenn Du dieses Volume genau wie die anderen Volumes mit einem Ordner mountest, könntest Du es danach auch einfach löschen oder umziehen.

Ansonsten mal docker volume prune ansehen.

@Thomas241 Ich bin leider zuwenig Docker Profi, dass ich deine Inputs wirklich verstehe..

@janwidmer Du hattest oben geschrieben dass Du Paperless per SSH aufgesetzt hast, weshalb ich davon ausgehe dass Du Zugriff auf Deinen Server und somit den Docker Host hast.

Wenn Du nun per SSH auf Deinen Server zugreifst und „docker volume ls“ eingibst, siehst Du alle Volumes des Container Managers (=Docker). Dein pgdata wird noch vorhanden gewesen sein, als Du vorher eine neue Instanz aufgesetzt hattest. Dies beantwortet Deine Frage, warum Du in der frischen Instanz die vorher geladenen Dokumente siehst, denn Deine Datenbank ist ja noch vorhanden, nur ist das Volume nicht sichtbar.

Grundsätzlich würde ich empfehlen das Volume pgdata genauso wie alle anderen Volumes einem Ordner zuzuweisen, wie folgt im Abschnitt db:

  • /volume1/docker/paperless-ngx/pgdata:/var/lib/postgresql/data

@Thomas241 Es war eben genau anders rum. @ROIOS und @Jake hatten geschrieben, dass ich die per SSH erstellten Container löschen kann und dann im Container Manager GUI ein Projekt erstellen kann (Installation im Container Manager der Synology als Projekt - #4 von Jake). Das habe ich gemacht, anschliessend waren aber eben alle meine Dokumente weg.

Ich habe aktuell alles via SSH gemacht (mit Hilfe der Masterclass), würde aber eben gerne auf die Projekt Variante im Container Manager wechseln..

@janwidmer Irgendwie ist es schwer rauszufinden was Du wirklich willst. Ich mache nochmal einen Versuch :wink: Ich vermute mal Du möchtest gerne die einmalig gescannten Dokumente erhalten und trotzdem mit den Containern experimentieren?

Was @ROIOS und @Jake schreiben ist alles richtig, Dreh- und Angelpunkt bleibt aber Deine Datenbank, und diese liegt im Volume pgdata.

Falls Du meinen Tipp mit der Änderung zum Volume befolgst (- /volume1/docker/paperless-ngx/pgdata:/var/lib/postgresql/data) liegt Deine Datenbank konkret auf Deinem Server und wird nicht (!) gelöscht, solltest Du im Container Manager oder sonst wie die Container löschen oder ändern.

Ob Du dann Paperless als Projekt oder jeden Container einzeln anlegst, hat damit nichts zu tun, wichtig ist nur der Weg zur Datenbank.

So schauts aus! In der Docker Compose werden die Laufwerke gemappt, und die Pfade ändern sich auch nicht.
Falls du das Volume oder den Ordner der Datenbank verändert hast, musst du das in der docker-compose anpassen! Wenn du eine extra env Datei hast, ist die auch im passenden Verzeichnis vorhanden?
Wobei was mir komisch vorkommt ist dass Paperless ohne Datenbank eigentlich nicht starten dürfte.

Ohne irgendwelche Angaben erzeugt Paperless unter /var/lib/docker/volumes eine leere Instanz der DB, es sei denn er findet bereits ein zur Konfig passendes Volume, und damit schließt sich der Kreis :wink:

@Thomas241 Ich habe Paperless initial via SSH mit der Hilfe der Masterclass installiert. Dabei befinden sich die docker dateien wie docker-compose.yml in einem sub folder /config.

Wie @ROIOS in seinem Kommentar Installation im Container Manager der Synology als Projekt schreibt, gibt es gewisse Vorteile, wenn man das Ganze als Synology Container Manager Projekt aufsetzt.

Dies wollte ich erreichen, bin aber wie erwähnt daran gescheitert, dass dann keine Dateien mehr da waren im Paperless.

Eure Erklärungen bez. Datenbank machen soweit Sinn.

Mein docker-compose.yml sah bisher so aus:

version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7.0
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:15
    restart: unless-stopped
    volumes:
      - pgdata:/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
    ports:
      - 8000:8000
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ../data:/usr/src/paperless/data
      - ../media:/usr/src/paperless/media
      - ../export:/usr/src/paperless/export
      - /volume1/paperless-input:/usr/src/paperless/consume
      - /volume1/docker/paperless-ngx/config/paperless-ngx-postprocessor:/usr/src/paperless-ngx-postprocessor
      - /volume1/docker/paperless-ngx/config:/paperless_startup.sh:ro

    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db


volumes:
  data:
  media:
  pgdata:
  redisdata:

pgdata ist ja bereits als Volume drin - pgdata:/var/lib/postgresql/data, aber ohne path. Heisst das, dass die DB im Docker drin ist, anstatt lokal auf meinem Synology?

Aus Sicht Deiner Frage heißt es genau das, ja.
Allerdings ist Docker wie auch alles andere natürlich auch auf Deiner Synology.

Ohne eine Pfadangabe wird Deine DB hier var/lib/docker/volumes angelegt.

Nachteil ist dass man dies weder sieht noch umziehen kann. Verwendest Du die Anbindung wie von mir empfohlen, siehst Du alle Daten im pgdata Ordner und kannst diesen Ordner auch einfach mit zu einer neuen Instanz umziehen.

Virtuelle Volumes sollte man generell nicht für Daten verwenden, welche man dauerhaft behalten möchte.

Hast du wirklich die Docker-Compose aus der Masterclass verwendet?
Dass man die wichtigen Daten nicht auf Volumes speichert hab ich bisher nur bei ganz alten Paperless Anleitungen gesehen.
Vor allem der Export direkt in den Container macht ja gar keinen Sinn…

Das hat nichts mit Paperless zu tun sondern mit Docker. Und ich glaube dass man seine DB nicht zwingend mit Docker verknüpfen sollte, ist doch wohl nicht fraglich, oder.

Letztlich sind die virtuellen Mounts nur für interne Verknüpfungen gut und vereinfachen den Start einer jeden Komponente in der Docker Welt.

Spätestens wenn Du langlebige Anwendungen auf einen neuen Server umziehen musst, gibt es Probleme.

Deswegen kann ich aus langjähriger Erfahrung nur dringend dazu raten, immer alles in eigene Ordner zu mounten, kostet ja außer den Ordner anlegen keinen Aufwand.

Schon klar, hab mich nur direkt auf die gepostete docker-compose bezogen.
Bei allen anderen Vorlagen für Docker Projekte, die ich kenne, wird mit Volumes gearbeitet.

Hätte man vor dem Umbau auf den Container Manager die Docker-compose so angepasst dass der Export auf einem Volume gespeichert wird, hätte man sich viel Ärger erspart.