2. parallele Installation zu Schulungszwecken auf NAS/Docker

Hallo Verdi-Fan,

sehr schön, freut mich sehr für Dich :wink:

Du machst es aus meiner Sicht genau richtig, wenn Du kein gutes Gefühl hast, über das Internet ohne 2FA auf paperless Zugriff von extern zu verzichten.
Bei meiner Recherche im Web sehe ich, dass genau dieses Thema von vielen gewünscht wird.
Glaube, es wird nicht lange auf sich warten lassen, das jemand eine Anleitung posten wird. Stefan hat da ja auch schon Interesse bekundet, in diese Richtung eventuell was zu zaubern.

Wenn ich dazu etwas finde, mache ich hier ein neues Thema auf :smiley:

Gruß
Mario

1 „Gefällt mir“

Hallo @Modiso und @Verdi-Fan,

freut mich zu lesen, dass ihr es über die Feiertage hinbekommen habt! Zurzeit bin ich recht eingespannt mit neuen Themen, aber in den kommenden Wochen setze ich mich damit nochmal genauer auseinander (wie auch mit 2FA) und baue es in die Masterclass ein.

Frohes Neues!

2 „Gefällt mir“

Hallo Stefan,

weißt du zufällig ob die 2FA auch mit Yubikey funktioniert ?

Grüße Florian

Hallo,

ich habe zwei Paperless Instanzen, kann aber nur in einer eingeloggt sein. D.h. Sobald ich z.B. von Paperless1 zu Paperless2 wechsele, muss ich mich neu anmelden, selbes gilt auch wenn ich zurück wechsele. Beide Instanzen laufen aber durchgehend. Ist es bei euch auch so oder habe ich was Falsch gemacht?

Anfangs beim ersten mal einloggen, nach der Einrichtung der Paperless2 Instanz, kam in der ersten Paperless1 Instanz auch folgender Fehler auf, aber auch nur ein einziges mal:

Verboten (403)

CSRF-Verifizierung fehlgeschlagen. Anfrage abgebrochen.

Mehr Information ist verfügbar mit DEBUG=True.

Hängt es eventuell mit einander zusammen? Ich habe derzeit auch keinen Online Zugang oder VPN eingerichtet, beide Instanzen laufen nur Lokal auf meinem NAS.

Noch eine Frage, und zwar muss man jedes mal jede Paperless Instanz runterfahren, wenn man eine neue Einrichtet? Zum Beispiel, wenn ich 3 Paperless Instanzen habe und eine 4te einrichten möchte, müssen die 3 bereits vorhandenen Paperless Instanzen runtergefahren werden?

MfG,
Negru

Ich habe bisher keine mehrfachen Instanzen laufen lassen da nicht die Notwendigkeit besteht…

Kann daher nur zur Fehlersuche beitragen aber, ist es möglich das beide Instanzen innerhalb der gleichen Datenbank laufen und sich beide die DB teilen statt in separaten DB’s ?

Habe die anderen Beiträge mit Problemen mal angesehen und keiner hat bisher geschildert wie er beide Instanzen detailliert konfiguriert hat… zumindest ist mir nichts aufgefallen… daher verzeit mir wenn ich was übersehen habe.

Für mein Verständnis müssten folgende Punkte unterschiedlich sein in den Instanzen da es sich doch gegenseitig sprichwörtlich in den Arsch beißt.

