BookStack (Stack) mit Synology mariaDB

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Grischabock

Benutzer
Registriert
10. Sep. 2009
Beiträge
294
Reaktionspunkte
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
 
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.
 
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.
 
Nein dann werde ich gefragt ob ich den Stack löschen möchte
 
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.
 
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
 
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.
 
Du kannst in Portainer auf die Console beim Container klicken, dann siehst du was der Container treibt
 
  • Like
Reaktionen: Grischabock
Ja jetzt lief alles durch und ich komme auf BookStack drauf.

Danke dir für deine Unterstützung
 
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.
 
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“.
 
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.
 
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

Additional post fields

 

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