Paperless-ngx zweite unabhängige Paperless ngx Instanz

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Wohl wieder ein Schweizer konflikt 😂 Sorry ich meinte nicht den gleichen bei beiden sondern gleich bei beiden ändern jeweils aber individuell. einmal _privat und einmal _verein.

Versuche ich heute Abend wenn ich wieder zuhause bin und gebe bescheid.

Der rest würde ja passen und das sollte ja nicht passieren oder?

Hab mir schon überlegt ob paperless_ Gruppen erstellt so wie mariaDB?

Also vielleicht den Containernamen anders beginnen?

privat_paperless
verein_paperless
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Du kannst den Namen bei den Containern auch weglassen.
Wohl wieder ein Schweizer konflikt 😂 Sorry ich meinte nicht den gleichen bei beiden sondern gleich bei beiden ändern jeweils aber individuell. einmal _privat und einmal _verein.
Achso, dann habe ich es falsch verstanden 😁
 
  • Like
Reaktionen: Grischabock

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
So nun bin ich zuhause und habe es getestet. Leider klappt es nicht, die .yml ist dann ungültig.

Code:
Implicit keys need to be on a single line at line 3, column 7:

name: paperless-verein
^
(MULTILINE_IMPLICIT_KEY)

die .yml sieht so aus, hoffe ich habe dich richtig verstanden.
Code:
version: "3.6"
services:
name: paperless-verein
  broker:
    container_name: paperless_redis-verein
    image: redis:latest
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless_verein/redis:/data

  webserver:
    container_name: paperless_core-verein
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - broker
    ports:
      - 8778:8001
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8001"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /volume1/docker/paperless_verein/data:/usr/src/paperless/data
      - /volume1/docker/paperless_verein/media:/usr/src/paperless/media
      - /volume1/docker/paperless_sverein/export:/usr/src/paperless/export
      - /volume1/docker/paperless_verein/consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBENGINE: mariadb
      PAPERLESS_DBHOST: 192.168.178.77
      PAPERLESS_DBNAME: YYYYY
      PAPERLESS_DBUSER: YYYYYY
      PAPERLESS_DBPASS: YYYYYY
      PAPERLESS_DBPORT: 3306

volumes:
  data:
  media:
  pgdata:
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Habe es nun noch einen tab nach vorne gebracht also auf die selbe höhe wie Broker dann erhalte ich beim Befehl sudo docker-compose pull

services.name must be a mapping
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Habe nun mal versucht die Container Namen zu drehen also

- privat-paperless_core
- privat-paperless_redis

- verein-paperless_core
- verein-paperless_redis

So lief die Installation durch aber zum schluss hat der dann meinen privat Container wieder raus geworfen und ihn wider verein... genannt.

Liegt das Problem darin weil es schon einen redis container gibt? Er erstellt niemals einen zweiten redis container aber anfangs einen zweiten paperless container.

Wie habt ihr denn das gelöst? zb. @Thonav du hast ja 7 Installationen?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Es müsste so sein:
Code:
name: irgendwas
services:
Der Name ist ja kein Service. Normal nimmt er den Ordner als Stackname. Aber vielleicht ist es bei dir auch so, weil beide Ordner heißen config. In der Regel liegt die docker-compose im Hauptordner.

Ansonsten probier mal einen config Ordner umzubenennen. Also entweder Namen setzen oder Ordner umbenennen

Oder die docker-compose.yml und die .env Datei eine Ebene höher verschieben. Also aus dem config Ordner in den Hauptordner. Das würde ich als erstes probieren/machen
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Grischabock

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
okay werde es dann erstmals so versuchen und sonst die config Ordner umbenennen.

Ich ging da nach der Anleitung mit den Ordner. Aber auch komisch dass er dann auf das zweite Verzeichnis geht anstelle des ersten.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Wieso zweite? Er geht nachdem Ordner wo die yml Datei liegt. Woher soll er denn wissen was der Projektordner ist und nicht nur ein Ordner für die Ordnung
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Schieb doch die .env und .yaml in den Hauptordner, wie von alexhell, vorgeschlagen, @Grischabock. Das dient wie gesagt nur der Ordnung und funktioniert auch, wenn es den config-Ordner nicht gibt, wenn die anderen Ordner ordentlich gemappt sind!
 
  • Like
