Installation von Wiki.js mit Apache2 Reverse Proxy auf Ubuntu 22.04

Wiki.js ist eine freie und quelloffene Wikisoftware, die auf Node.js, Git und Markdown basiert. Sie ist unter der AGPL-v3-Lizenz veröffentlicht und auf Leistung und Schonung der Systemressourcen ausgelegt. Wiki.js ist eine leistungsstarke Wiki-Software, die überall auf deinem System installiert werden kann. Du kannst sie auf deinem Betriebssystem oder über Cloud-Dienste wie Heroku installieren und Wiki.js auch auf deinen Container-Umgebungen wie Docker und Kubernetes einsetzen.

Wiki.js ist mit der PostgreSQL-Datenbank kompatibel und bietet mehr als 50 Integrationen für zusätzliche Authentifizierung, Logging-Systeme, Suchmaschinen, Rendering und Speicherung. Es ist eine leistungsstarke Wiki-Software, die auf schönen und intuitiven Oberflächen für das Administrations-Dashboard und die Seiten aufbaut. Es ist eine vollständig anpassbare Wiki-Software für die Dokumentation deines Tech-Stacks.

In dieser Anleitung wirst du Wiki.js auf einem Ubuntu 22.04 Server installieren und konfigurieren, wobei du PostgreSQL als Standarddatenbank und Apache2 als Reverse Proxy verwendest. Außerdem wirst du eine sichere HTTPS/SSL-Verbindung zu deiner Wiki.js-Installation haben. Wenn du fertig bist, hast du ein voll funktionsfähiges und sicheres Wiki.js auf deinem Ubuntu-System.

Voraussetzungen

Um diese Anleitung durchzuführen, brauchst du zunächst die folgenden Voraussetzungen:

  • Einen Ubuntu 22.04 Server.
  • Einen Nicht-Root-Benutzer mit Root-/Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse deines Ubuntu-Servers zeigt.

Installation von Node.js

Bevor du Wiki.js installierst, musst du die Abhängigkeiten installieren, die Wiki.js benötigt.

Wiki.js ist eine Wiki-Software, die hauptsächlich in JavaScript geschrieben ist, so dass du in diesem ersten Schritt die JavaScript-Laufzeitumgebung Node.js installieren wirst. Das Standard-Repository von Ubuntu stellt das Node.js-Paket bereit, aber für diese Anleitung wirst du das Nodesource-Repository verwenden, um Node.js zu installieren.

Führe den folgenden curl-Befehl aus, um das Nodesource-Repository zu deinem Ubuntu-System hinzuzufügen. Zum Zeitpunkt der Erstellung dieses Artikels war für Wiki.js mindestens Node.js v8 und höher erforderlich. Für diese Anleitung wirst du die LTS-Version von Node.js v16 installieren.

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

Nodesource-Repository hinzufügen

Jetzt kannst du das Node.js-Paket mit dem unten stehenden apt-Befehl installieren.

sudo apt install nodejs

nodejs lts installieren

Nachdem die Installation abgeschlossen ist, überprüfe die Node.js-Version mit dem folgenden Befehl. Du solltest die Node.js v16 LTS Version auf deinem Terminalbildschirm sehen.

node --version
npm --version

Knotenversion prüfen

Installation der PostgreSQL-Datenbank

Standardmäßig unterstützt WIki.js mehrere RDBMS wie PostgreSQL, MySQL/MariaDB und SQLite (Standard), aber die empfohlene Datenbank für die Produktion ist PostgreSQL. Du installierst das PostgreSQL-Paket auf dem Ubuntu-System und erstellst dann die Datenbank und den Benutzer für Wiki.js.

Um loszulegen, führe den folgenden apt-Befehl aus, um die PostgreSQL-Datenbank auf deinem Server zu installieren. Gib Y ein, um die Installation zu bestätigen, und drücke ENTER, um fortzufahren, damit die Installation beginnt.

sudo apt install postgresql postgresql-common

install postgresql

Wenn die Installation abgeschlossen ist, führe den folgenden systemctl-Befehl aus, um den PostgreSQL-Dienst zu überprüfen und zu verifizieren. Du solltest sehen, dass der PostgreSQL-Dienst aktiviert ist, d.h. er wird beim Systemstart automatisch gestartet. Und der aktuelle Status des PostgreSQL-Dienstes ist„Aktiv„.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Melde dich in der PostgreSQL-Konsole mit dem unten stehenden Befehl an, um die PostgreSQL-Datenbank und den Benutzer zu erstellen.

sudo -u postgres psql

Führe den folgenden Befehl in deiner PostgreSQL-Konsole aus, um eine neue Datenbank und einen neuen Benutzer für Wiki.js zu erstellen. In diesem Beispiel erstellen wir eine Datenbank„wikijs“ und den Benutzer„wiki“ mit dem Passwort„wikijspassword„.

CREATE DATABASE wikijs;
CREATE USER wiki WITH ENCRYPTED PASSWORD 'wikijspassword';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wiki;

Jetzt kannst du mit„Strg+d“ die PostgreSQL-Konsole verlassen oder einfach den Befehl„\q“ zum Beenden verwenden.

