Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 11.09.2026 · 9 min Lesezeit

BookStack auf dem Synology NAS installieren: das Firmen-Wiki für IT-Dokumentation

BookStack als selbst gehostetes Firmen-Wiki auf dem Synology NAS mit linuxserver.io-Image, MariaDB und Container Manager. Schritt für Schritt mit APP_KEY-Erzeugung, festgelegten Image-Tags und Prüfung nach jedem Schritt.

Geprüft am 30.09.2026 · für bookstack 26.09

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Schwarzes NAS mit vier Laufwerksschächten auf einem hellen Regal neben Büchern in Naturtönen und einer Grünpflanze

Wer im KMU-Alltag IT-Dokumentation betreibt, kennt das Problem: Netzwerkpläne liegen im E-Mail-Postfach, Zugangsdaten stehen auf Notizzetteln, und das Notfallhandbuch ist nicht auffindbar. BookStack ist eine quelloffene, selbst gehostete Dokumentationsplattform (MIT-Lizenz), aufgebaut auf Laravel/PHP, die Wissen hierarchisch in Regalen, Büchern, Kapiteln und Seiten strukturiert. Der WYSIWYG-Editor (Bearbeitung wie in einer Textverarbeitung) erfordert keine technischen Vorkenntnisse. Als Confluence- oder Notion-Alternative ohne Lizenzkosten eignet sich BookStack für KMU, die bereits ein Synology NAS betreiben.

Voraussetzungen

  • Synology NAS mit x86-64-CPU (Intel/AMD) oder ARM64-SoC und DSM 7.2 oder neuer
  • Mindestens 2 GB RAM empfohlen (BookStack ~200 MB + MariaDB ~100 MB im Betrieb)
  • Synology Container Manager aus dem Package Center installiert (ersetzt das ältere Docker-Paket)
  • SSH-Zugang zum NAS für die APP_KEY-Generierung und PUID/PGID-Ermittlung
  • Mindestens 10 GB freier Speicherplatz auf /volume1
  • Feste lokale IP-Adresse oder DDNS-Hostname (für APP_URL)
  • Optional: eigene Domain und SSL-Zertifikat für HTTPS-Betrieb hinter dem Synology Reverse Proxy

Schritt 1: PUID/PGID ermitteln und Ordnerstruktur anlegen

Das linuxserver.io-Image benötigt die korrekten Benutzer- und Gruppen-IDs des NAS-Dateisystems, damit der Container Dateien im gemounteten Volume lesen und schreiben darf. Auf Synology-Systemen weichen diese Werte häufig von den generischen Standardwerten 1000/1000 ab.

Öffnen Sie eine SSH-Verbindung zum NAS (z. B. mit PuTTY oder dem macOS-Terminal) und führen Sie aus:

id

Die Ausgabe sieht beispielsweise so aus:

uid=1026(ihr-benutzer) gid=100(users) groups=100(users),101(administrators)

Notieren Sie die Werte für uid= und gid=. Typisch auf Synology: PUID=1026, PGID=100. Legen Sie danach die Verzeichnisse per File Station oder SSH an:

mkdir -p /volume1/docker/bookstack/config
mkdir -p /volume1/docker/bookstack/db

Verifizieren: Beide Verzeichnisse müssen erscheinen:

ls /volume1/docker/bookstack/
config  db

Schritt 2: APP_KEY generieren

Der APP_KEY ist der Laravel-Verschlüsselungsschlüssel von BookStack. Fehlt er oder ist er leer, startet der Container zwar, zeigt aber eine 500-Fehlerseite. Der Schlüssel muss vor dem ersten Start generiert werden.

Führen Sie in der SSH-Sitzung diesen Einmalbefehl aus. Der Container wird danach sofort entfernt (--rm):

sudo docker run -it --rm --entrypoint /bin/bash \
  lscr.io/linuxserver/bookstack:latest appkey

Die Ausgabe enthält eine Zeile der Form:

base64:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfG=

Kopieren Sie den kompletten String inklusive base64:-Präfix für den nächsten Schritt.

Verifizieren: Die Ausgabe beginnt exakt mit base64: und ist rund 45 Zeichen lang. Sie enthält kein Leerzeichen und endet in der Regel auf =.

Schritt 3: compose.yaml erstellen

