Bookstack Erfahrungen und Pfadangaben

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Hallo,

ich bin heute zufällig auf Bookstack gestossen und habe mir Bookstack via Docker installiert und ein wenig gespielt.

Wie sind Eure Erfahrungen mit Bookstack?

Was mir auffiel, dass Marius (Marius Hosting) in seInter Anleitung die Ordner …/bookstack/uploads/ und /bookstack/storage/ mountet.

An anderer Stelle habe ich gesehen, dass nur …/bookstack/config/ als Volume definiert wird; - /volume1/docker/bookstack/config:/config
Das habe ich eben gemacht und festgestellt, dass in den Ordner config nichts abgelegt wird.

Diese Pfade irritieren mich gerade ein wenig.

Ich habe noch nicht herausgefunden, ob es möglich ist, alle Inhalte / Seiten zu sichern bzw. zu exportieren. Einzelne Seiten sind im Markdown-Format eportierbar.

Viele Grüße

Nordiger
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Welche Ordner gemountet werden bzw verwendet werden hängt vom verwendeten Image ab.
LinuxServer.io hat es nur mit /config und solidnerd nutzt das von dir beschriebenen. Du musst schon gucken welches Image welche Pfade benötigt
 
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.982
Punkte für Reaktionen
577
Punkte
134
Es gibt verschiedene Images für Bookstack.

Ich nutze eins von Linuxserver (ghcr.io/linuxserver/bookstack) welches den von dir genannten Pfad nutzt.

Marius nutzt, wenn ich recht erinnere, ein anderes...
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Wenn es in einem Post um ein konkretes Docker Image geht, dann sollte man das Image auch immer nennen, besser noch direkt den Link auf die DockerHub-Seite teilen. Bzgl. der Anleitung von Marius wäre ein Link auf die jeweilige Anleitung genauso sinnvoll.

Es hilft ungemein, wenn man als Helfender nicht raten muss oder selbst recherchieren muss, um überhaupt eine Chance zu haben zu verstehen, womit wir es genau zu tun haben.
 

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Asche auf mein Haupt. Mir war nicht bewusst, dass es sich um zwei verschiedene Images handelt, die verschiedene Pfade nutzen.

Ursprünglich habe ich meinen Stack nach der Anleitung von Marius aufgebaut. Marius nutzt folgendes: solidnerd/bookstack:master

Ich habe meinen Stack jetzt umgebaut und das Image von Linuxserver eingebaut. Fange mal bei Null an mit der Installation
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Schau mal auf die Dockerhub Beschreibung: https://hub.docker.com/r/linuxserver/bookstack, im Bereich "Usage" ist dort eine Beispielhafte compose Datei und ein Docker Run Befehl angegeben. Drunter findet man auch die Erläuterung zu den Parametern

In der Tat verwendet das Linuxserver Image das /config Verzeichnis
 

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Ich bin gerade ein wenig ratlos und frustriert. Nach vielen Versuchen habe ich vorhin geschafft, mit dem nachfolgenden Stack Bookstack zum Laufen zu bringen:

version: '3.9'

services:
bookstack_db:
image: lscr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
PUID: 1024
PGID: 100
MYSQL_ROOT_PASSWORD: root_bookstack
TZ: Europe/Berlin
MYSQL_DATABASE: bookstackapp
MYSQL_USER: bookstack
MYSQL_PASSWORD: bookstack
MYSQL_TCP_PORT: 3309
ports:
- 3309:3306
volumes:
- /volume1/docker/bookstack/bookstack_db_data:/config
restart: unless-stopped
networks:
- bookstack

bookstack:
image: linuxserver/bookstack
container_name: Bookstack
environment:
PUID: 1024
PGID: 100
APP_URL: http://192.168.178.10:6875
DB_HOST: bookstack_db
DB_Port: 3309
DB_USER: bookstack
DB_PASSWORD: bookstack
DB_DATABASE: bookstackapp
volumes:
- /volume1/docker/bookstack/bookstack_app_data:/config
ports:
- 6875:80
restart: always
depends_on:
- bookstack_db
networks:
- bookstack

networks:
bookstack:
name: bookstack

Die Parameter sollten mit denen von Linuxserver.io für beide Container passen.

Da ich die Kennwörter nur zum Testen ohne Komplexität angegeben habe, wollte ich das Ganze mit besseren Kennwörtern wiederholen. Also die Stacks gestoppt, die Container gelöscht, die gemappten Verzeichnisse wieder leer gemacht. Hätte ich wohl lassen sollen .. wobei es mischt Schin beruhigt hätte, wenn ich das reproduzierbar zum Laufen bringen könnte mit dem Stack.

Der Container Bookstack hat im Log gleich am Anfang folgende Fehlermeldung:

Code:
SQLSTATE[HY000] [1130] Host 'Bookstack.bookstack' is not allowed to connect to this MariaDB server (SQL: select * from information_schema.tables where table_schema = bookstackapp and table_name = migrations and table_type = 'BASE TABLE')

Ich habe den Port der Datenbank auf 3309 gesetzt, da der Port 3306 an anderer Stelle bereits belegt ist. Zur Zeit weiß ich ehrlich gesagt nicht, wo der Fehler liegen könnte, da der Stack vorhin lief.

Der Container mit der Datenbank wurde korrekt auf den Port 3309 gesetzt. Siehe Anhang.
 