Postgresql-Datenbank erstellen

Wiki.js installieren

Du wirst Wiki.js nun manuell auf deinem Ubuntu-System installieren. In dieser Anleitung erstellst du einen Systembenutzer für Wiki.js, lädst den Wiki.js-Quellcode herunter, richtest Wiki.js mit der PostgreSQL-Datenbank ein und führst Wiki.js schließlich als systemd-Dienst aus.

Führe zunächst den folgenden Befehl aus, um einen neuen Benutzer für Wiki.js anzulegen. In diesem Beispiel legen wir einen neuen Systembenutzer namens„wiki“ mit dem Standardverzeichnis„/opt/wikijs“ an. Da es sich um einen Systembenutzer handelt, deaktivieren wir den Shell-Zugriff.

sudo useradd -r -d /opt/wikijs -s /usr/sbin/nologin wiki

Lade nun den Wiki.js-Quellcode mit dem unten stehenden wget-Befehl herunter.

wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Wenn der Download beendet ist, erstelle ein neues Verzeichnis„/opt/wikijs“ und entpacke den Wiki.js-Quellcode in dieses Verzeichnis. Du solltest sehen, dass der Wiki.js-Quellcode im Installationsverzeichnis „/opt/wikijs“ verfügbar ist.

mkdir -p /opt/wikijs
tar xzf wiki-js.tar.gz -C /opt/wikijs

Um Wiki.js mit der PostgreSQL-Datenbank einzurichten, kopierst du die Standard-Beispielkonfiguration„config.sample.yml“ und änderst/bearbeitest sie mit deinem Texteditor.

Führe den folgenden Befehl aus, um die Wiki.js-Beispielkonfigurationsdatei nach„/opt/wikijs/config.yml“ zu kopieren. Bearbeite dann die neue Datei„/opt/wikijs/config.yml“ mit dem Editor nano.

cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
nano /opt/wikijs/config.yml

Ändere die Standardkonfiguration wie unten beschrieben.

In diesem Beispiel wird Wiki.js über den Standard-TCP-Port„3000“ ausgeführt. Ändere unbedingt den Namen, den Benutzer und das Passwort der PostgreSQL-Datenbank. Bei der Option„bindIP“ änderst du den Wert auf localhost oder„127.0.0.1„. Für die Wiki.js-Log-Konfiguration verwenden wir die Standardstufe„info“ mit dem Format„json„.

# default port wikijs will run
port: 3000

# PostgreSQL database details
db:
type: postgres
host: localhost
port: 5432
user: wiki
pass: wikijspassword
db: wikijs
ssl: false

# bind wikijs to localhost only
bindIP: 127.0.0.1

# setup log and the format
loglevel: info
logFormat: json

Speichere und schließe die Datei, wenn du fertig bist.

wikijs herunterladen und konfigurieren

Führe nun den folgenden chown-Befehl aus, um die Rechte am Wiki.js-Installationsverzeichnis „/opt/wikijs“ auf den Benutzer „wiki“ zu übertragen.

sudo chown -R wiki:wiki /opt/wikijs

In diesem Beispiel werden wir Wiki.js als systemd-Dienst ausführen. Daher musst du eine neue systemd-Dienstdatei für Wiki.js erstellen.

Führe den folgenden Befehl aus, um eine neue systemd-Dienstdatei „/etc/systemd/system/wikijs.service“ zu erstellen.

sudo nano /etc/systemd/system/wikijs.service

Füge die folgende Konfiguration in die Datei ein.

[Unit]
Description=Wiki.js
After=network.target postgresql.service

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei, wenn du fertig bist.

Führe anschließend den folgenden Befehl aus, um den Systemmanager neu zu laden und die neue Dienstdatei„wikijs.service“ anzuwenden

sudo systemctl daemon-reload

Jetzt kannst du den„wikijs„-Dienst mit dem folgenden Befehl starten und aktivieren.

sudo systemctl start wikijs
sudo systemctl enable wikijs

wikijs systemd Dienst einrichten

Überprüfe den„wikijs„-Dienst mit folgendem Befehl. Du solltest nun sehen, dass der„wikijs„-Dienst auf dem Standard-TCP-Port„3000“ mit PostgreSQL als Standarddatenbank läuft.

sudo systemctl status wikijs

wikijs Dienst überprüfen

Apache2 als Reverse Proxy einrichten

In diesem Beispiel läuft Wiki.js jetzt auf dem TCP-Port „3000“. Wenn du Wiki.js nach außen oder ins Internet bringen willst, ist es besser, einen Reverse Proxy vor Wiki.js einzurichten und HTTPS/SSL darüber zu legen, um die Anmeldedaten und den Login zu schützen. Du wirst auch Apache2 als Reverse Proxy für Wiki.js verwenden.

Führe den folgenden apt-Befehl aus, um das Apache2-Paket zu installieren. Gib Y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren, damit die Installation beginnt.

sudo apt install apache2

apache2 installieren

