Skip to main content

BookStack – Installation, Datenbank & Backup-Dokumentation

1. Zweck

BookStack dient als zentrale Wissens- und Projektdokumentation im Heimnetz.
Die Anwendung nutzt eine externe MariaDB-Datenbank, um Daten persistent, zentral und backupfähig zu speichern.


2. Systemübersicht

Komponente Beschreibung
Anwendung BookStack
Betriebssystem Linux
Webserver Apache / Nginx (je nach Setup)
PHP PHP 8.x
Datenbank MariaDB (externer DB-Server)
Backup-Ziel NAS
Authentifizierung lokal (BookStack intern)

3. Installationsart

BookStack ist nativ installiert (kein Docker).

Installationspfad:


/var/www/bookstack

Konfigurationsdatei:


/var/www/bookstack/.env

4. Datenbank-Anbindung

4.1 Verwendete Datenbank

BookStack nutzt eine externe MariaDB-Datenbank.

Aktive Konfiguration (.env):


DB_HOST=<DB-SERVER> DB_PORT=3306 DB_DATABASE=bookstack DB_USERNAME=bookstack DB_PASSWORD=***** DB_CONNECTION=mysql

4.2 Datenbank-Design

  • Eigene Datenbank: bookstack

  • Eigener DB-User: bookstack

  • Rechte ausschließlich auf bookstack.*

  • Charset: utf8mb4

  • Collation: utf8mb4_unicode_ci

Dieses Design erlaubt:

  • klare Trennung pro Anwendung

  • einfache Migration

  • spätere HA-Erweiterung (Proxy/VIP)


5. Dateibasierte Daten (Uploads)

Neben der Datenbank speichert BookStack Dateien lokal.

Relevante Pfade:


/var/www/bookstack/storage/uploads /var/www/bookstack/public/uploads (falls vorhanden)

Diese Verzeichnisse enthalten:

  • Bilder

  • Dateianhänge

  • hochgeladene Assets

Diese Daten sind nicht in der Datenbank enthalten und müssen separat gesichert werden.


6. Backup-Strategie

6.1 Datenbank-Backup (MariaDB)

Die Datenbank wird zentral auf dem MariaDB-Server gesichert.

Verwendete Methode:

  • mariabackup

  • zusätzliche Binlog-Sicherung

  • Ziel: NAS (SMB)

Eigenschaften:

  • konsistente Full-Backups

  • Point-in-Time-Recovery möglich

  • automatisiert per Cron


6.2 Datei-Backup (BookStack Uploads)

Die Upload-Verzeichnisse werden regelmäßig gesichert.

Zu sichernde Pfade:


/var/www/bookstack/storage/uploads /var/www/bookstack/public/uploads

Beispiel:


tar czvf bookstack_uploads_$(date +%F).tar.gz \ /var/www/bookstack/storage/uploads \ /var/www/bookstack/public/uploads

Backup-Ziel:


NAS:/backup/bookstack/

7. Wiederherstellung (Disaster Recovery)

7.1 Datenbank

  1. MariaDB-Server bereitstellen

  2. Backup mittels mariabackup zurückspielen

  3. Binlogs einspielen (optional)

7.2 Uploads


tar xzvf bookstack_uploads_<DATUM>.tar.gz -C /

7.3 Anwendung

  • .env prüfen (DB_HOST)

  • Cache leeren:


php artisan config:clear php artisan cache:clear

8. Wartung & Betrieb

Cache / Config neu laden


php artisan config:clear php artisan cache:clear

Wartungsmodus


php artisan down php artisan up

Migrationen


php artisan migrate --force

9. Erweiterbarkeit / Zukunft

Geplant bzw. möglich:

  • MariaDB-HA (Primary/Replica)

  • DB-Proxy mit VIP (HAProxy/Nginx)

  • Monitoring (Prometheus/Grafana)

  • Externe Authentifizierung (LDAP/SSO)

BookStack muss dafür nicht angepasst werden – nur der DB-Endpunkt.


10. Fazit

  • BookStack läuft stabil mit externer MariaDB

  • Daten sind sauber getrennt (DB / Files)

  • Backup ist konsistent und nachvollziehbar

  • Setup ist HA-fähig vorbereitet