Öffnen Sie im Container Manager die Ansicht „Projekt“ und klicken Sie auf „Erstellen“. Wählen Sie als Pfad /volume1/docker/bookstack. Tragen Sie folgende compose.yaml ein und ersetzen Sie die Platzhalter durch Ihre Werte:

  • PUID und PGID: die in Schritt 1 ermittelten Werte
  • APP_URL: die vollständige lokale Adresse Ihres NAS, z. B. http://192.168.1.100:6875 – kein abschließender Slash, exakt das Protokoll, die IP und den Port
  • APP_KEY: der in Schritt 2 generierte base64:...-String
  • DB_PASSWORD und MYSQL_PASSWORD: identischer, sicherer Wert (Sonderzeichen laut linuxserver.io nur korrekt maskiert, am einfachsten ein langes alphanumerisches Passwort)
  • MYSQL_ROOT_PASSWORD: separates, sicheres Root-Passwort für MariaDB
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:v26.09-ls286
    container_name: bookstack
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Europe/Berlin
      - APP_URL=http://192.168.1.100:6875
      - APP_KEY=base64:HIER_GENERIERTEN_KEY_EINFUEGEN
      - DB_HOST=bookstack-db
      - DB_PORT=3306
      - DB_USERNAME=bookstack
      - DB_PASSWORD=BuchstackDB_Passwort123
      - DB_DATABASE=bookstack
      - QUEUE_CONNECTION=database
      - APP_LANG=de
    volumes:
      - /volume1/docker/bookstack/config:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack-db

  bookstack-db:
    image: lscr.io/linuxserver/mariadb:11.8.8
    container_name: bookstack-db
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Europe/Berlin
      - MYSQL_ROOT_PASSWORD=Root_Sicheres_Passwort123
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=BuchstackDB_Passwort123
    volumes:
      - /volume1/docker/bookstack/db:/config
    restart: unless-stopped

networks:
  default:
    name: bookstack-net

Wichtige Details zur compose.yaml:

  • Das version:-Feld fehlt bewusst; die aktuelle Compose-Spezifikation benötigt es nicht mehr.
  • Der interne Container-Port ist 80, nicht 8080.
  • MariaDB speichert ihre Daten unter /config im Container, nicht unter /var/lib/mysql (Eigenheit des linuxserver.io-Images).
  • QUEUE_CONNECTION=database aktiviert asynchrone Verarbeitung für E-Mail-Benachrichtigungen und Webhooks, APP_LANG=de stellt die Oberfläche standardmäßig auf Deutsch.
  • Die Tags sind festgelegt (Stand 30.09.2026). Für Updates tragen Sie den nächsten Tag ein, statt latest zu verwenden.

Verifizieren: Speichern Sie die Datei im Container Manager. Er prüft die YAML-Syntax; erscheint kein roter Fehlerhinweis, ist sie korrekt.

Schritt 4: Stack starten und Logs prüfen

Starten Sie das Projekt im Container Manager über „Starten“. Beide Container, bookstack-db und bookstack, zeigen nach 30 bis 60 Sekunden den Status „Läuft“. Prüfen Sie die Logs des bookstack-Containers direkt im Container Manager unter „Container“ → „bookstack“ → „Log“.

Alternativ per SSH:

sudo docker logs bookstack --tail 50

Erwartete Ausgabe (letzte Zeilen) nach erfolgreichem Start:

[migrations] ...
[ls.io-init] done.

Verifizieren: Öffnen Sie im selben Netzwerk die als APP_URL eingetragene Adresse, z. B. http://192.168.1.100:6875. Die BookStack-Anmeldeseite erscheint. Erscheint eine 500-Fehlerseite, ist der APP_KEY nicht korrekt eingetragen (Schritt 2). Erscheint ein kaputtes Layout ohne CSS, stimmt APP_URL nicht mit der tatsächlichen Adresse überein (Schritt 3). Ist die Seite von anderen Geräten nicht erreichbar, geben Sie TCP-Port 6875 in der DSM-Firewall frei.

Schritt 5: Erster Login und Passwort ändern

Melden Sie sich mit den Standard-Zugangsdaten an:

  • Benutzername: admin@admin.com
  • Passwort: password

Diese Zugangsdaten sind öffentlich bekannt und müssen sofort nach dem ersten Login geändert werden. Klicken Sie oben rechts auf das Profilbild und wählen Sie „Profil bearbeiten“. Ändern Sie dort E-Mail-Adresse, Anzeigename und Passwort; die Oberfläche ist über APP_LANG=de bereits auf Deutsch eingestellt.

Verifizieren: Melden Sie sich nach der Passwortänderung ab und mit dem neuen Passwort wieder an. Der Login mit dem alten Passwort password muss nun fehlschlagen.

