NodeBB ist eine moderne Forensoftware powered by Node.js, die MongoDB/Redis als Datenbankplattformen verwendet. Es verwendet Web-Sockets für sofortige Interaktionen und Benachrichtigungen in Echtzeit.
In diesem Tutorial lernen wir, wie man das NodeBB-Forum auf einem Ubuntu 20.04-basierten Server installiert.
Voraussetzungen
-
Ein Ubuntu 20.04-basierter Server mit Nicht-Root-Benutzer mit sudo-Berechtigungen.
-
Mindestens 2 GB RAM. Wenn Ihr Server nur über 1 GB RAM verfügt, aktivieren Sie am besten eine Swap-Partition.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo apt update && sudo apt upgrade
-
Wenige wichtige Pakete. Einige davon befinden sich bereits auf Ihrem Server.
$ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
Schritt 1 - Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.
Überprüfen Sie, ob die Firewall ausgeführt wird.
$ sudo ufw status
Sie sollten die folgende Ausgabe erhalten.
Status: inactive
SSH-Port zulassen, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.
$ sudo ufw allow OpenSSH
27017
zulassen Port für den MongoDB-Server und 4567
Port zum Ausführen des NodeBB-Forums. HTTP
zulassen und HTTPS
auch Ports.
$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443
Aktivieren Sie die Firewall.
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Überprüfen Sie den Status der Firewall erneut.
$ sudo ufw status
Sie sollten eine ähnliche Ausgabe sehen.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
4567 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
4567 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Schritt 2 – Node.js installieren
Wir werden hier die LTS-Version von Node.js installieren. Führen Sie die folgenden Befehle aus, um Node.js zu installieren.
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
Überprüfen Sie, ob Node richtig installiert ist.
$ node --version
Sie sollten eine ähnliche Ausgabe sehen.
v12.18.3
Überprüfen Sie auch npm.
$ npm --version
6.14.6
Schritt 3 – MongoDB installieren
MongoDB ist die Standarddatenbank für NodeBB. Sie können auch Redis anstelle von MongoDB verwenden. Wir werden beide Datenbanken in unserem Tutorial behandeln.
Das Repository von MongoDB für Ubuntu 20.04 ist noch nicht fertig und Ubuntu selbst trägt eine sehr alte Version. Für unseren Zweck verwenden wir das MongoDB-Repository für 18.04, das einwandfrei funktioniert. Sie können die Paketliste mit dem neuesten Repository aktualisieren, sobald die offizielle Unterstützung verfügbar ist.
Importieren Sie den öffentlichen Schlüssel für MongoDB.
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
MongoDB-Repository hinzufügen.
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Aktualisieren Sie die lokale Paketdatenbank.
$ sudo apt update
Installieren Sie MongoDB.
$ sudo apt install mongodb-org
Überprüfen Sie die Installation von MongoDB.
$ mongod --version
db version v4.2.8
...
Starten Sie den MongoDB-Dienst.
$ sudo systemctl start mongod
Aktivieren Sie den MongoDB-Dienst.
$ sudo systemctl enable mongod
Überprüfen Sie den Status des MongoDB-Dienstes.
$ sudo systemctl status mongod
Schritt 4 – Konfigurieren von MongoDB
Die Mongo-Verwaltung erfolgt über die MongoDB-Shell. Die Standardinstallation von MongoDB überwacht Port 27017.
Greifen Sie auf die MongoDB-Shell zu.
$ mongo
Wechseln Sie zum integrierten admin
Datenbank.
> use admin
Erstellen Sie einen administrativen Benutzer. Dies ist nicht dasselbe wie der NodeBB-Admin-Benutzer.
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
Ändern Sie den Platzhalter “yourpassword”
zu Ihrem eigenen Passwort.
Fügen Sie eine neue Datenbank für NodeBB hinzu.
> use nodebb
Erstellen Sie als Nächstes den nodebb
Benutzer, um den nodebb
zu verwalten Datenbank.
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
Das readwrite
Berechtigung erlaubt NodeBB, Daten von nodebb
zu speichern und abzurufen Datenbank. Der clustermonitor
Berechtigung erlaubt NodeBB Lesezugriff auf die Datenbankstatistiken, die über das Admin-Panel sichtbar sind.
Beenden Sie die Mongo-Shell.
> quit()
Öffnen Sie die MongoDB-Konfigurationsdatei zum Bearbeiten.
$ sudo nano /etc/mongod.conf
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
security:
authorization: enabled
Starten Sie MongoDB neu und überprüfen Sie den zuvor erstellten Administrator.
$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin
Sie sollten die Mongo-Eingabeaufforderung sehen, wenn alles richtig konfiguriert wurde.
Schritt 5 – Git installieren
Bevor wir mit der Installation von NodeBB fortfahren, müssen wir Git installieren.
Führen Sie den folgenden Befehl aus, um Git zu installieren.
$ sudo apt install git
Führen Sie die folgenden Befehle aus, um die Erstkonfiguration von Git durchzuführen.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Schritt 6 - NodeBB installieren
Es ist nicht ratsam, NodeBB als Root-Benutzer auszuführen.
Erstellen Sie einen nicht privilegierten Benutzer.
$ sudo adduser nodebb
Legen Sie ein Passwort Ihrer Wahl fest und überspringen Sie andere Optionen.
Erstellen Sie das Verzeichnis, in dem sich Ihr NodeBB-Forum befinden wird.
$ sudo mkdir /var/www/nodebb
Ändern Sie den Eigentümer des Ordners auf den neu erstellten Benutzer.
$ sudo chown -R nodebb:nodebb /var/www/nodebb
Melden Sie sich beim neu erstellten Benutzer an.
$ su nodebb
Wechseln Sie in das Installationsverzeichnis von NodeBB.
$ cd /var/www/nodebb
Um NodeBB zu installieren, müssen wir zuerst sein Github-Repository klonen.
Klonen Sie NodeBB nach /var/www/nodebb
Verzeichnis. Der Punkt am Ende des Befehls verweist auf das aktuelle Verzeichnis.
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
Hier haben wir die v1.14.2 von NodeBB geklont, die zum Zeitpunkt des Schreibens des Tutorials die neueste stabile Version war. Den neuesten stabilen Zweig finden Sie auf der Seite „Neueste Version“ von NodeBB.
NodeBB wird mit einem Befehlszeilendienstprogramm geliefert. Verwenden Sie den folgenden Befehl, um NodeBB zu installieren.
$ ./nodebb setup
Sie können die Eingabetaste drücken, um den Standardwert auszuwählen.
Für den Wert von URL, die für den Zugriff auf dieses NodeBB verwendet wird Wählen Sie die endgültige URL, unter der Sie auf das Forum zugreifen möchten. Wenn Sie über Ihre Server-IP auf das Forum zugreifen, geben Sie diese oder die vollständige Domain des Forums ein. Hier geben wir http://forum.example.com
ein .
Wählen Sie weiterhin Standardwerte aus, bis Sie zur Eingabe von MongoDB-Benutzername aufgefordert werden das ist, wenn Sie nodebb eingeben und das Passwort, das Sie zuvor bei der Konfiguration von MongoDB für diesen Benutzernamen gewählt haben. Ihre Datenbank nodebb gewählt werden soll. Sie werden auch aufgefordert, einen Administratorbenutzer und seine Details zu erstellen.
Führen Sie nach Abschluss der Einrichtung den folgenden Befehl aus, um NodeBB zu starten.
$ ./nodebb start
Ihr Forum läuft jetzt. Sie sollten über http://<yourserverip>:4567
darauf zugreifen können .
Möglicherweise wird eine Fehlermeldung angezeigt, die besagt:Sieht so aus, als ob Ihre Verbindung zu NodeBB unterbrochen wurde. Bitte warten Sie, während wir versuchen, die Verbindung wiederherzustellen. Es erscheint, weil wir die Standard-URL für NodeBB http://forum.example.com
gewählt haben und nicht http://<yourserverip
. Aber wenn Sie die IP-Adresse während der Einrichtung eingeben, erhalten Sie den Fehler nicht mehr, sondern müssen später erneut konfigurieren, nachdem Sie eine Domain für Ihr Forum ausgewählt haben.
Verlassen Sie den NodeBB-Benutzer.
$ exit
Schritt 7 – Nginx installieren
Ubuntu 20.04 enthält standardmäßig die neueste stabile Version von Nginx. Wir werden das installieren.
$ sudo apt install nginx
Überprüfen Sie, ob es richtig installiert ist.
$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Nginx starten und aktivieren.
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Öffnen Sie die IP-Adresse Ihres Servers in Ihrem Webbrowser. Sie sollten die folgende Seite sehen, was bedeutet, dass Ihr Server betriebsbereit ist.
Schritt 8 – Nginx konfigurieren
Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei für Ihre Website hinzuzufügen.
$ sudo nano /etc/nginx/sites-available/nodebb.conf
Fügen Sie den folgenden Code in den Editor ein.
server {
listen 80;
server_name forum.example.com;
access_log /var/log/nginx/forum.example.com.access.log;
error_log /var/log/nginx/forum.example.com.error.log;
location / {
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_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Drücken Sie Ctrl + X
um den Editor zu verlassen und Y
einzugeben wenn Sie dazu aufgefordert werden.
Wenn Sie fertig sind, überprüfen Sie, ob die Nginx-Konfiguration korrekt ist.
$ sudo nginx -t
Laden Sie den Nginx-Dienst neu, um die Konfiguration zu aktivieren.
$ sudo systemctl reload nginx
Besuchen Sie http://forum.example.com
in Ihrem Browser, um das NodeBB-Forum zu öffnen.
Schritt 9 – Führen Sie NodeBB als Systemdienst aus
Der NodeBB-Dienst wird nach einem Systemneustart nicht ausgeführt. Um zu vermeiden, dass NodeBB jedes Mal gestartet wird, müssen wir es als Systemdienst installieren.
Stoppen Sie zuerst den NodeBB-Dienst.
$ ./nodebb stop
Führen Sie den folgenden Befehl aus, um nodebb.service
zu erstellen und zu bearbeiten systemd-Unit-Konfigurationsdatei.
$ sudo nano /etc/systemd/system/nodebb.service
Fügen Sie den folgenden Code in den Editor ein.
[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=forking
User=nodebb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always
[Install]
WantedBy=multi-user.target
Hier haben wir den Benutzernamen als nodebb
gewählt die wir in Schritt 6 erstellt haben, und den Pfad, den wir gewählt haben, um NodeBB darin zu installieren.
Aktivieren Sie den NodeBB-Dienst.
$ sudo systemctl enable nodebb
Starten Sie den NodeBB-Dienst.
$ sudo systemctl start nodebb
Überprüfen Sie den Status des Dienstes.
$ sudo systemctl status nodebb
Schritt 10 – Erhalten Sie ein SSL-Zertifikat von Let’s Encrypt
Das Sichern Ihres NodeBB-Forums mit HTTPS ist ein notwendiger Schritt, um den Datenverkehr Ihrer Website zu sichern. Für dieses Tutorial verwenden wir den Certbot-Client, um SSL zu installieren.
Installieren Sie dazu zuerst das Certbot-Tool.
$ sudo apt install certbot python3-certbot-nginx
Generieren Sie die Zertifikate.
$ sudo certbot --nginx -d forum.example.com
Wenn Sie Certbot zum ersten Mal auf Ihrem System ausführen, werden Sie nach einer E-Mail-Adresse gefragt und müssen den Nutzungsbedingungen zustimmen. Sie werden auch gefragt, ob Sie damit einverstanden sind, Daten mit der EFF-Stiftung zu teilen, wozu Sie nein sagen können. Danach kommuniziert Certbot mit den Servern von Let's Encrypt und führt eine Abfrage durch, um Ihre Domains zu verifizieren.
Wenn dies erfolgreich ist, werden Sie gefragt, wie mit HTTPS-Umleitungen umgegangen werden soll.
Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Wählen Sie Secure
Auswahl und drücken Sie die Eingabetaste. Dadurch wird sichergestellt, dass alle Anfragen an die http-Domäne ordnungsgemäß an die https-Version umgeleitet werden. Ihre Zertifikate werden dann erstellt und Ihre Nginx-Konfigurationsdateien werden mit SSL-Einstellungen aktualisiert.
Ihre Zertifikate sind fertig und Sie können Ihre Website jetzt öffnen, indem Sie zu https://forum.example.com
gehen
Schritt 11 – Verifizieren Sie die automatische SSL-Verlängerung
Dies ist der letzte Schritt, bevor wir dieses Tutorial beenden.
Überprüfen Sie den Erneuerungsprozess, indem Sie einen Probelauf des Erneuerungsprozesses durchführen.
$ sudo certbot renew --dry-run
Wenn Sie keine Fehler erhalten, bedeutet dies, dass Sie eingestellt sind. Certbot erneuert Ihre Zertifikate automatisch für Sie. Sie erhalten eine E-Mail-Warnung über den Ablauf des Zertifikats.
Schlussfolgerung
Das ist alles zu diesem Tutorial. Die Einrichtung Ihres NodeBB-Forums ist abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.