Installation · 10 min read · Dec 19, 2025

Wie man Wiki.js auf Ubuntu 22.04 LTS installiert

Wiki.js ist eine Open-Source, leichte Wiki-Software. Es basiert auf dem Node.js JavaScript-Framework. Es kann verwendet werden, um Dokumentationen, Wikis und Webinhalte mit einem Markdown-Editor für Entwickler und einem WYSIWYG-Editor für nicht-technische Personen zu schreiben. Es unterstützt mehrere Inhaltstypen, einschließlich UML-Diagrammen, mathematischen Ausdrücken mit Tex- oder MathML-Syntax und Code. Es umfasst mehrere Module für verschiedene Funktionen, einschließlich Analytik, Authentifizierung, Protokollierung, Drittanbieter-Suchmaschinen und mehrere Speicherlösungen, um Ihre Inhalte zu synchronisieren.

In diesem Tutorial lernen Sie, wie Sie Wiki.js auf einem Ubuntu 22.04-Server mit der PostgreSQL-Datenbank und dem Nginx-Server für das Proxying installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Ein vollständig qualifizierter Domainname (FQDN), der auf Ihren Server verweist. Für unsere Zwecke verwenden wir wiki.example.com als Domainnamen.
  • Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update && sudo apt upgrade
  • Installieren Sie grundlegende Dienstprogramme. Einige davon sind möglicherweise bereits installiert. $ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y

Schritt 1 - Firewall konfigurieren

Bevor Sie Pakete installieren, besteht der erste Schritt darin, die Firewall so zu konfigurieren, dass HTTP- und HTTPS-Verbindungen erlaubt sind.

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas sehen, das wie folgt aussieht.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Erlauben Sie HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status erneut, um zu bestätigen.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
80/tcp                     ERLAUBEN    Überall
443                        ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
80/tcp (v6)                ERLAUBEN    Überall (v6)
443 (v6)                   ERLAUBEN    Überall (v6)

Schritt 2 - PostgreSQL und Dienstprogramme installieren

Ubuntu 22.04 wird mit einer älteren Version von PostgreSQL ausgeliefert. Wir werden Postgres 14 für unser Tutorial installieren.

Installieren Sie das Repository für PostgreSQL.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Importieren Sie den PostgreSQL GPG-Schlüssel.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null

Aktualisieren Sie die System-Repository-Liste.

$ sudo apt update

Installieren Sie den PostgreSQL 14-Server.

$ sudo apt install -y postgresql-14

Überprüfen Sie den Status des Dienstes.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: aktiv (ausgestiegen) seit Di 2022-10-25 06:24:24 UTC; vor 10 Minuten
   Main PID: 4032 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Okt 25 06:24:24 wiki systemd[1]: Starting PostgreSQL RDBMS...
Okt 25 06:24:24 wiki systemd[1]: Finished PostgreSQL RDBMS.

Schritt 3 - PostgreSQL konfigurieren

Melden Sie sich an der PostgreSQL-Shell an.

$ sudo -i -u postgres psql

Erstellen Sie eine neue Datenbank für Wiki.js.

postgres=# CREATE DATABASE wikidb;

Erstellen Sie einen neuen Datenbankbenutzer mit einem starken Passwort.

postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';

Gewähren Sie dem Benutzer die Rechte zur Nutzung der Datenbank.

postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;

Verlassen Sie die Postgres-Shell.

postgres=# \q

Schritt 4 - Node.js installieren

Wiki.js unterstützt Node v16 zum Zeitpunkt des Schreibens dieses Tutorials.

Installieren Sie das Node-Repository mit dem folgenden Befehl.

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

Installieren Sie Node.

$ sudo apt install nodejs -y

Überprüfen Sie die Node-Installation.

$ node --version
v16.18.0

Schritt 5 - Wiki.js herunterladen

Erstellen Sie einen Ordner, um Wiki.js zu installieren.

$ sudo mkdir -p /var/www/wikijs

Setzen Sie den aktuell angemeldeten Benutzer als Eigentümer des Ordners.