Schritt 6: IT-Doku-Struktur anlegen (KMU-Vorlage)

BookStack organisiert Wissen in einer vierstufigen Hierarchie: Regale (Shelves) → Bücher (Books) → Kapitel (Chapters) → Seiten (Pages). Für ein KMU-IT-Wiki eignet sich diese Grundstruktur:

RegalBuchBeispiel-Kapitel
InfrastrukturNetzwerkIP-Adresspläne, VLANs, Firewall-Regeln
InfrastrukturServer & DiensteSynology NAS, Proxmox, Docker-Stacks
InfrastrukturNotfallhandbuchWiederanlaufplan, Kontaktliste, RTO/RPO
BetriebZugangsverwaltungVPN-Zugänge, Admin-Accounts, MFA-Status
BetriebOnboardingIT-Checkliste neue Mitarbeiter, Software-Liste
ProjekteLaufende ProjekteEinzelne Projektbücher nach Bedarf

Erstellen Sie das erste Regal über Regale > Neues Regal. Bücher erzeugen Sie über die Schaltfläche „Neues Buch“ im jeweiligen Regal. Seiten lassen sich direkt im WYSIWYG-Editor anlegen – mit Tabellen, Codeblöcken, Bildern und eingebetteten Dateien. Für die Netzwerkdokumentation hilft die Anleitung Netzwerkdokumentation und IP-Adressplan (IPAM) erstellen. Den Aufbau eines BSI-konformen Notfallhandbuchs beschreibt IT-Notfallhandbuch & BCM nach BSI 200-4: Vorlage für KMU.

BookStack unterstützt rollenbasierte Zugriffskontrolle (RBAC) auf jeder Hierarchieebene – vom Regal bis zur einzelnen Seite. So erhalten nur berechtigte Mitarbeiter Zugriff auf interne Admin-Dokumentation. Passwörter selbst gehören in einen Passwortmanager, nicht ins Wiki.

Verifizieren: Legen Sie eine Testseite an, speichern Sie sie und suchen Sie über das Suchfeld oben nach einem Stichwort aus dem Inhalt. Erscheint die Seite in den Ergebnissen, funktioniert die Volltextsuche.

Eckdaten auf einen Blick

ParameterWert
Image (BookStack)lscr.io/linuxserver/bookstack:v26.09-ls286
Stand der Tags30.09.2026 (BookStack v26.09)
Image (MariaDB)lscr.io/linuxserver/mariadb:11.8.8
Externer Port6875 (→ Container-intern 80)
Volume BookStack/volume1/docker/bookstack/config:/config
Volume MariaDB/volume1/docker/bookstack/db:/config
RAM-Bedarf (Betrieb)~200 MB (BookStack) + ~100 MB (MariaDB)
Architekturx86-64 (amd64) + ARM64
LizenzMIT (kostenlos, Open Source)
Standard-Loginadmin@admin.com / password (sofort ändern!)

Troubleshooting / Typische Fehler

  • 500 Internal Server Error nach dem ersten Start: Ursache: APP_KEY ist leer oder fehlt. Lösung: Schritt 2 wiederholen, den base64:...-String korrekt in die compose.yaml eintragen und den Stack neu starten.
  • Kaputtes Layout – kein CSS, keine Bilder: Ursache: APP_URL stimmt nicht mit der tatsächlichen Erreichbarkeit überein (fehlender Port, falsches Protokoll, IP statt Domain). Lösung: APP_URL korrigieren und nach Änderung im laufenden Container ausführen:
    sudo docker exec -it bookstack php /app/www/artisan bookstack:update-url http://ALTE_URL http://NEUE_URL
  • SQLSTATE[HY000] [2002] Connection refused beim ersten Start: Ursache: BookStack-Container startet schneller als MariaDB. Lösung: depends_on ist in der compose.yaml bereits vorhanden; bei hartnäckigem Problem den bookstack-Container manuell neu starten:
    sudo docker restart bookstack
  • Dateiberechtigungsfehler, Container kann nicht schreiben: Ursache: PUID/PGID stimmen nicht mit dem tatsächlichen NAS-Benutzer überein. Lösung: Per SSH id ausführen, korrekte Werte in der compose.yaml eintragen, Stack neu starten.
  • MariaDB-Zugangsdaten werden nach Änderung nicht übernommen: Ursache: MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD werden nur beim allerersten Start ausgewertet. Lösung: Entweder das Verzeichnis /volume1/docker/bookstack/db vollständig löschen (Datenverlust!) und neu starten, oder die Änderungen direkt per docker exec in MariaDB vornehmen.
  • BookStack von anderen Geräten nicht erreichbar: Ursache: Synology-Firewall blockiert Port 6875. Lösung: In der DSM-Systemsteuerung unter „Sicherheit > Firewall“ eine Regel für TCP-Port 6875 anlegen.
  • Warnung „version is obsolete“: Ursache: Ein version:-Feld ist angegeben. Lösung: Feld entfernen; die Compose-Spezifikation benötigt es nicht mehr.
  • Falscher interner Port (8080 statt 80): Ursache: Veraltete Anleitungen beschreiben ein anderes Image (solidnerd/bookstack), das auf 8080 lauscht. Das linuxserver.io-Image lauscht intern auf Port 80. Korrekte Konfiguration: 6875:80.