Anhänge

  • Bildschirmfoto 2023-08-20 um 16.40.27.png
    Bildschirmfoto 2023-08-20 um 16.40.27.png
    116,3 KB · Aufrufe: 5
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.982
Punkte für Reaktionen
577
Punkte
134
Was ich vermisse, ist bei deinem MariaDB-Container ein Pfad zum eigentlichen Datenbank-Ordner. Der Zielpfad bei meinem DB-Container lautet /Syno-Pfad/:/var/lib/mysql.

Dort liegen die eigentlichen Datenbank-Dateien. Solange die vorhanden sind, ist auch die Datenbank noch da.

Vermutlich hat Docker automatisch einen Pfad angelegt, der nicht unter /volume1/docker liegt.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Hier habe ich mal ein Compose gepostet, welches funktioniert, wenn das hilft.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.982
Punkte für Reaktionen
577
Punkte
134
Im Zusammenhang der Message von @plang.pl sehe ich jetzt den Unterschied: Ich nutze das Original-Image von MariaDB, nicht das von Linuxserver.

Mein MariaDB-Container ist auch alleine stehend, da ich den auch für andere Container als Datenbank nutze.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Ich nutze auch nicht die MariaDB von linuxserver. Und meine DB läuft auch nicht nur für BookStack.
Für den Test hatte ich das mal so gemacht
 

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Das Original von MariaDB habe ich vorhin zum Laufen gebracht (als eigenen Container) und nutze das Original von MariaDB auch für Paperpass-NGX. Auf den Container von MariaDB können ich (bzw. kann ich mit für den Container der Paperless_DB) auch via phpMyadmin zugreifen.

Da ich einen Container mit der original Maria DB habe, könnte ich doch für Bookstack auch darauf zugreifen oder?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Jap. Würde ich dann auch so machen an deiner Stelle
 

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Müssen dann die Container Paperless, MariaDB und Bookstack im gleichen Netzwerk sein? Oder die MariaDB in zwei Netzwerken (Paperless plus Bootsstack)?

Muss dann umdenken. Habe einen Stack in Portainer für die Datenbank und Paperless. Das wäre dann ja wohl für die Zukunft ungünstig.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.605
Punkte für Reaktionen
758
Punkte
154
Wenn sie nicht im default Bridge Network sind, dann kannst du syno-ip:port nutzen. Dann müssen die nicht im gleichen Netzwerk sein.
 

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
Habe gerade ein Problem, dass ich wohl selbst verschuldet habe. Habe mich als Root in meiner Maria DB über phpMyadmin anmeldet. Ich hatte in meinem Stack für Paperless (wahrscheinlich blöder Weise) den Root-User vorgegeben und den DB-User mit gleichem Login und Passwort gesetzt.

Jetzt sehe in in phpMayAdmin nur das Informationsschema, was mich irritiert.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.982
Punkte für Reaktionen
577
Punkte
134
Du darfst dann aber nicht den MariaDB-Container in den Compose-Dateien der einzelnen Stacks haben, sonst stören die sich.

Ich habe einen einzelnen Stack und damit Netzwerk für MariaDB:

Code:
version: '3'

services:
  mariadb:
    container_name: MariaDB
    ports:
      - 3306:3306
    image: mariadb:latest
    labels:
      com.centurylinklabs.watchtower.monitor-only: "true"
    healthcheck:
      test: [ 'CMD', 'mariadb-admin', 'ping', '-u', '<user>', '-p<password>' ]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /volume1/DockerDB/mariadb:/var/lib/mysql
      - /volume1/docker/mariadb:/etc/mysql/conf.d
    restart: always
    cpu_shares: 90
    networks:
      - mariadb
   
networks:
  mariadb:
    external: false
    name: mariadb

(Den extra Share "DockerDB" habe ich angelegt, damit ich dort die "Daten-Prüfsumme" deaktivieren kann)

Mein Bookstack Compose-File sieht dann so aus:

Code:
version: "2"
services:
  bookstack:
    image: ghcr.io/linuxserver/bookstack
    container_name: BookStack
    environment:
       - APP_URL=https://<URL>
       - DB_HOST=MariaDB
       - DB_USER=<db_user>
       - DB_PASSWORD=<db_password>
       - DB_DATABASE=bookstack
       - TZ=Europe/Berlin
    volumes:
      - /volume1/docker/bookstack:/config
    ports:
      - 6875:80
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 5
    restart: unless-stopped
    networks:
      - mariadb
   
networks:
  mariadb:
    external: true

Die entscheidenden Zeilen sind die "networks"-Zeilen, die flanschen den Container an das Datenbank-Netz.

Ähnlich sieht's dann bei Paperless, Nextcloud und Ff_Sync aus...
 
  • Like
Reaktionen: Nordlicht01

Nordlicht01

Benutzer
Mitglied seit
31. Aug 2014
Beiträge
271
Punkte für Reaktionen
10
Punkte
18
@Adama Vielen Dank. Werde das mal nachbauen. Die User für die MariaDB hast Du über SSH angelegt?
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.982
Punkte für Reaktionen
577
Punkte
134
Kannst du machen.

Ich hab das über HeidiSQL gemacht. Ist quasi eine Art MyPHPAdmin für den Desktop. Muss nicht installiert werden, läuft auch als Portable-Version.
 


 

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