BookStack: Installation einer Open-Source Wiki-Plattform für Debian 12 und Ubuntu 22.04

In dieser Anleitung zeige ich euch, wir ihr auf eurem Linux Server mit Debian 12 oder Ubuntu 22.04 die Open-Source Wiki-Plattform Bookstack installieren könnt. Die Installation ist dabei von mir in leicht verständliche Schritte unterteilt worden. Einer der größten Vorteile von Bookstack ist der, dass die Wiki-Plattform leicht zu installieren und relativ einfach in der Administration ist.

Solch ein selbst gehostetet Bookstack-Wiki kann für den persönlichen Gebrauch oder für eine öffentlich zugängliche Wissensplattform bereitgestellt werden. Das Wiki bietet viel Platz für Dokumentationen und Lektüren jeglicher Art. Die Software Bookstack kann kostenlos installiert und betrieben werden. Programmiert wurde das webbasierte Wiki mit PHP und dem Lavavel Framework.

Inhaltsverzeichnis: BookStack installieren und auf dem eigenen Server selbst hosten (Tutorial)

Was wird für die Installation von Bookstack benötigt?

Die Wiki-Plattform Bookstack benötigt eine MariaDB/MySQL-Datenbank und die PHP-Version 8.2. Damit die Seite im Browser ausgegeben werden kann, benötigen wir außerdem einen Webserver. In dieser Installation verwenden wir den effizienten Webserver Apache als Unterbau dafür. Sobald der LAMP-Stack steht, implementieren wir Bookstack auf das Hostsystem.

Bevor wir mit der Installation unter Linux Debian 12 oder Ubuntu 22.04 beginnen können, sollte das System auf den neusten Stand sein, weil die Abhängigkeiten aus den offiziellen Repositorien installiert werden und wir die neuste Software auf dem Host installieren möchten.

Wir wechseln für den Zeitraum der Installation auf das Benutzerkonto „Root“. Das hat den Vorteil, dass wir die Befehle direkt und ohne Veränderungen übernehmen können und keine Barrieren in Bezug auf die Berechtigungen während des Installationsverlaufes erhalten.  Sonst müssten wir, wie unter manchen Distributionen üblich, alle Befehle mit dem sudo-Prompt ausführen.

Auf den Root-Benutzer mit Berechtigungen wechseln:

su root

Aktualisierungen durchführen:

apt update && apt upgrade -y

Einen LAMP-Stack für das Bookstack-Wiki installieren

Sobald das System und die Paketquellen mit dem letzten Befehl auf dem neusten Stand gebracht worden sind, können wir die folgende Befehlskette verwenden, um den LAMP-Stack für die Open-Source-Software Bookstack zu installieren.

LAMP-Stack und Abhängigkeiten installieren:

apt install apache2 mariadb-server composer curl php php-xml libapache2-mod-php php-fpm php-curl php-mbstring php-ldap php-tidy php-zip php-gd php-mysql git

PHP-Server konfigurieren

Jetzt verwenden wir den Editor Nano, um Änderungen an einigen Parametern innerhalb der PHP-Konfiguration vorzunehmen:

nano /etc/php/8.2/apache2/php.ini

Suche die nachfolgenden Zeilen und ändere die Parameter wie angegeben:

date.timezone = Europe/Berlin

memory_limit = 512M

Speichere die Änderungen ab [STRG+S] und verlasse den Editor wieder [STRG+X].

Starte den Webserver jetzt einmal neu und aktiviere den automatischen Start:

systemctl enable apache2
systemctl restart apache2

Installation einer Datenbank (MariaDB) für die selfhosted Wiki-Plattform

In diesem Abschnitt installieren wir die Datenbank für unsere Wiki-Plattform mit Bookstack. MariaDB übernimmt diesen Job ausgezeichnet. Dafür installieren wir zunächst eine Datenbank mit dem Installationsskript und anschließend wird der Datenbank-Benutzer und die Datenbank selbst erstellt. Führe die nachfolgenden Befehle der Reihe nach aus deinem Hostsystem aus.

Das Skript für die sichere Installation starten:

mariadb-secure-installation