Reaktionen: HeGa59

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Das werde ich dann später versuchen ja. Danke euch
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Ich habe mich auch gefragt wieso du bei paperless nicht portainer nutzt, wenn du es sonst immer nutzt. Ich habe damit keine Probleme mit mehreren Instanzen und muss nicht immer per SSH rauf.
Falls du es noch mal probieren willst hier ist mein Custom App Template.
Code:
version: "3.4"
services:
  broker:
    image: redis
    restart: unless-stopped
    volumes:
      - redisdata:/data
    logging:
      driver: syslog
      options:
        syslog-address: "udp://192.168.22.5:514"
        tag: 'paperless-broker'

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - broker
    ports:
      - "18010:8000"
    volumes:
      - {{ DOCKER_FOLDER }}/paperless/data:/usr/src/paperless/data
      - {{ DOCKER_FOLDER }}/paperless/media:/usr/src/paperless/media
      - {{ DOCKER_FOLDER }}/paperless/export:/usr/src/paperless/export
      - {{ DOCKER_FOLDER }}/paperless/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_CORS_ALLOWED_HOSTS: {{ URL }}
      PAPERLESS_URL: {{ URL }}
      PAPERLESS_OCR_LANGUAGE: deu+eng
      USERMAP_UID: {{ USER_ID }}
      USERMAP_GID: {{ GROUP_ID }}
      PAPERLESS_DBHOST: {{ DB_HOST }}
      PAPERLESS_DBPORT: {{ DB_PORT }}
      PAPERLESS_DBNAME: {{ DB_NAME }}
      PAPERLESS_DBUSER: {{ DB_USER }}
      PAPERLESS_DBPASS: {{ DB_PASS }}
    logging:
      driver: syslog
      options:
        syslog-address: "udp://192.168.22.5:514"
        tag: 'paperless'
volumes:
  redisdata:
Musst bei beiden Containern nur das logging entfernen. Ist zwar für PSQL, aber da muss man nur die variablen anpassen
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
logging: driver: syslog options: syslog-address: "udp://192.168.22.5:514" tag: 'paperless-broker'
Okay also das müsste oben und unten raus?

Dann noch zwei drei Fragen
1. ich erstelle den Stack und kann danach ja die Variablen anpassen.

2. für weitere Installationen muss ich nur bei Volumes den pfad ändern?

3. Ordner müssen dennoch erstellt werden oder?

4. Ich war ja zu blöd den renamer zu nutzen für die Ordner Struktur. Hat da jemand eine Step by Step Anleitung für dummies? 😂

5. Wenn ich meine aktuelle installation auch gleich auf Portainer „umziehe“ kann ich nur den Pfad anpssen und die Variablen angeben oder?

6. könnte ich in {{ DOCKER_FOLDER }} auch den ganzen pfad angeben und die variable zb. umbenennen?

Sorry für die vielen Fragen und danke für eure Grossartige Unterstützung.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
1. ich erstelle den Stack und kann danach ja die Variablen anpassen
Am besten du geht auf App Templates -> Custom Templates und erzeugst ein neues. Fügst alles so ein, bis auf das logging bei beiden. Also mit den {{}} Sachen und speicherst es. Dann kannst du einfach immer nur drauf klicken die variablen untern im Webinterface ausfüllen und fertig. Da musst du immer alles kopieren.
2. für weitere Installationen muss ich nur bei Volumes den pfad ändern?

3. Ordner müssen dennoch erstellt werden oder?
Ja die müssen nur erstellt werden und den Pfad anpassen
5. Wenn ich meine aktuelle installation auch gleich auf Portainer „umziehe“ kann ich nur den Pfad anpssen und die Variablen angeben oder?
Ja das kannst du
6. könnte ich in {{ DOCKER_FOLDER }} auch den ganzen pfad angeben und die variable zb. umbenennen?
Ja da kommt der absolute Pfad rein.. /volumeX/...

Kann dir auch in ca 2 Stunden Screenshots machen wie ich das meine
 
  • Like
