BookStack (Stack) mit Synology mariaDB

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Guten Tag zusammen

Ich wollte mich heute mal mit BookStack beschäftigen und mit dem Stack von Marius Hosting arbeiten. Da ich die mariaDB der Synology schon im Einsatz haben, würde ich auch lieber diese nutzen und nicht noch eine Instanz aufsetzen wollen. Leider bekomme ich den Stack nicht umgeschrieben dass er mit der DB kommuniziert.

Hat das schon jemand gemacht oder kann mir da behilflich sein? Ich habe nun schon soviel herumgebastelt das ich einfach nur mal den Stack Original von Marius hier anhänge.

Code:
version: "3.9"
services:
  db:
    image: mariadb:jammy
    container_name: BookStack-DB
    hostname: bookstack-db
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    volumes:
      - /volume1/docker/bookstack/db:/var/lib/mysql:rw
    environment:
      TZ: Europe/Bucharest
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_USER: bookstackuser
      MYSQL_PASSWORD: bookstackpass
      MYSQL_DATABASE: bookstack
    restart: on-failure:5

  bookstack:
    image: solidnerd/bookstack:master
    container_name: BookStack
    hostname: bookstack
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true

    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
    ports:
      - 6875:8080
    volumes:
      - /volume1/docker/bookstack/uploads:/var/www/bookstack/public/uploads:rw
      - /volume1/docker/bookstack/storage-uploads:/var/www/bookstack/storage/uploads:rw
    environment:
      DB_HOST: bookstack-db:3306
      DB_DATABASE: bookstack
      DB_USERNAME: bookstackuser
      DB_PASSWORD: bookstackpass
      APP_KEY: base64:YnFsamt2aDBocDNyZGQxb2YyMng0cGlpcXo1NGFiNWc=
      APP_URL: https://bookstack.yourname.synology.me
      MAIL_DRIVER: smtp
      MAIL_HOST: smtp.gmail.com
      MAIL_PORT: 465
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: Your-own-gmail-address
      MAIL_PASSWORD: Your-own-app-password
      MAIL_FROM: Your-own-gmail-address
      MAIL_FROM_NAME: BookStack
    restart: on-failure:5
    depends_on:
      db:
        condition: service_started
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Du musst die DB da komplett entfernen und deine DB Daten eintragen. Probier mal:
Code:
version: "3.9"
services:
  bookstack:
    image: solidnerd/bookstack:master
    container_name: BookStack
    hostname: bookstack
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
    ports:
      - 6875:8080
    volumes:
      - /volume1/docker/bookstack/uploads:/var/www/bookstack/public/uploads:rw
      - /volume1/docker/bookstack/storage-uploads:/var/www/bookstack/storage/uploads:rw
    environment:
      DB_HOST: <syno-ip:db-port>
      DB_DATABASE: <db-name>
      DB_USERNAME: <db-user>
      DB_PASSWORD: <db-passwort>
      APP_KEY: base64:YnFsamt2aDBocDNyZGQxb2YyMng0cGlpcXo1NGFiNWc=
      APP_URL: https://bookstack.yourname.synology.me
      MAIL_DRIVER: smtp
      MAIL_HOST: smtp.gmail.com
      MAIL_PORT: 465
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: Your-own-gmail-address
      MAIL_PASSWORD: Your-own-app-password
      MAIL_FROM: Your-own-gmail-address
      MAIL_FROM_NAME: BookStack
    restart: on-failure:5
DB und User muss natürlich vorher angelegt werden.
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Danke für deine Bemühungen, so in etwa hatte ich es auch schon. Einzig habe ich den Port beim Host vergessen und erhofte mir nun das es so klappt. Leider aber auch nicht, ich bekomme auch keinen Fehler geworfen im Portainer ausser:

1691565633153.png

Die DB sowie der User sind angelegt und verfügen über alle Rechte.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Gibt es mehr Informationen, wenn du rauf klickst?
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Nein dann werde ich gefragt ob ich den Stack löschen möchte
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Der Fehler liegt irgendwo bei dir.... Ich hab gerade den Stack wie er ist und bei mir eingefügt (habe die Volumes gelöscht, weil ich die nicht brauche zum testen) und der Stack wurde deployed. Poste mal deinen Stack. Vielleicht hast du irgendwo einen Fehler drin.
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Das ist nun echt spannend, ich wollte eben das ganze nochmals vesuchen und zuvor die DB löschen / neu anlegen. Da sehe ich das die DB Daten enthalten hat.