Hinweis: Vergebe als Erstes ein sicheres Passwort für den Root-Benutzer. Das Skript fragt uns umgehend nach der Ausführung, ob wir den Standardbenutzer und die Testdatenbanken entfernen möchten. Stimme diesen Fragen mit „Y“ zu und verbiete den Remote-Zugriff als Root und lade abschließend die Privilegien neu. Zusammengefasst ist die richtige Antwort eigentlich immer „Y“.

Die MariaDB Shell als Root-Benutzer mit Berechtigungen ausführen:

mariadb -u root -p

Eine neue Datenbank erstellen:

CREATE DATABASE bookstack;

Einen Datenbank-Benutzer für Bookstack anlegen:

CREATE USER bookstack@localhost IDENTIFIED BY 'einsicherespasswort';

Hinweis: Wähle hier ein sicheres Passwort für deinen Benutzer aus und übernehme nicht dieses Standard-Passwort aus meiner Installationsanleitung!

Räume dem Benutzer alle Rechte für Datenbank-Aktionen ein:

GRANT ALL ON bookstack.* TO bookstack@localhost WITH GRANT OPTION;

Änderungen wirksam machen und Privilegien neu laden:

FLUSH PRIVILEGES;

Verlasse die MariaDB-Shell:

quit;

An diesem Punkt ist die Installation und Einrichtung der Datenbank für den selfhosted Bookstack-Server abgeschlossen. Fahre im nächsten Abschnitt mit dem Download und der Implementierung der Wiki-Plattform fort.

Bookstack auf dem Debian 12 / Ubuntu 22.04 Server herunterladen

Als Erstes müssen neue Verzeichnisse für den Cache und für die Konfigurationsdatei erstellt werden. Anschließend ernennen wir den Webserver-Benutzer zum Besitzer dieser Verzeichnisse und laden den Source-Code von der Bookstack-Plattform direkt in das Ausgabe-Verzeichnis vom Webserver herunter. Führe dafür die nachfolgenden Befehle der Reihe nach aus.

Verzeichnisse anlegen:

mkdir -p /var/www/{.config,.cache}

Berechtigungen vergeben:

chown -R www-data /var/www/{.config,.cache}

Wechsel jetzt in das www-Verzeichnis:

cd /var/www

Bookstack Source-Code von Github herunterladen:

git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack

Die Besitzerrechte für den Webserver vergeben:

chown -R www-data:www-data /var/www/bookstack

In das Verzeichnis von Bookstack wechseln:

cd /var/www/bookstack

Wir kopieren die Beispielkonfiguration und bearbeiten diese mit dem Editor. Hierbei ist es wichtig, die richtigen Zugangsdaten zur Datenbank einzupflegen. Der Benutzername lautet Bookstack und das Passwort hast du im letzten Abschnitt frei vergeben.

Kopiere die Beispielsdatei:

sudo -u www-data cp .env.example .env

Verwende den Editor Nano:

sudo -u www-data nano .env

Manuelle Anpassungen vornehmen:

APP_URL=http://bookstack.domain.de
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=einsicherespasswort

Speichere die Änderungen ab [STRG+S] und verlasse den Editor wieder [STRG+X]. Jetzt müssen noch Composer und PHP-Abhängigkeiten installiert werden, die für den Betrieb von Bookstack wichtig und empfohlen sind. Das erledigen wir direkt als Webserver-Benutzer. Wichtig: Nicht vergessen, eine lokale oder öffentliche Domain in der Zeile APP-URL einzugeben. Andernfalls kann kein Zugriff erfolgen.

Composer installieren:

sudo -u www-data composer install --no-dev --no-plugins

Jetzt generieren wir einen geheimen Schlüssel und migrieren diesen in die Datenbank. Führe diese beiden Befehle aus:

sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force

Im Anschluss erfolgt ein Aktualisierungsprozess, der nur wenige Sekunden dauern dürfte (Siehe Screenshot).

Bookstack Installation Screenshot 1

Führe die folgenden Befehle aus, um die Besitzrechte einiger Verzeichnisse auf den Webserver-Benutzer zu ändern. Das ist wichtig, damit wir später über die Weboberfläche von Bookstack neue Seiten und Beiträge auf der Plattform erstellen können.

Besitzer ernennen und Berechtigungen vergeben:

chown www-data:www-data -R bootstrap/cache public/uploads storage
chmod u+rw bootstrap/cache public/uploads storage
chmod -R 640 /var/www/bookstack/.env