$ sudo chown $USER:$USER /var/www/wikijs

Wechseln Sie in das Verzeichnis und laden Sie das Wiki.js-Codearchiv herunter.

$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Entpacken Sie das heruntergeladene Archiv.

$ tar xzf wiki-js.tar.gz

Löschen Sie das Archiv.

$ rm wiki-js.tar.gz

Schritt 6 - Konfigurieren und Ausführen von Wiki.js

Erstellen Sie die Konfigurationsdatei aus der Vorlage.

$ cp config.sample.yml config.yml

Öffnen Sie die Konfigurationsdatei zur Bearbeitung.

$ nano config.yml

Suchen Sie die folgenden Datenbankeinstellungen und aktualisieren Sie deren Werte mit den in Schritt 3 konfigurierten.

# PostgreSQL / MySQL / MariaDB / MS SQL Server nur:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false

Suchen Sie die Zeile bindIP: 0.0.0.0 und aktualisieren Sie sie wie folgt.

bindIP: 127.0.0.1

Dies wird dazu führen, dass Wiki.js auf der Loopback-Adresse lauscht, da wir den Nginx-Proxy verwenden werden, um von außen darauf zuzugreifen.

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Führen Sie Wiki.js mit dem folgenden Befehl aus.

$ node server

Sie erhalten eine ähnliche Ausgabe, die eine erfolgreiche Installation bestätigt.

Loading configuration from /var/www/wikijs/config.yml... OK
2022-10-25T06:40:46.294Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-25T06:40:46.296Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: Initializing...
2022-10-25T06:40:46.962Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Connecting to database...
2022-10-25T06:40:47.067Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-25T06:40:47.345Z [MASTER] info: Starting setup wizard...
2022-10-25T06:40:47.510Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-25T06:40:47.511Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info: 
2022-10-25T06:40:47.516Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2022-10-25T06:40:47.516Z [MASTER] info: 
2022-10-25T06:40:47.516Z [MASTER] info: ............................................................................

Drücken Sie Strg + C, um den Prozess zu stoppen.

Schritt 7 - Ein Systemd-Dienst einrichten

Der obige Prozess, um Wiki.js am Laufen zu halten, ist vorübergehend. Um den Prozess dauerhaft zu machen, müssen wir einen Systemd-Dienst für Wiki.js erstellen, um ihn als Hintergrunddienst auszuführen. Dies ermöglicht es Wiki.js, über Systemneustarts hinweg zu laufen.

Erstellen Sie eine Systemd-Dienstdatei für Wiki.js und öffnen Sie sie zur Bearbeitung.

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

Fügen Sie den folgenden Code ein. Ersetzen Sie den Wert der Variablen User durch den Namen Ihres Systembenutzers.

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

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

User=navjot
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs

[Install]
WantedBy=multi-user.target

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Laden Sie den System-Daemon neu.

$ sudo systemctl daemon-reload

Aktivieren Sie den Wiki.js-Dienst.

$ sudo systemctl enable wikijs

Schritt 8 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.

Importieren Sie den offiziellen Nginx-Schlüssel.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Richten Sie das offizielle Repository für Nginx ein.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
  http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Pin Sie das Repository, um dem offiziellen Repo den Vorzug vor dem Ubuntu-Repo zu geben.

$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
     | sudo tee /etc/apt/preferences.d/99nginx

Aktualisieren Sie die System-Repository-Liste.

$ sudo apt update

Installieren Sie den Nginx-Server.

$ sudo apt install nginx -y

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.1

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Überprüfen Sie den Status des Dienstes.

$ sudo systemctl status nginx
? nginx.service - nginx - Hochleistungs-Webserver
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: aktiv (läuft) seit Di 2022-10-25 06:50:05 UTC; vor 2s
       Docs: https://nginx.org/en/docs/
    Process: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 5523 (nginx)
      Tasks: 2 (limit: 1030)
     Memory: 1.8M
        CPU: 4ms
     CGroup: /system.slice/nginx.service
             ??5523 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??5524 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Okt 25 06:50:05 wiki systemd[1]: Starting nginx - Hochleistungs-Webserver...

