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

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

BookStack als selbstgehostetes Firmen-Wiki auf dem Synology NAS – mit linuxserver.io-Image, MariaDB und Container Manager. Schritt-für-Schritt mit APP_KEY-Generierung und Verifikation nach jedem Schritt.

BookStack: Wissen im NAS: Regale, Bücher, Seiten. KI-generiert

Wer im KMU-Alltag IT-Dokumentation betreibt, kennt das Problem: Netzwerkpläne liegen im E-Mail-Postfach, Zugangsdaten stehen auf Notizzetteln, und das Notfallhandbuch existiert – irgendwo. BookStack löst genau dieses Problem. Es ist eine quelloffene, selbst gehostete Dokumentationsplattform (MIT-Lizenz), aufgebaut auf Laravel/PHP, die Wissen hierarchisch in Regalen, Büchern, Kapiteln und Seiten strukturiert. Der integrierte WYSIWYG-Editor macht sie für alle Teammitglieder zugänglich, ohne technische Vorkenntnisse zu verlangen. Als Confluence- oder Notion-Alternative ohne laufende Lizenzkosten ist BookStack besonders für IT-Admins und KMU-Betreiber interessant, die bereits ein Synology NAS als Self-Hosted-Infrastruktur 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.

Öffne eine SSH-Verbindung zu deinem NAS (z. B. mit PuTTY oder dem macOS-Terminal) und führe folgenden Befehl aus:

id

Die Ausgabe sieht beispielsweise so aus:

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

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

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

Verifizieren: Führe nach dem Anlegen folgenden Befehl aus – 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. Ohne ihn – oder mit einem leeren Wert – startet der Container zwar, zeigt aber sofort eine 500-Fehlerseite. Der Schlüssel muss vor dem ersten Start generiert werden.

Führe in der SSH-Sitzung folgenden Einmalbefehl aus. Der Container wird nach der Ausgabe sofort wieder entfernt (--rm):

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

Die Ausgabe enthält eine Zeile der Form:

base64:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfG=

Kopiere den kompletten String inklusive base64:-Präfix. Du trägst ihn im nächsten Schritt in die compose.yaml ein.

Verifizieren: Die Ausgabe beginnt exakt mit base64: und ist rund 45 Zeichen lang. Enthält sie kein Leerzeichen (abgesehen vom abschließenden =), ist sie gültig.

Schritt 3: compose.yaml erstellen

Öffne im Synology Container Manager die Ansicht „Projekt“ und klicke auf „Erstellen“. Wähle als Pfad /volume1/docker/bookstack. Trage folgende compose.yaml ein und ersetze die markierten Platzhalter durch deine eigenen Werte:

  • PUID und PGID: die in Schritt 1 ermittelten Werte
  • APP_URL: die vollständige lokale Adresse deines 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
  • MYSQL_ROOT_PASSWORD: separates, sicheres Root-Passwort für MariaDB
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    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
    volumes:
      - /volume1/docker/bookstack/config:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack-db

  bookstack-db:
    image: lscr.io/linuxserver/mariadb:latest
    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 – neuere Versionen des Synology Container Managers (Compose-Spec v2+) lehnen es ab.
  • Der interne Container-Port ist 80, nicht 8080 – ein häufiger Fehler aus veralteten Anleitungen, die ein anderes Image beschreiben.
  • MariaDB speichert ihre Daten unter /config im Container, nicht unter /var/lib/mysql – so ist es im linuxserver.io-Image konzipiert.
  • QUEUE_CONNECTION=database aktiviert asynchrone Verarbeitung für E-Mail-Benachrichtigungen und Webhooks.

Verifizieren: Speichere die Datei im Container Manager. Er validiert die YAML-Syntax beim Speichern. Erscheint kein roter Fehlerhinweis, ist die Syntax korrekt.

Schritt 4: Stack starten und Logs prüfen

Starte das Projekt im Container Manager über die Schaltfläche „Starten“. Beide Container – bookstack-db und bookstack – sollten innerhalb von 30–60 Sekunden den Status „Läuft“ anzeigen. Prüfe die Logs des bookstack-Containers direkt im Container Manager unter „Container“ → „bookstack“ → „Log“.

Alternativ per SSH:

docker logs bookstack --tail 50

Erwartete Ausgabe (letzte Zeilen) nach erfolgreichem Start:

[services.d] starting services
[services.d] done.
Server configured; please restart nginx.

Verifizieren: Öffne in einem Browser auf demselben Netzwerk die Adresse, die du als APP_URL eingetragen hast, z. B. http://192.168.1.100:6875. Du siehst die BookStack-Anmeldeseite. Erscheint eine 500-Fehlerseite, ist der APP_KEY nicht korrekt eingetragen – zurück zu Schritt 2. Erscheint ein kaputtes Layout ohne CSS, stimmt APP_URL nicht mit der tatsächlichen Adresse überein – Schritt 3 korrigieren.