Webserver für Bookstack konfigurieren (Virtual Host)

Die Installation von Bookstack ist an diesem Punkt fast abgeschlossen. Damit die Plattform über den Browser aufgerufen werden kann, muss der Webserver Apache noch beigebracht bekommen, was seine Aufgaben sind und welche Seiten er ausgeben soll.

Zunächst aktivieren wir das rewrite Modul unter Apache2:

sudo a2enmod rewrite

Erstelle eine neue Virtual Host Konfigurationsdatei:

nano /etc/apache2/sites-available/bookstack.conf

Kopiere den folgenden Inhalt und füge ihn in die Datei ein:

<VirtualHost *:80>
ServerName bookstack.fritz.box
ServerAdmin bookstackadmin@domain.net
DocumentRoot /var/www/bookstack/public/
<Directory /var/www/bookstack/public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/bookstack-error.log
CustomLog ${APACHE_LOG_DIR}/bookstack-access.log combined
</VirtualHost>

Hinweis: Die Konfiguration ist bereits auf die Bookstack-Installation aus diesem Tutorial zugeschnitten. Ihr müsst lediglich die Mail und die Domain auf eure eigene ändern.

Speichere die Änderungen ab [STRG+S] und verlasse den Editor wieder [STRG+X]. Jetzt muss die Datei nur noch aktiviert und der Webserver neu gestartet werden. Führe dafür die nächsten zwei Befehle aus.

Konfiguration aktivieren:

sudo a2ensite bookstack.conf

Apache Webserver neustarten:

systemctl restart apache2

Die Bookstack-Plattform mit einem SSL/TLS Zertifikat sichern (Lets Encrypt)

Theoretisch ist die Installation von Bookstack in diesem Punkt abgeschlossen. Solltet ihr die Wiki-Plattform über das Internet erreichbar machen wollen, z. B. um anderen Menschen die Möglichkeit einzuräumen, eure Wissensdatenbank mitverwenden zu können, ist eine Verschlüsselung über HTTPS empfohlen. Dafür können wir ein kostenloses Zertifikat von Lets Encrypt auf dem Server installieren, welches in wenigen Minuten installiert und betriebsbereit ist.

Certbot für Apache installieren:

apt install certbot python3-certbot-apache -y

Ein gültiges SSL-Zertifikat von Lets Encrypt mit Certbot generieren:

certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email eure@mail.de-d bookstack.domain.de

Sobald das Lets Encrypt Zertifikat erfolgreich bezogen wurde, müsst ihr nichts weiter tun. Die Bookstack-Installation wird automatisch für HTTPS konfiguriert, das übernimmt die Software Certbot für uns. Wichtig ist nur, dass eine echte E-Mail-Adresse und Domain eingepflegt werden.

Die Weboberfläche von Bookstack über den Browser aufrufen (Installation abgeschlossen)

Dashboad Login nach der erfolgreichen Installation

Die Installation von Bookstack unter Debian/Ubuntu ist jetzt abgeschlossen und der Zugriff wird im besten Fall über HTTPS verschlüsselt. Verwende einen beliebigen Webbrowser und rufe entweder die lokale IP-Adresse deines Servers auf oder greife über den Domainnamen auf die Wiki-Plattform zu.

Beispiel-Domain:

https://bookStack.domain.de

Beispielzugriff über die lokale IP-Adresse:

https://192.168.178.150

Das Default-Log-in (Standard-Zugangsdaten) von BookStack für den Zugriff auf das Dashboard lautet wie folgt:

Email: admin@admin.com

Password: password

Sobald ihr euch erfolgreich angemeldet habt, könnt ihr damit beginnen, euer Wiki zu personalisieren und die Wissensdatenbank zu füllen. Die Plattform ist umfangreich und ideal dafür geeignet, mit mehreren Menschen zusammenzuarbeiten.

Abschließend möchte ich euch noch die Alternative, MediaWiki, vorstellen, welches ebenso wie BookStack unter Linux Ubuntu 22.04 /Debian 12 installiert und selbst gehostet betrieben werden kann: https://www.veuhoff.net/mediawiki-installieren-das-beste-wiki-fuer-unternehmen-auf-linux-ubuntu/.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert