Team-Dokumentation stirbt meist auf eine von zwei Arten: verstreut über Chat-Threads, die niemand durchsuchen kann, oder begraben in einem Wiki, das so umständlich ist, dass niemand es pflegt. BookStack ist das seltene selbst gehostete Wiki, das Leute tatsächlich benutzen. Inhalte liegen in Regalen, Büchern, Kapiteln und Seiten — eine Struktur, die jeder ohne Schulung versteht. Und es braucht kaum Server.
Warum BookStack
- Offensichtliche Struktur. Bücher und Kapitel statt eines flachen Seitenhaufens.
- Ein Editor, der niemanden abschreckt. Standardmäßig WYSIWYG, Markdown für alle, die es lieber mögen.
- Richtige Berechtigungen. Rollen pro Regal, Buch oder Seite — HR-Dokumente bleiben vor Externen verborgen.
- Firmen-Login. LDAP, SAML2 und OpenID Connect sind eingebaut.
- Ihre Daten. Alles liegt in einer MariaDB-Datenbank und einem Ordner auf Ihrem Server.
Es ist nicht für alles das richtige Werkzeug. Entwicklerdokumentation, die sich gemeinsam mit dem Code ändern soll, gehört ins Repository, nicht ins Wiki.
Was es braucht
BookStack ist leicht. Für die meisten Teams ist Micro-IP — 1 vCPU, 2 GB, $10 im Monat — mehr als genug. Die eigene IP sorgt dafür, dass Kollegen es per HTTPS auf Ihrer Domain erreichen. Der Speicher wächst mit hochgeladenen Screenshots und PDFs, nicht mit der Seitenzahl.
Installation mit Docker Compose
Wir nutzen die verbreiteten Images von LinuxServer.io. Erzeugen Sie zuerst einen Anwendungsschlüssel:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Kopieren Sie den ausgegebenen Wert base64:.... Legen Sie dann docker-compose.yml an:
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://wiki.example.com
- APP_KEY=base64:paste-your-key-here
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=change-me
volumes:
- ./bookstack:/config
ports:
- 127.0.0.1:6875:80
depends_on:
- db
restart: unless-stopped
db:
image: lscr.io/linuxserver/mariadb:latest
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=change-me-too
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=change-me
volumes:
- ./db:/config
restart: unless-stopped
docker compose up -d
docker compose logs -f bookstack
APP_URL muss genau der Adresse entsprechen, die die Leute nutzen, inklusive https://. Liegt es daneben, brechen Bilder und Links auf seltsame Weise. Mehr zu Compose in unserer Anleitung zum Stack-Deployment.
HTTPS und erster Login
Lassen Sie eine Subdomain auf den Server zeigen (wie), stellen Sie nginx vor 127.0.0.1:6875 und holen Sie ein Zertifikat mit certbot — die Reverse-Proxy-Anleitung führt Sie durch.
Melden Sie sich dann mit dem Standardkonto an: admin@admin.com / password. Ändern Sie E-Mail und Passwort sofort, bevor Sie den Link teilen. Alle anderen bekommen eigene Konten oder melden sich über Ihren Identity Provider an.
Backups
Zwei Dinge sind zu schützen: die Datenbank und die Uploads in ./bookstack. Ein nächtlicher Job wie dieser deckt die Datenbank ab:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
Sichern Sie danach /var/backups und den Compose-Ordner extern — genau das erledigt unsere restic-Anleitung. Managed Backups ergänzen tägliche Wiederherstellungspunkte des ganzen Servers.
Pflege
Aktualisieren heißt docker compose pull && docker compose up -d. BookStack führt seine Datenbankmigrationen beim Start aus. Lesen Sie vor Hauptversionen die Release Notes; sie sind kurz und klar.
Braucht Ihr Team zusätzlich einen Ort für Tickets und Code, passt ein selbst gehosteter Git-Server gut daneben, auf dieselbe Art von Tarif.
Kommentare
Noch keine Kommentare. Sei der Erste.