Schritt 5: Erster Login und Passwort ändern

Melde dich 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. Klicke oben rechts auf das Profilbild und wähle „Profil bearbeiten“. Ändere dort E-Mail-Adresse, Anzeigename und Passwort. Unter „Einstellungen“ (Zahnrad-Symbol) passt du außerdem die Sprache auf Deutsch an: Settings > App Language > Deutsch.

Verifizieren: Melde dich nach der Passwortänderung ab und erneut mit dem neuen Passwort 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 empfiehlt sich folgende Grundstruktur als Ausgangspunkt:

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

Erstelle das erste Regal über Bücher > Regale > Neues Regal. Bücher erzeugst du über den grünen Button „Neues Buch“ im jeweiligen Regal. Seiten lassen sich direkt im WYSIWYG-Editor anlegen – mit Tabellen, Codeblöcken, Bildern und eingebetteten Dateien. Für weiterführende Überlegungen zur Netzwerkdokumentation empfiehlt sich unsere Anleitung zur 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. Das ist nützlich, wenn nicht alle Mitarbeiter Zugriff auf sensible Zugangsdaten oder interne Admin-Dokumentation erhalten sollen.

Verifizieren: Lege eine erste Testseite in einem Buch an, speichere sie und rufe sie anschließend über die Suchfunktion (Lupen-Symbol oben rechts) mit einem Stichwort aus dem Seiteninhalt auf. BookStack indiziert alle Seiteninhalte automatisch für die Volltextsuche – erscheint die Seite in den Suchergebnissen, funktioniert die Indizierung korrekt.

Eckdaten auf einen Blick

ParameterWert
Image (BookStack)lscr.io/linuxserver/bookstack:latest
Stabiler Tag (10.06.2026)lscr.io/linuxserver/bookstack:26.05.1
Image (MariaDB)lscr.io/linuxserver/mariadb:latest
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:
    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:
    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.
  • Container Manager lehnt compose.yaml ab: Ursache: Ein version:-Feld ist angegeben. Lösung: Das Feld vollständig entfernen – Compose-Spec v2+ 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?

Per SSH-Einmalbefehl: docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey. Der Container wird nach der Ausgabe sofort wieder entfernt. Den ausgegebenen base64:...-String trägst du als APP_KEY in die compose.yaml ein, bevor du den Stack zum ersten Mal startest.

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: 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?

Im Container Manager das Projekt öffnen, ggf. den Image-Tag anpassen (oder :latest belassen), dann per SSH im Projektverzeichnis docker compose pull && docker compose up -d ausführen. Alle Daten bleiben erhalten, da sie außerhalb des Containers in /volume1/docker/bookstack/ gespeichert sind. Für festes Versions-Pinning statt :latest den Tag 26.05.1 verwenden.

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. Empfohlen sobald du SMTP-E-Mail-Benachrichtigungen nutzen möchtest.

Wie sichere ich meine BookStack-Daten?

Zwei Verzeichnisse sichern genügt: /volume1/docker/bookstack/config (alle Uploads, Themes, .env-Datei) und /volume1/docker/bookstack/db (MariaDB-Daten). Alternativ in BookStack unter „Administration > Wartung“ eine ZIP-Export-Sicherung des gesamten Inhalts erstellen.

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 – interessant für KMUs, die bereits eine Windows-Domäne betreiben und Benutzer nicht doppelt pflegen möchten.

Fazit

BookStack ist eines der ausgereiftesten Self-Hosted-Wikis für KMU-IT-Admins: MIT-lizenziert, aktiv gepflegt, sparsam im Ressourcenverbrauch und mit dem linuxserver.io-Image äußerst einfach auf dem Synology NAS zu betreiben. Die hierarchische Struktur aus Regalen, Büchern, Kapiteln und Seiten bietet genau das richtige Maß an Organisation – mehr als eine flache Notizsammlung, weniger Overhead als Confluence. Wer einmal die Grundstruktur mit Infrastruktur-Regal, Netzwerkbuch und Notfallhandbuch angelegt hat, wird schnell merken, wie viel effizienter die tägliche IT-Arbeit mit einer zentralen Wissensbasis wird. Für Teams in wachsenden KMUs sind die RBAC-Funktionen und die LDAP-Integration der natürliche nächste Schritt. Als Ergänzung findest du im gleichen Wissens-Cluster zwei weitere Self-Hosted-Doku-Alternativen: Outline auf Synology NAS – Team-Wiki als Notion-Alternative und Docmost auf Synology NAS – Confluence-Alternative.

Weiterführende Anleitungen und Quellen

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