Schritt 9 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Ubuntu-Repository installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core
$ sudo snap refresh core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um das Zertifikat auszustellen.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/wiki.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Überprüfen Sie den Certbot-Erneuerungsplanungsdienst.

$ sudo systemctl list-timers

Sie finden snap.certbot.renew.service als einen der Dienste, die geplant sind, um ausgeführt zu werden.

NÄCHSTER                        ÜBRIG          LETZTER                        VERGANGEN    EINHEIT                           AKTIVIERT              

.................................................................................................................................
Di 2022-10-25 00:00:00 UTC 17h übrig      Di 2022-10-25 04:49:20 UTC vor 2h    logrotate.timer                logrotate.service
Di 2022-10-25 02:39:09 UTC 20h übrig      Di 2022-10-25 06:47:33 UTC vor 12min    apt-daily.timer                apt-daily.service
Di 2022-10-25 06:02:00 UTC 8h übrig       n/a                         n/a       snap.certbot.renew.timer       snap.certbot.renew.service

Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 10 - Nginx konfigurieren

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/wikijs.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/wikijs.conf

Fügen Sie den folgenden Code ein.

# HTTPS erzwingen
server {
  listen 80;
  listen [::]:80;
  server_name wiki.example.com;
  return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name wiki.example.com;

    root /var/www/wikijs;

    access_log  /var/log/nginx/wiki.access.log;
    error_log   /var/log/nginx/wiki.error.log;

    http2_push_preload on; # HTTP/2 Server Push aktivieren

    ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/wiki.example.com/chain.pem;
    ssl_session_timeout 1d;

    # TLS-Versionen aktivieren (TLSv1.3 ist für das kommende HTTP/3 QUIC erforderlich).
    ssl_protocols TLSv1.2 TLSv1.3;

    # Aktivieren Sie TLSv1.3's 0-RTT. Verwenden Sie $ssl_early_data beim Reverse-Proxying, um
    # Wiederholungsangriffe zu verhindern.
    #
    # @siehe: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
    ssl_early_data on;

    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;

    # OCSP Stapling ---
    # Holen Sie sich OCSP-Datensätze von der URL im ssl_certificate und cachen Sie sie
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header X-Early-Data $tls1_3_early_data;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:3000;
    }
}

# Dieser Block ist nützlich für das Debuggen von TLS v1.3. Bitte entfernen Sie dies
# und verwenden Sie die `$ssl_early_data`-Variable, die von NGINX direkt bereitgestellt wird, wenn Sie
# dies wünschen.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Ersetzen Sie den Speicherort im obigen Datei durch das Verzeichnis auf Ihrem Server.

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Überprüfen Sie Ihre Nginx-Konfiguration.

$ sudo nginx -t

Wenn Sie keine Fehler sehen, sind Sie bereit.

Starten Sie den Wiki.js-Dienst.

$ sudo systemctl start wikijs

Laden Sie den Nginx-Server neu.

$ sudo systemctl reload nginx

Schritt 11 - Installation abschließen

Besuchen Sie die URL https://wiki.example.com, um die Installation abzuschließen.

Wiki.js Einrichtungsseite

Füllen Sie die Details Ihres Administratorkontos und die URL aus. Deaktivieren Sie die Telemetrie, indem Sie die Option Telemetrie zulassen deaktivieren. Sie können dies auch im Administrationspanel deaktivieren. Klicken Sie auf die Schaltfläche Installieren, um fortzufahren.

Sie werden zur Anmeldeseite weitergeleitet.

Wiki.js Anmeldeseite

Geben Sie Ihre Kontodaten ein und klicken Sie auf die Schaltfläche Anmelden, um zur Administrationsseite zu gelangen.

Wiki.js Administrationsseite

Sie können jetzt beginnen, Wiki.js zu verwenden.

Fazit

Damit endet unser Tutorial, in dem Sie gelernt haben, wie Sie Wiki.js auf einem Ubuntu 22.04-Server installieren. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.