Nachdem die Installation abgeschlossen ist, führe den unten stehenden Befehl „ufw“ aus, um die HTTP- und HTTPS-Ports auf deinem Ubuntu-System zu öffnen. Überprüfe dann die Liste der UFW-Regeln.

sudo ufw allow "Apache Full"
sudo ufw status

apache2 ufw zulassen

Als Nächstes aktivierst du einige Apache2-Module mit dem folgenden Befehl. Du wirst diese Module für die Einrichtung des Apache2 Reverse Proxy verwenden.

sudo a2enmod proxy proxy_http ssl remoteip http2

Apache2-Module aktivieren

Erstelle nun mit dem folgenden Befehl eine neue Apache2 vitual host configuyration„/etc/apache2/sites-available/wikijs.conf„.

sudo nano /etc/apache2/sites-available/wikijs.conf

Füge die folgende Konfiguration in die Datei ein. In diesem Beispiel werden wir die Domain„wiki.hwdomain.io“ für die Wiki.js-Installation und die SSL-Zertifikate von letsencrypt verwenden. Achte darauf, dass du den Domainnamen und den Pfad der SSL-Zertifikate änderst.

<VirtualHost *:80>
    ServerName wiki.hwdomain.io
# Comment to prevent HTTP to HTTPS redirect
Redirect permanent / https://wiki.hwdomain.io

ErrorLog /var/log/apache2/wiki.hwdomain.io-error.log
CustomLog /var/log/apache2/wiki.hwdomain.io-access.log combined
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName wiki.hwdomain.io

ProxyPreserveHost On

ProxyPass "/" "http://127.0.0.1:3000/"
ProxyPassReverse "/" "http://127.0.0.1:3000/"

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/wiki.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/wiki.hwdomain.io/privkey.pem
Protocols h2 http/1.1

# Enable only strong encryption ciphers and prefer versions with forwarding Secrecy
SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
SSLHonorCipherOrder on

# Disable insecure SSL and TLS versions
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

ErrorLog /var/log/apache2/wiki.hwdomain.io-error.log
CustomLog /var/log/apache2/wiki.hwdomain.io-access.log combined
</VirtualHost>
</IfModule>

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes aktivierst du die virtuelle Hostdatei„wikijs.conf“ mit dem folgenden Befehl.

sudo a2ensite wikijs.conf

Überprüfe die Aache2-Konfiguration mit dem folgenden Befehl. Wenn du die Meldung„Syntax OK“ erhältst, bedeutet das, dass die Apache2-Konfiguration fertig ist. Starte dann den Apache2-Dienst neu, um die Änderungen zu übernehmen.

sudo apachectl configtest
sudo systemctl restart apache2

apache2 virtual host konfigurieren

Wiki.js-Installation konfigurieren

Öffne deinen Webbrowser und rufe den Domainnamen deiner Wiki.js-Installation auf (z. B: https://wiki.hwdomain.io/).

Gib die neue Administrator-E-Mail, das Passwort und die Website-URL für deine Wiki.js-Installation ein. Klicke dann auf die Schaltfläche„INSTALLIEREN„, um die Installation zu starten.

wiki.js installieren

Nach Abschluss der Installation siehst du die Anmeldeseite von Wiki.js. Gib die Administrator-E-Mail und das Passwort ein und klicke auf„Anmelden„.

Anmeldung wiki.js

Du siehst nun die Willkommensnachricht von Wiki.js. Klicke auf die Schaltfläche„STARTSEITE ERSTELLEN„, um die Standard-Indexseite für dein Wiki.js einzurichten.

Willkommen Homepage erstellen

Wähle den Editor, den du verwenden möchtest. In diesem Beispiel werden wir den Markdown-Editor verwenden.

Editor wählen

Gib den Titel, die Beschreibung und die anderen Angaben ein. Klicke dann auf„OK„.

Homepage erstellen

Gib die Details der Indexseite für dein Wiki.js ein und bestätige mit„CREATE„.

Homepage wiki.js bearbeiten

Nun solltest du die Standard-Startseite des Wiki.js sehen, das du gerade erstellt hast.

wiki.js Homepage

Um auf das Wiki.js-Administrations-Dashboard zuzugreifen, klicke auf das Zahnrad-Symbol oben links. Du solltest das Wiki.js-Administrations-Dashboard unten sehen.

wiki.js Admin-Dashboard

Fazit

In diesem Tutorial hast du Wiki.js auf der PostgreSQL-Datenbank und dem Apache2 Reverse Proxy eingerichtet, die auf dem neuesten Ubuntu-Server 22.04 laufen. Außerdem hast du Wiki.js mit einer UFW-Firewall gesichert und SSL/HTTPS auf dem Apache-Reverse-Proxy aktiviert. Schließlich hast du auch die Standard-Homepage oder den Index für deine Wiki.js-Installation konfiguriert.

Du kannst zusätzliche Inhalte erstellen und Kategorien für dein Wiki-Projekt einrichten. Du kannst auch einige Module zu deinem Wiki.js hinzufügen, um seine Funktionen zu erweitern oder neue Themen für Wiki.js einzurichten.

Das könnte dich auch interessieren …