Wiki.js ist eine kostenlose und Open Source moderne Wiki-App, die auf Node.js, MongoDB, Git und Markdown basiert. Der Quellcode von Wiki.j wird öffentlich auf GitHub gehostet . Diese Anleitung zeigt Ihnen, wie Sie Wiki.js auf einer neuen Debian 9 Vultr-Instanz mithilfe von Node.js, MongoDB, PM2, Nginx, Git und Acme.sh installieren.
Bedarf
- Node.js 6.9.0 oder höher
- MongoDB 3.2 oder höher
- Nginx
- Git 2.7.4 oder höher
- Ein Git-kompatibles Repository (öffentlich oder privat) ( optional )
- Minimum von
768MB RAM
- Domainname mit
A/ AAAADatensätzen eingerichtet
Überprüfen Sie die Debian-Version.
lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)
Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist.
apt update && apt upgrade -y
Installieren Sie die erforderlichen Pakete.
apt install -y build-essential apt-transport-https sudo curl wget dirmngr sudo
Erstellen Sie ein neues non-rootBenutzerkonto mit sudoZugriff und wechseln Sie zu diesem.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
HINWEIS : Ersetzen Sie johndoedurch Ihren Benutzernamen.
Richten Sie die Zeitzone ein.
sudo dpkg-reconfigure tzdata
Installieren Sie Git
Installieren Sie Git auf Debian.
sudo apt install -y git
Überprüfen Sie die Git-Version.
git --version
# git version 2.11.0
Installieren Sie Node.js.
Installieren Sie Node.js mithilfe des NodeSource APT-Repositorys für Node.js.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
Überprüfen Sie die Versionen Node.js und npm.
node -v && npm -v
# v8.11.2
# 5.6.0
Installieren Sie MongoDB
Wiki.js verwendet MongoDB als Datenbankmodul. Demnach müssen wir MongoDB auf unserem Server installieren. Wir werden die offiziellen MongoDB-Repositorys für die Installation verwenden.
Installieren Sie MongoDB Community Edition.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt update
sudo apt install -y mongodb-org
Überprüfe die Version.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.5
# db version v3.6.5
Aktivieren und starten Sie MongoDB.
sudo systemctl enable mongod.service
sudo systemctl start mongod.service
Es wird dringend empfohlen, einen Standard-Webserver vor Wiki.js zu platzieren. Dies stellt sicher, dass Sie Funktionen wie SSL, mehrere Websites, Caching und mehr verwenden können. Wir werden Nginx in diesem Tutorial verwenden, aber jeder andere Server wird es tun, Sie müssen es nur richtig konfigurieren.
Installieren Sie Nginx.
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx
Überprüfe die Version.
sudo nginx -v
# nginx version: nginx/1.15.0
Aktivieren und starten Sie Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Konfigurieren Sie Nginx als HTTPoder HTTPS(wenn Sie SSL verwenden) Reverse-Proxy für die Wiki.js-Anwendung.
Führen Sie es aus sudo vim /etc/nginx/conf.d/wiki.js.confund füllen Sie es mit der folgenden grundlegenden Reverse-Proxy-Konfiguration.
server {
listen [::]:80;
listen 80;
server_name wiki.example.com;
root /usr/share/nginx/html;
charset utf-8;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
Das einzige, was Sie in der obigen Konfiguration ändern müssen, ist die server_nameDirektive und möglicherweise die proxy_passDirektive, wenn Sie sich entscheiden, einen anderen Port als zu konfigurieren 3000. Wiki.js verwendet 3000standardmäßig den Port .
Überprüfen Sie die Konfiguration.
sudo nginx -t
Laden Sie Nginx neu.
sudo systemctl reload nginx.service
Installieren Sie Acme.sh und erhalten Sie ein Let's Encrypt-Zertifikat (optional).
Das Sichern Ihres Wikis mit HTTPSist nicht erforderlich, es wird jedoch empfohlen, den Datenverkehr auf Ihrer Website zu sichern. Um ein SSL-Zertifikat von Let's Encrypt zu erhalten, verwenden wir den Acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Abrufen von SSL-Zertifikaten von Let's Encrypt ohne Abhängigkeiten. Dies macht es im Vergleich zu einigen anderen ACME-Protokoll-Clients, die viele Abhängigkeiten erfordern, um erfolgreich ausgeführt zu werden, sehr leicht.
Laden Sie Acme.sh herunter und installieren Sie es.
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Überprüfe die Version.
/etc/letsencrypt/acme.sh --version
# v2.7.9
Erhalten Sie RSA- und ECDSA-Zertifikate für wiki.example.com.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256
HINWEIS : Vergessen Sie nicht, durch wiki.example.comIhren Domainnamen zu ersetzen .
Nachdem Sie die obigen Befehle ausgeführt haben, befinden sich Ihre Zertifikate und Schlüssel in den folgenden Verzeichnissen.
- Für RSA:
/etc/letsencrypt/wiki.example.comVerzeichnis.
- Für ECC / ECDSA:
/etc/letsencrypt/wiki.example.com_eccVerzeichnis.
Nachdem wir Zertifikate von Let's Encrypt erhalten haben, müssen wir Nginx konfigurieren, um sie nutzen zu können.
Führen Sie es sudo vim /etc/nginx/conf.d/wiki.js.conferneut aus und konfigurieren Sie Nginx als HTTPSReverse-Proxy.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name wiki.example.com;
root /usr/share/nginx/html;
charset utf-8;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
# RSA
ssl_certificate /etc/letsencrypt/wiki.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/example.com.key;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
Überprüfen Sie die Konfiguration.
sudo nginx -t
Laden Sie Nginx neu.
sudo systemctl reload nginx.service
Installieren Sie Wiki.js
Erstellen Sie einen leeren Dokumentstammordner, in dem Wiki.js installiert werden soll.
sudo mkdir -p /var/www/wiki.example.com
Navigieren Sie zum Dokumentstammordner.
cd /var/www/wiki.example.com
Ändern Sie den Besitz des /var/www/wiki.example.comOrdners in Benutzer johndoe.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
/var/www/wiki.example.comFühren Sie im Ordner den folgenden Befehl aus, um Wiki.js herunterzuladen und zu installieren.
curl -sSo- https://wiki.js.org/install.sh | bash
Sie können den folgenden Befehl ausführen, um die aktuell installierte Version von Wiki.js anzuzeigen.
node wiki --version
# 1.0.78
Nach Abschluss der Installation werden Sie aufgefordert, den Konfigurationsassistenten auszuführen.
Starten Sie den Konfigurationsassistenten durch Ausführen.
node wiki configure
Dadurch werden Sie benachrichtigt, zu navigieren, http://localhost:3000um Wiki.js zu konfigurieren. Wenn Sie Nginx vor Wiki.js haben, bedeutet dies, dass Sie Ihren Domain-Namen (z. B. http://wiki.example.com) öffnen können, anstatt zu gehen localhost.
Navigieren Sie mit Ihrem Webbrowser zu http://wiki.example.comden Anweisungen auf dem Bildschirm und befolgen Sie diese. Alle während des Konfigurationsassistenten eingegebenen Einstellungen werden in der config.ymlDatei gespeichert. Der Konfigurationsassistent startet automatisch Wiki.js für Sie.
Richten Sie PM2 ein
Standardmäßig wird Wiki.js nach einem Systemneustart nicht automatisch gestartet. Damit es beim Booten gestartet werden kann, müssen wir den PM2-Prozessmanager einrichten. PM2 wird mit Wiki.js als lokales NPM-Modul geliefert, sodass wir PM2 nicht global installieren müssen.
Weisen Sie PM2 an, sich selbst als Startdienst zu konfigurieren.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup
Speichern Sie abschließend die aktuelle PM2-Konfiguration.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save
Ihre Wiki.js-Instanz wird als Hintergrundprozess ausgeführt und verwendet PM2 als Prozessmanager. Sie können Ihr Betriebssystem mit sudo rebootneu starten und prüfen, ob Wiki.js nach einem Neustart gestartet wird.