Installation · 10 min read · Oct 14, 2025

So installieren Sie Wiki.js auf Rocky Linux 9

Wiki.js ist eine Open-Source, leichte Wiki-Software. Sie basiert auf dem Node.js JavaScript-Framework. Sie 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. Sie unterstützt mehrere Inhaltstypen, einschließlich UML-Diagrammen, mathematischen Ausdrücken mit Tex- oder MathML-Syntax und Code. Sie 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 Rocky Linux 9-Server mit der PostgreSQL-Datenbank und dem Nginx-Server für das Proxying installieren.

Voraussetzungen

  • Ein Server, der Rocky Linux 9 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 dnf update
  • Installieren Sie grundlegende Dienstprogramme. Einige davon sind möglicherweise bereits installiert. $ sudo dnf install wget curl nano unzip yum-utils -y

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet die Firewalld-Firewall. Überprüfen Sie den Status der Firewall.

$ sudo firewall-cmd --state
running

Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listen Sie alle Dienste und Ports auf, die auf der Firewall aktiv sind.

$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe anzeigen.

cockpit dhcpv6-client ssh

Wiki.js benötigt HTTP- und HTTPS-Ports, um zu funktionieren. Öffnen Sie diese.

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Laden Sie die Firewall neu, um die Änderungen anzuwenden.

$ sudo firewall-cmd --reload

Schritt 2 - PostgreSQL und Dienstprogramme installieren

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

Installieren Sie das Repository-RPM für PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Installieren Sie den PostgreSQL 14-Server.

$ sudo dnf install -y postgresql14-server postgresql14-contrib

Initialisieren Sie die Datenbank.

$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Aktivieren und starten Sie den PostgreSQL-Dienst.

$ sudo systemctl enable postgresql-14 --now

Überprüfen Sie den Status des Dienstes.

$ sudo systemctl status postgresql-14
? postgresql-14.service - PostgreSQL 14-Datenbankserver
     Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-10-22 09:52:41 UTC; 2s ago
       Docs: https://www.postgresql.org/docs/14/static/
    Process: 103857 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 103862 (postmaster)
      Tasks: 8 (limit: 5915)
     Memory: 16.6M
        CPU: 61ms
     CGroup: /system.slice/postgresql-14.service
             ??103862 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
             ??103863 "postgres: logger "
             ??103865 "postgres: checkpointer "
             ??103866 "postgres: background writer "
             ??103867 "postgres: walwriter "
             ??103868 "postgres: autovacuum launcher "
             ??103869 "postgres: stats collector "
             ??103870 "postgres: logical replication launcher "

Oct 22 09:52:41 wiki.example.com systemd[1]: Starting PostgreSQL 14-Datenbankserver...

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://rpm.nodesource.com/setup_16.x | sudo bash -

Installieren Sie Node.

$ sudo dnf 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

Schritt 6 - Wiki.js konfigurieren und ausführen

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 Ctrl + 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.

2022-10-22T10:25:48.187Z [MASTER] info: =======================================
2022-10-22T10:25:48.190Z [MASTER] info: = Wiki.js 2.5.289 ======================
2022-10-22T10:25:48.191Z [MASTER] info: =======================================
2022-10-22T10:25:48.191Z [MASTER] info: Initializing...
2022-10-22T10:25:49.079Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-22T10:25:49.086Z [MASTER] info: Connecting to database...
2022-10-22T10:25:49.117Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-22T10:25:49.467Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-22T10:25:49.468Z [MASTER] info: Starting setup wizard...
2022-10-22T10:25:49.740Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-22T10:25:49.741Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-22T10:25:49.745Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-22T10:25:49.745Z [MASTER] info: .......................................
2022-10-22T10:25:49.745Z [MASTER] info:
2022-10-22T10:25:49.746Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!

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

Schritt 7 - Ein Systemd-Dienst einrichten

Der oben beschriebene 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 Ctrl + 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

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

Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo, um das offizielle Nginx-Repository zu erstellen.

$ sudo nano /etc/yum.repos.d/nginx.repo

Fügen Sie den folgenden Code ein.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

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

Installieren Sie den Nginx-Server.

$ sudo dnf install nginx -y

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.1

Aktivieren und starten Sie den Nginx-Server.

$ sudo systemctl enable nginx --now

Überprüfen Sie den Status des Servers.

$ sudo systemctl status nginx
? nginx.service - nginx - Hochleistungs-Webserver
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-10-22 11:15:39 UTC; 49min ago
       Docs: http://nginx.org/en/docs/
    Process: 116236 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 116237 (nginx)
      Tasks: 2 (limit: 5915)
     Memory: 5.0M
        CPU: 245ms
     CGroup: /system.slice/nginx.service
             ??116237 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??116238 "nginx: worker process"

Oct 22 11:15:39 wiki.example.com systemd[1]: Starting nginx - Hochleistungs-Webserver...

Schritt 9 - SSL installieren

Wir werden das Certbot-Tool mit dem Snapd-Tool verwenden, um SSL-Zertifikate auszustellen. Es erfordert das EPEL-Repository, um zu funktionieren.

$ sudo dnf install epel-release

Wir werden Snapd verwenden, um Certbot zu installieren. Installieren Sie Snapd.

$ sudo dnf install snapd

Aktivieren und starten Sie den Snap-Dienst.

$ sudo systemctl enable snapd.socket --now

Erstellen Sie die erforderlichen Links, damit Snapd funktioniert.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Installieren Sie das Kern-Snapd-Repository.

$ sudo snap install core
$ sudo snap refresh core

Installieren Sie Certbot.

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

Generieren Sie das Zertifikat. Der folgende Befehl konfiguriert auch automatisch Nginx.

$ 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

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 - SELinux konfigurieren

Führen Sie die folgenden Befehle aus, um den richtigen SELinux-Kontext für das Wiki.js-Verzeichnis anzuwenden.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wikijs(/.*)?"
$ sudo restorecon -Rv /var/www/wikijs

Erstellen Sie einen Port für HTTP und weisen Sie ihn 3000 zu, damit Wiki.js mit SELinux funktioniert.

$ sudo semanage port -a -t http_port_t -p tcp 3000

Erlauben Sie Nginx, eine Verbindung zum Netzwerk herzustellen.

$ sudo setsebool -P httpd_can_network_connect 1

Schritt 11 - 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, wenn Sie einen Reverse-Proxy verwenden, um
    # Wiederholungsangriffe zu verhindern.
    #
    # @see: 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-Daten 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 zur Fehlersuche bei TLS v1.3. Bitte entfernen Sie dies
# und verwenden Sie die von NGINX direkt bereitgestellte Variable `$ssl_early_data`, wenn Sie dies
# wünschen.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Ersetzen Sie den Speicherort im obigen Datei mit dem Verzeichnis auf Ihrem Server.

Speichern Sie die Datei, indem Sie Ctrl + 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 Ctrl + 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 12 - Installation abschließen

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

Wiki.js Setup-Seite

Füllen Sie die Details Ihres Administratorkontos und die URL aus. Deaktivieren Sie die Telemetrie, indem Sie die Option Allow Telemetry deaktivieren. Sie können dies auch im Administrationsbereich 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 Rocky Linux 9-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.