Reaktionen: Grischabock

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Danke dir vielmals, nur keine Eile. Vielleicht kann ich es am Mittag testen und sonst dann erst am Abend.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
So. Hier mal die Anleitung genauer wie ich es mit Portainer machen würde:
Du gehst wie gesagt auf App Templates -> Custom Templates

1.png
und klickst auf Add custom Template.
Name und Beschreibung eintippen und folgenden Stack einfügen:
Ich habe den Stack von oben minimal modifiziert.
Code:
version: "3.4"
services:
  broker:
    image: redis
    restart: unless-stopped
    volumes:
      - redisdata:/data

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - broker
    ports:
      - {{ PORT }}:8000
    volumes:
      - {{ DOCKER_FOLDER }}/data:/usr/src/paperless/data
      - {{ DOCKER_FOLDER }}/media:/usr/src/paperless/media
      - {{ DOCKER_FOLDER }}/export:/usr/src/paperless/export
      - {{ DOCKER_FOLDER }}/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_CORS_ALLOWED_HOSTS: {{ URL }}
      PAPERLESS_URL: {{ URL }}
      PAPERLESS_OCR_LANGUAGE: deu+eng
      USERMAP_UID: {{ USER_ID }}
      USERMAP_GID: {{ GROUP_ID }}
      PAPERLESS_DBHOST: {{ DB_HOST }}
      PAPERLESS_DBPORT: {{ DB_PORT }}
      PAPERLESS_DBNAME: {{ DB_NAME }}
      PAPERLESS_DBUSER: {{ DB_USER }}
      PAPERLESS_DBPASS: {{ DB_PASS }}
volumes:
  redisdata:
Das müsste so ca aussehen:
2.png
Wenn das erledigt ist, dann "create Custom Stack" klicken.

Jetzt können wir damit so viele Instanzen wie wir wollen erstellen. Dazu gehen wir wieder auf Custom Templates und klicken einfach auf unseren erstellen Stack. In meinem Fall paperless. Dann öffnet sich oben drüber eine Eingabemaske mit den Variablen die in {{ }} stehen. Diese müssen wir nur noch ausfüllen und die Ordner vorher erstellen.
Das würde z.B. so aussehen:

1692000383808.png

Wenn das auch getan ist, dann können wir den Button "deloy the stack" klicken. Dann müsste die erste Instanz starten. Dann gehen wir wieder auf Custom Templates und wiederholen das nochmal mit den Daten für den zweiten Stack und so weiter.
Was wir nur immer wieder anpassen und ich gerade keinen Screenshot von gemacht habe ist der Name vom Stack ganz oben. Den müssen wir natürlich für jede Instanz eindeutig benennen. Kleinbuchstaben und "-" und "_" so wie Zahlen sind erlaubt.
So kannst du in einer Minute den Stack erzeugen ohne dir die Compose immer raussuchen zu müssen-
 

w00dcu11er

Benutzer
Sehr erfahren
Mitglied seit
16. Sep 2022
Beiträge
863
Punkte für Reaktionen
298
Punkte
89
@Monacum Es wäre klasse, wenn du den Betrag oben von @alexhell in dem "Hauptthread" von paperless-ngx (z.B. mit dem Text "Weitere Paperless-Instanzen installieren" o.ä.) verlinkst. Von alex toll beschrieben, danke!
Das hätte ich da nämlich später vor. ^^
 
  • Like
Reaktionen: Verdi-Fan und Monacum

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Wooow vielen Dank für deine TOP Anleitung 👍🏻

Weisst du gerade noch ob man den Pfad für die Verzeichnis Struktur auch gleich angeben könnte? Vielleicht auch einen Standard schon ausfüllen den man ggf. anpassen kann.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Beim zweiten Screenshot bei Defaultvalue einfach deinen Pfad eintragen, der verwendet werden soll, wenn das Feld leer ist.
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Also egal in welcher Zeile oder dafür eine eigene variable im Template hinterlegen?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Nur um sicher zu gehen: Um welche Pfade geht es dir genau? Ich ging jetzt vom Projektordner aus. Also DOCKER_FOLDER. Aber wie gesagt, ich weiß nicht, ob ich dich richtig verstanden habe.
 


 

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