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 -
Jetzt kannst du das Node.js-Paket mit dem unten stehenden apt-Befehl installieren.
sudo apt install nodejs
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
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
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.
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.
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
Ü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
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
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
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
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
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.
Nach Abschluss der Installation siehst du die Anmeldeseite von Wiki.js. Gib die Administrator-E-Mail und das Passwort ein und klicke auf„Anmelden„.
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.
Wähle den Editor, den du verwenden möchtest. In diesem Beispiel werden wir den Markdown-Editor verwenden.
Gib den Titel, die Beschreibung und die anderen Angaben ein. Klicke dann auf„OK„.
Gib die Details der Indexseite für dein Wiki.js ein und bestätige mit„CREATE„.
Nun solltest du die Standard-Startseite des Wiki.js sehen, das du gerade erstellt hast.
Um auf das Wiki.js-Administrations-Dashboard zuzugreifen, klicke auf das Zahnrad-Symbol oben links. Du solltest das Wiki.js-Administrations-Dashboard unten sehen.
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.