Anbei mal meinen Stack (alle XXX sind einfach normal angepasst aber das ist ja auch nichts wichtiges)

Kann ich bei image: solidnerd/bookstack:master auch einfach image: solidnerd/bookstack:latest nehmen oder

Code:
version: "3.9"
services:
  bookstack:
    image: solidnerd/bookstack:master
    container_name: BookStack
    hostname: bookstack
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
    ports:
      - 6875:8080
    volumes:
      - /volume1/docker/bookstack/uploads:/var/www/bookstack/public/uploads:rw
      - /volume1/docker/bookstack/storage-uploads:/var/www/bookstack/storage/uploads:rw
    environment:
      DB_HOST: 192.168.178.77:3306
      DB_DATABASE: bookstack
      DB_USERNAME: bookstackuser
      DB_PASSWORD: XXXXXX
      APP_KEY: base64:XXXXXX
      APP_URL: https://wiki.XXXXX.synology.me
      MAIL_DRIVER: smtp
      MAIL_HOST: mail.XXXXXX.email
      MAIL_PORT: 465
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: noreply@XXXXX.ch
      MAIL_PASSWORD: XXXXX
      MAIL_FROM: noreply@XXXXX.ch
      MAIL_FROM_NAME: BookStack
    restart: on-failure:5
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Bei mir kann ich den Stack deployen. Guck mal in Portainer wirklich in die Logs, ob da mehr steht....
Kann ich bei image: solidnerd/bookstack:master auch einfach image: solidnerd/bookstack:latest nehmen oder
Ja kannst du, aber der ist älter.
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Ich glaube den Fehler gefunden zu haben. Nach Anleitung musste ich ein Verzeichnis: db erstellen. Darin waren Daten ethalten. Diese habe ich gelöscht und nun konnte ich deployen. Nun lande ich auf der Synology Blank Page. In der Anleitung steht aber auch das es bis zu 5 Minuten dauern kann.

Die Datenbak wurde nun auch befüllt oder ist noch dabei befüllt zu werden.

Ich denke somit sollte es nun klappen. Werde jetzt mal abwarten und schauen was sich da tut. Werde dann nochmals Rückmeldung geben.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Du kannst in Portainer auf die Console beim Container klicken, dann siehst du was der Container treibt
 
  • Like
Reaktionen: Grischabock

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Ja jetzt lief alles durch und ich komme auf BookStack drauf.

Danke dir für deine Unterstützung
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Achja ich wusste gar nicht, dass es für Bookstack auch eine Anleitung bei mariushosting gibt. Der hat ja mittlerweile fast alles.
Ich habe das Image von linuxserver im Einsatz.

Bedenke aber, dass du die Daten der ganzen Container, die du nach und nach aufsetzt, wegsichern solltest. Ebenfalls solltest du einen Dump der wichtigsten Datenbanken der MariaDB fahren und die ebenfalls regelmäßig wegsichern.
 

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24
Ich nutze da Hyper Backup, das müsste ja alles sichern oder?

Zudem will ich BookStack nun einsetzen um meine ganzen Konfigurationen nebenbei zu sichern und abzulegen als „wiki“.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Hyper Backup sichert aber nicht die interne MariaDB. Und selbst wenn, kann es sein, dass die Daten inkonsistent sind. Dies gilt auch für mariadb in Docker, wenn man einfach den gemounteten Ordner sichert. Auf der sicheren / konsistenten Seite ist man nur, wenn man einen Dump erstellt und den sichert. Hintergrund: Während eines Dumps wird (zumindest bei relationalen Datenbanken) die zu exportierende Tabelle gelockt, sodass keine Inkonsistenten entstehen.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Du setzt ja Portainer ein um deine Docker Stacks zu verwalten richtig? Dann kannst du zusätzlich dein Portainer sichern mit
Code:
curl --request POST \
--url '<PORTAINER-URL>/api/backup' \
--header 'X-API-Key: <API-KEY>' \
--data '{"password": "<PASSWORT-ODER-LEER>" }' \
--header 'Content-Type: application/json' > /PFAD/portainer-backup.tar.gz
Wenn du dann mal Portainer neu aufsetzt, dann kannst du einfach die Datei auswählen und es ist alles wie vorher. Also die Stacks. Wenn du dann die gemounteten Ordner/DB Dumps noch hast, dann ist alles wie vorher.
 
  • Like
Reaktionen: Adama und plang.pl

Grischabock

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
282
Punkte für Reaktionen
10
Punkte
24


 

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