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.comals 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.

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.

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

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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.