Häufige Fragen

Wie generiere ich den APP_KEY, wenn BookStack noch nicht läuft?

Mit dem Einmalbefehl aus Schritt 2. Den ausgegebenen base64:...-String tragen Sie vor dem ersten Start als APP_KEY in die compose.yaml ein.

Welche PUID/PGID-Werte sind auf meinem Synology NAS korrekt?

Per SSH id eingeben. Die angezeigte uid= und gid= des aktuellen Benutzers sind die richtigen Werte. Typisch auf Synology: PUID=1026, PGID=100 – diese Werte können je nach NAS-Modell und DSM-Version abweichen.

Kann ich BookStack hinter dem Synology Reverse Proxy mit HTTPS betreiben?

Ja. Im Synology Reverse Proxy einen Eintrag anlegen: Quelle = HTTPS Port 443 (eigene Domain), Ziel = http://localhost:6875. Danach APP_URL auf die HTTPS-Adresse ändern und im laufenden Container ausführen: sudo docker exec -it bookstack php /app/www/artisan bookstack:update-url http://ALTE_URL https://NEUE_URL. Kein TLS-Zertifikat im Container nötig.

Wie aktualisiere ich BookStack auf eine neue Version?

Sichern Sie zuerst beide Datenordner. Tragen Sie dann in der compose.yaml den neuen Tag ein (Liste auf Docker Hub) und erstellen Sie das Projekt im Container Manager neu; der Container Manager lädt das Image und startet den Stack. Die Daten liegen außerhalb des Containers in /volume1/docker/bookstack/ und bleiben erhalten.

Was bedeutet QUEUE_CONNECTION=database?

Diese Einstellung aktiviert eine interne Warteschlange für zeitintensive Aufgaben wie E-Mail-Benachrichtigungen und Webhook-Aktionen. Ohne sie werden solche Aktionen synchron ausgeführt und können zu Timeouts führen. Sinnvoll, sobald Sie E-Mail-Benachrichtigungen per SMTP nutzen.

Wie sichere ich meine BookStack-Daten?

Stoppen Sie das Projekt und sichern Sie zwei Verzeichnisse, etwa mit Hyper Backup: /volume1/docker/bookstack/config (alle Uploads, Themes, .env-Datei) und /volume1/docker/bookstack/db (MariaDB-Daten). Ein Export einzelner Bücher (z. B. als ZIP, HTML oder PDF) ergänzt das Backup, ersetzt es aber nicht.

Unterstützt BookStack LDAP oder Active Directory?

Ja. BookStack unterstützt LDAP/Active-Directory-Integration sowie SAML2 (Single Sign-On) ohne Zusatzkosten. Die Konfiguration erfolgt über Umgebungsvariablen in der compose.yaml, relevant für KMU, die bereits eine Windows-Domäne betreiben und Benutzer nicht doppelt pflegen möchten.

Fazit

BookStack ist ein ausgereiftes, MIT-lizenziertes Wiki für die IT-Dokumentation im KMU: aktiv gepflegt, sparsam im Ressourcenbedarf und mit dem linuxserver.io-Image auf dem Synology NAS gut zu betreiben. Regale, Bücher, Kapitel und Seiten strukturieren mehr als eine Notizsammlung, bei weniger Aufwand als Confluence. Für wachsende Teams folgen Rechte pro Ebene und die LDAP-Anbindung. Alternativen sind Outline (Team-Wiki) und Docmost (Confluence-Alternative).

Weiterführende Anleitungen und Quellen

Offizielle Quellen: linuxserver.io BookStack-Dokumentation | Docker Hub – lscr.io/linuxserver/bookstack | BookStack offizielle Installationsdokumentation