docker-compose.yml

    environment:
      POSTGRES_DB: paperless ( Paperless#1/#2/#3usw. )
    ports:
      - 8888:8000 ( Ports dementsprechend anpassen )
    volumes: ( Der Consume Ordnern sollte vermutlich auch ein anderer sein sonst landet es in der falschen Instanz )
      - /scaninput:/usr/src/paperless/consume
     environment: ( hier bin ich mir nicht sicher ob Änderungen notwendig sind da das hier alles Containner-Intern sein sollte )
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998

Normalerweise solltest du keine Instanz Stoppen müssen wenn du eine neue DB anlegst und nicht die vorhandene nutzen willst ( insoweit das möglich ist ).
Wenn doch muss wirklich jeder Prozess beendet werden… u.U. reicht es wenn man einfach nur die Datenbank stopt…

Danke für die schnelle Antwort.
Also ich habe im Container Manager jeweils für jede Paperless-Instanz einen eigenen Webserver, Datenbank und Broker laufen. Also müssten die ja eigentlich unterschiedlichen Datenbanken nutzen oder nicht?

Selbes hab ich auch bei den Consume Ordnern und allen anderen Volume Ordnern abgeändert, so dass jede Instanz jeweils auf das eigene Verzeichnis zugreift und nicht versehentlich auf eins der anderen.

Außerdem habe ich unterschiedliche Ports und „COMPOSE_PROJECT_NAME=…“ in der .env Datei definiert.

Ich probiere mal morgen eine neue Instanz zu erstellen ohne die anderen zu Stoppen, in der Hoffnung das nichts kaputt geht :sweat_smile:

Haben beide Instanzen unterschiedliche Ports?
Gruß
Mario

Ja jede Instanz hat einen eigenen Port. Ich weiß jetzt nicht wie der Port hinter dem „:“ heißt, aber der ist hingegen bei jedem gleich. Also Beispielsweise Instanz1=8000:8000
Instanz2=8001:8000
Instanz3=8002:8000

Hm, dann wüsste ich im Moment auch nicht,
woran das liegen könnte - sorry.
Gruß
Mario

Update:
Bitte nochmal beide yml kontrollieren, ob wirklich alle relevanten Pfade unterschiedlich sind.
Vielleicht hast Du da etwas übersehen?

Hallo
möchte gerne ein 2. Paperless (Privat) laufen lassen.
Was alles muss ich in der docker-compose.yml anpassen (Masterclass) damit ich eine weitere Paperless zum laufen bekomme. Nutze zur Zeit noch Elooffice für die Ablage aber
dieses Produkt wird nicht weiter entwickelt.
Gruß Rene

Hallo René,
hier in diesem Thema stehts geschrieben und auch andere zu beachtenden Aspekte.
Gruß
Mario

2 „Gefällt mir“

Guten Tag zusammen,
ich habe mir gerade ausschließlich für E-Mail, JPG und DOC Dateien mal eine eigene (jetzt dritte) Instanz erstellt. Die gesamte Installation (inkl. Herunterfahren und Neustart der zwei existierenden Instanzen) hat maximal 20-30 Minuten gedauert - nach dem hier beschriebenen Verfahren.

image

Hallo,

Ich hätte auch Bedarf an einer zweiten Installation. Gibt es mittlerweile schon eine komplette Anleitung?

Als Neuling mich da Durchzuprobieren schaffe ich leider zeitlich nicht. Bin froh wenn ich das Paperless so versteje und einrichte, dass es produktiv läuft.

Merci euch…

Grüsse
Markus

Hi,

Stephan hat dazu erst vor kurzem ein YT Video veröffentlicht.

Viele liebe Grüße!

3 „Gefällt mir“

Genau, das war von euch allen sehr häufig nachgefragt worden, daher das Video.
Danke @Jake fürs Teilen.

Ich nutze das ganz massiv zum Testen von neuen Versionen. Wenn da alles glattläuft, wird erst die produktive Instanz nachgezogen.

Ja. Also ich weiß nicht warum. Ich habe alle genauso gemacht wie im Video… Doch wenn ich mich nun in der einen oder der anderen Instanz einlogge, dann loggt er mich bei der anderen aus. Ferner ist die neue Installation nicht clean und ich sehe die Ordner komplett. Was nun? Ich hatte die Installation über Masterclass vorher laufen. Ich habe dann eine zweite hinzugenommen um eine klare Trennung von Unternehmen zu vollziehen.

Hat jemand eine Idee?

Okay. Also ich habe noch einen Hinweis. Bei mir war es tatsächlich eine Mischung von den verschiedenen Instanzen, obwohl ich alles genauso gemacht habe wie im Video. Was habe ich gemacht am Ende um das zu lösen.

Nochmal in Kurz mein Problem:

  • Instanz A (ALT)
    • Dokumente sind da
    • Login funktioniert
    • Logge ich mich bei A ein, werde ich bei B ausgeloggt.
  • Instanz B (NEU)
    • Dokumente aus Instanz A werden angezeigt, das Dokument selbst ist nicht verfügbar
    • Login funktioniert mit gleichen Daten wie bei A, allerdings nach erfolgreichen Login werde ich bei A ausgeloggt

Erst einmal habe ich eine klarere Trennung von beiden Instanzen auch in der docker-compose.yml vollzogen in dem ich folgenden Passus zusätzlich angepasst hab:

version: "3.4"

services:
  broker:
    image: redis:7.0
    restart: unless-stopped
    volumes:
      - redisdata_gmbh:/data   # Named Volume (klar getrennt)

  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
    volumes:
      - /volume1/docker/paperless-ngx-GmbH/pgdata:/var/lib/postgresql/data 

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on: [db, broker]
    ports:
      - "8008:8000"
    env_file:
      - ./docker-compose.env-gmbh
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_CONSUMER_ENABLE_BARCODES: "true"
    volumes:
      - /volume1/docker/paperless-ngx-GmbH/data:/usr/src/paperless/data
      - /volume1/docker/paperless-ngx-GmbH/media:/usr/src/paperless/media
      - /volume1/docker/paperless-ngx-GmbH/export:/usr/src/paperless/export
      - /volume1/scaninput-gmbh:/usr/src/paperless/consume
volumes:
  redisdata_gmbh:

Ich habe hier also ein veränderten Bezug eingestellt. Hier Beispielhaft mit GmbH. Einerseits habe ich die Volumes klar definiert:

  • Bei Services
    • redisdata_gmbh
  • db - volumes
    • neuer Pfad für pgdata
  • webserver
    • hat vollpfadige Ordner die jeweils anders sind
  • volumes
    • und ganz unten noch neu das Volume

Dann habe ich ein bisschen geprüft und “gekillt” in den Instanzen um sicher zu sein, dass alles clean ist und auch wirklich nichts mehr aktiv ist. Ich hatte in meiner NAS noch jeweils 1x alles laufen, obwohl ich über SSH die Instanzen heruntergefahren hatte.

# Was läuft überhaupt aktuell?
docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'

# Irgendwas mit Paperless?
docker ps -a --filter "name=paperless" --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'

# Falls noch paperless-* Container da sind -> stoppen & löschen:
docker ps -aq --filter "name=paperless" | xargs -r docker stop
docker ps -aq --filter "name=paperless" | xargs -r docker rm

# Lauscht etwas auf 8000/8008?
ss -ltnp | grep -E ':8000|:8008' || echo "nichts auf 8000/8008"

Hier hatte ich dann eine cleanes Ergebnis am Ende. Danach habe ich den Cache und jegliche “Altlasten” entfernt.

# Redis-Cache (Named Volume) der neuen erstellten Instanz löschen – wird neu angelegt, also kein Problem
docker volume rm redisdata_gmbh 2>/dev/null || true

# Neue DB der GmbH-Instanz ZUR SICHERHEIT leeren, damit Postgres frisch initialisiert
rm -rf /volume1/docker/paperless-ngx-GmbH/pgdata/*

# (nur wenn du sicher bist, dass die neue Instanz NICHT die alte ist)
# Die App-/Index-Daten der neuen Instanz zurücksetzen:
rm -rf /volume1/docker/paperless-ngx-GmbH/data/*

# (Dokumente betreffen das nicht – die liegen unter media/documents;
# wenn du komplett leer starten willst:)
rm -rf /volume1/docker/paperless-ngx-GmbH/media/*
mkdir -p /volume1/docker/paperless-ngx-GmbH/media
chown -R 1029:100 /volume1/docker/paperless-ngx-GmbH

Zusätzlich dazu, habe ich noch die Kennzeichnung und eine Cookie-Trennung vollzogen für die Instanz… just to be safe. In der …docker-compose.env-gmbh habe ich eingetragen:

PAPERLESS_APP_TITLE=Paperless GmbH
PAPERLESS_COOKIE_PREFIX=plgmbh
# (und natürlich weiterhin dein eigener PAPERLESS_SECRET_KEY)

Beim TITLE, kann nahezu alles verwendet werden. Auch “Gurkentruppe 2024 e.V. & Co. Kg.“ Sonderzeichen werden hier mit inkludiert.

Dann habe ich die neue Instanz alleine gestartet wie immer und mal geschaut ob die neu erstellte db auch leer ist:

#Erstmal den Container ermitteln
docker ps --format '{{.Names}} {{.Image}}' | grep postgres

#Dann zählen und check
docker exec -it <DB-CONTAINERNAME> psql -U paperless -d paperless -c "select count(*) from documents_document;"

Hier sollte im Idealfall eine “0” stehen. Dann ist´s leer und clean.

Dann habe ich die alte Instanz gestartet und ich konnte beide parallel laufen lassen. Für mich war also ein bisschen mehr Arbeit nötig und es hat mich gestern nicht wie geplant mal schnelle 30 Minuten gekostet, sondern 6 Stunden. Ich bin kein Programmierer oder so, das ist alles selbst gefunden. Und dieses mal sogar nur mit ein bisschen Hilfe von CGPT. :smiley:

Hoffe es hilft jemanden, der mal den gleichen Käse wie ich hat.