NodeBB Installation mit Nginx Proxy auf Ubuntu 24.04

NodeBB ist eine Open-Source-Forensoftware auf Node.js-Basis, die eine moderne und reaktionsschnelle Lösung für Online-Communities bietet. NodeBB läuft auf Ubuntu Linux und nutzt die Robustheit und Flexibilität des Betriebssystems, um hohe Leistung und Skalierbarkeit zu bieten. Es nutzt eine Kombination aus MongoDB oder Redis für die Datenbankverwaltung und ist damit in der Lage, große Mengen an nutzergenerierten Inhalten effizient zu verwalten. NodeBB ist bekannt für seine Echtzeit-Benachrichtigungen, die nahtlose Integration mit verschiedenen Social-Media-Plattformen und sein umfangreiches Plugin-Ökosystem, mit dem Administratoren ihre Foren an die jeweiligen Bedürfnisse anpassen können. Außerdem sorgt das mobile Design für ein einheitliches und ansprechendes Nutzererlebnis auf allen Geräten. Die Stabilität und die Sicherheitsfunktionen von Ubuntu ergänzen NodeBB und machen es zu einer idealen Wahl für das Hosting und die Verwaltung dynamischer Online-Communities.

In dieser Anleitung erfährst du, wie du NodeBB auf dem Ubuntu 24.04 Server mit der MongoDB Datenbank und dem Nginx Webserver installierst. Außerdem erfährst du, wie du NodeBB mit HTTPS über Certbot und Letsencrypt absicherst.

Voraussetzungen

Um mit diesem Leitfaden zu beginnen, musst du Folgendes haben

  • Einen Ubuntu 24.04 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installation des MongoDB-Servers

NodeBB ist mit Node.js geschrieben und verwendet MongoDB als Datenbank. Um NodeBB zu installieren, musst du den MongoDB-Server auf deinem System installieren. In diesem Abschnitt wirst du den MongoDB Server 7 auf dem Ubuntu 24.04 Server installieren.

Führe zunächst den folgenden Befehl aus, um die Pakete gnupg und curl auf deinem Ubuntu-System zu installieren.

sudo apt install gnupg curl

curl installieren

Füge nun den GPG-Schlüssel und das Repository für MongoDB mit dem unten stehenden Befehl hinzu. Zurzeit ist MongoDB 7.0 nur für Ubuntu 22.04 verfügbar, also werden wir es auf unserem Ubuntu 24.04 Server verwenden.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg
–dearmor
echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Mongodb Repo hinzufügen

Als Nächstes führst du den folgenden apt-Befehl aus, um deinen Ubuntu-Paketindex zu aktualisieren und das Paket mongodb-org zu installieren. Gib Y ein, um die Installation zu bestätigen.

sudo apt update
sudo apt install mongodb-org

mongodb installieren

Nachdem die Installation abgeschlossen ist, führe den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden. Das liegt daran, dass die neue Dienstdatei mongod zu deinem System hinzugefügt wurde.

sudo systemctl daemon-reload

Führe nun den systemctl-Befehl aus, um den MongoDB mongod-Dienst zu starten und zu aktivieren. Überprüfe dann den Status, um sicherzustellen, dass der mongod-Dienst läuft.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Wie du unten sehen kannst, ist der Mongod-Dienst aktiviert und läuft.

Mongoddienst überprüfen

MongoDB Server und Datenbank für NodeBB einrichten

Nachdem du den MongoDB-Server installiert hast, aktivierst du die Authentifizierung auf MongoDB, legst einen Admin-Benutzer an und erstellst dann einen neuen Benutzer und eine Datenbank für die NodeBB-Installation.

Melde dich in der MongoDB-Shell mit dem unten stehenden Befehl mongosh client an.

mongosh

Wechsle in der mongosh-Shell zur Admin-Datenbank und erstelle einen neuen Admin-Benutzer für MongoDB. In diesem Beispiel erstellst du einen MongoDB-Benutzer admin mit dem Passwort MongoDBAdminPass. Achte darauf, dass du die Benutzerdaten mit deinen Daten änderst.

use admin
db.createUser( { user: “admin”, pwd: “MongoDBAdminPass”, roles: [ { role: “root”, db: “admin” } ] } )

Danach erstellst du die Datenbank nodebb und legst einen neuen Benutzer nodebb mit dem Passwort NodeBBPassword an. Die Datenbank und der Benutzer nodebb werden für die NodeBB-Installation verwendet.

use nodebb
db.createUser( { user: “nodebb”, pwd: “NodeBBPassword”, roles: [ { role: “readWrite”, db: “nodebb” }, { role: “clusterMonitor”, db: “admin” } ] } )

Gib nun quit() ein, um die Mongosh-Shell zu verlassen.

quit()

Mongodb-Benutzer und -Datenbank anlegen

Als nächstes öffnest du die Standard-MongoDB-Konfiguration /etc/mongod.conf mit dem folgenden nano-Editor.

sudo nano /etc/mongod.conf

Deaktiviere die Option security und ändere die Autorisierung in enabled. Damit wird die Authentifizierung auf deinem MongoDB-Server aktiviert.

security:
  authorization: enabled

Wenn du fertig bist, speichere die Datei und beende den Editor.

Führe nun den folgenden systemctl-Befehl aus, um den mongod-Dienst neu zu starten und deine Änderungen zu übernehmen. Nachdem der mongod-Dienst neu gestartet wurde, ist die MongoDB-Authentifizierung aktiviert.

sudo systemctl restart mongod

Führe den folgenden mongosh-Befehl aus, um dich als Benutzer nodedbb mit der Datenbank nodebb zu verbinden. Gib dein Passwort ein, wenn du dazu aufgefordert wirst.

mongosh “mongodb://127.0.0.1:27017” --username nodebb --authenticationDatabase nodebb

Führe nun die folgenden Abfragen aus, um deine Verbindung zum MongoDB-Server zu überprüfen.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )

Nachfolgend hast du dich als Benutzer nodebb bei der Datenbank nodebb authentifiziert.

Gib quit() ein, um die MongoDB-Shell zu verlassen.

Benutzer prüfen

NodeBB installieren

Nachdem du den MongoDB-Server konfiguriert hast, installierst du Node.js über das offizielle Ubuntu-Repository und lädst anschließend NodeBB herunter und installierst es auf deinem Ubuntu-System.

Bevor du NodeBB installierst, führe den folgenden apt-Befehl aus, um die Pakete Node.js und NPM auf deinem Ubuntu-System zu installieren. Gib Y ein, um die Installation zu bestätigen.

sudo apt install nodejs npm

nodejs installieren

Nach der Installation überprüfst du die Node.js- und NPM-Versionen mit folgendem Befehl – du siehst, dass Node.js 18 und NPM 9 installiert sind.

node --version
npm --version

nodejs prüfen

Führe nun den folgenden Befehl aus, um einen neuen Systembenutzer und die Gruppe nodebb zu erstellen. Dieser Benutzer wird verwendet, um die NodeBB-Installation auszuführen.

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

Führe den folgenden git-Befehl aus, um den NodeBB-Quellcode in das Verzeichnis /opt/nodebb herunterzuladen, und ändere dann die Eigentumsrechte an diesem Verzeichnis auf den Benutzer nodebb.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb

Benutzer hinzufügen und nodebb herunterladen

Gehe in das Verzeichnis /opt/nodebb und führe den Befehl nodebb setup aus, um die NodeBB-Installation zu starten.

cd /opt/nodebb
sudo su -s /bin/bash -c “./nodebb setup” nodebb

Du wirst nach den folgenden NodeBB-Konfigurationen gefragt:

  • Gib deinen Domainnamen für NodeBB ein, z.B. forum.howtoforge.local.
  • Drücke ENTER bei der Konfiguration des NodeBB-Geheimnisses. Belasse es bei der Standardeinstellung.
  • Gib no ein, um den anonymen Zugang zu NodeBB zu deaktivieren.
  • Wähle die MongoDB als Datenbank aus.
  • Gib die Details deiner MongoDB-Datenbank im Format mongodb://nodebb:NodeBBPassword@127.0.0.1:27017/nodebb ein.
  • Gib den neuen Admin-Benutzer und die E-Mail-Adresse für NodeBB ein.
  • Gib das Passwort für deinen NodeBB-Admin-Benutzer ein und wiederhole den Vorgang.

Nachdem die Installation abgeschlossen ist, siehst du die Meldung NodeBB Setup Completed.

Einrichtung abgeschlossen

Um NodeBB von der Kommandozeile aus zu starten, führe den folgenden Befehl nodebb start aus:

sudo su -s /bin/bash -c "./nodebb start" nodebb

Um den NodeBB-Prozess zu beenden, verwende den folgenden Befehl nodebb stop.

sudo su -s /bin/bash -c "./nodebb stop" nodebb

Nodebb starten und stoppen

NodeBB als systemd-Dienst starten

In dieser Anleitung wirst du NodeBB im Hintergrund als systemd-Dienst laufen lassen. Deshalb erstellst du jetzt eine neue Servicedatei für NodeBB, die es dir erleichtert, den NodeBB-Dienst mit dem Dienstprogramm systemctl zu verwalten.

Erstelle eine neue systemd-Dienstdatei /etc/systemd/system/nodebb.service mit dem folgenden nano-Editor.

sudo nano /etc/systemd/system/nodebb.service

Füge die folgende Servicedatei für NodeBB ein. In diesem Beispiel führst du den nodebb-Dienst als nodebb-Benutzer aus.

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=simple
User=nodebb

StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/opt/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den Befehl systemctl aus, um den systemd Manager neu zu laden und deine Änderungen zu übernehmen.

sudo systemctl daemon-reload

Starte, aktiviere und verifiziere den nodebb-Dienst mit dem folgenden Befehl.

sudo systemctl enable --now nodebb
sudo systemctl status nodebb

Wie du unten siehst, läuft der nodebb-Dienst im Hintergrund als systemd-Dienst.

Nodebb-Dienst

Nginx als Reverse Proxy einrichten

In diesem Lernprogramm wirst du den Webserver Nginx als Reverse Proxy für NodeBB verwenden. Also installierst du Nginx und erstellst einen neuen Serverblock für den Reverse-Proxy. Stelle sicher, dass dein Domainname auf die IP-Adresse des Servers zeigt.

Installiere den Nginx-Webserver mit dem folgenden apt install-Befehl auf deinem System.

sudo apt install nginx -y

nginx installieren

Sobald die Installation abgeschlossen ist, erstelle mit dem nano-Editor eine neue Serverblock-Konfiguration /etc/nginx/sites-available/nodebb.

sudo nano /etc/nginx/sites-available/nodebb

Füge die folgende Konfiguration ein und stelle sicher, dass du forum.howtoforge.local durch deinen Domainnamen ersetzt. Damit richtest du einen Reverse Proxy für NodeBB ein, der im Hintergrund auf Port 4567 läuft.

server {
 listen 80;
 server_name forum.howtoforge.local;

 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";
 }
}

Speichere die Datei und beende den Editor.

Führe nun den folgenden Befehl aus, um die Serverblockdatei nodebb zu aktivieren und deine Nginx-Konfiguration zu überprüfen. Wenn du richtig liegst und Nginx richtig konfiguriert hast, siehst du die Ausgabe syntax is ok – test is successful.

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/
sudo nginx -t

nginx-Einrichtung

Führe abschließend den Befehl systemctl aus, um den Nginx-Dienst neu zu starten und deine Änderungen zu übernehmen. Überprüfe dann den Status des Nginx-Dienstes, um sicherzustellen, dass er läuft.

sudo systemctl restart nginx
sudo systemctl status nginx

Wie du in der unten stehenden Ausgabe sehen kannst, läuft der Nginx-Dienst.

nginx prüfen

NodeBB mit HTTPS absichern

In diesem Abschnitt wirst du NodeBB mit HTTPS über Certbot und Letsencrypt sichern. In Kombination mit Certbot und Nginx kannst du automatisches HTTPS auf deinem Webserver einrichten.

Installiere die Pakete certbot und python3-certbot-nginx mit dem folgenden Befehl:

sudo apt install certbot python3-certbot-nginx -y

Führe nun den folgenden certbot-Befehl aus, um SSL-Zertifikate zu erzeugen und deine NodeBB-Installation mit HTTPS zu sichern. Achte darauf, dass du die E-Mail-Adresse und den Domainnamen mit deinen Daten abänderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email user@howtoforge.local -d forum.howtoforge.local

Nachdem der Vorgang abgeschlossen ist, siehst du deine Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com. Und deine NodeBB-Installation wird automatisch mit HTTPS gesichert.

Auf NodeBB zugreifen

Öffne deine NodeBB-Domain wie https://forum.howtoforge.local mit deinem Webbrowser. Wenn die Installation erfolgreich war, siehst du die Standard-Startseite von NodeBB wie die folgende:

Homepage

Klicke auf den Link Login und du wirst zur NodeBB Login-Seite weitergeleitet. Gib dann deinen Admin-Benutzer und dein Passwort ein und bestätige mit Login. Wenn du die richtigen Anmeldedaten hast, siehst du das folgende Admin-Dashboard.

Anmeldung

In den NodeBB-Admin-Einstellungen siehst du Folgendes:

Admin-Einstellungen

Fazit

Herzlichen Glückwunsch! Du hast die Open-Source-Forensoftware NodeBB auf einem Ubuntu 24.04 Server installiert. Du hast NodeBB mit MongoDB als Datenbank und Nginx als Reverse Proxy zum Laufen gebracht. Außerdem hast du NodeBB mit HTTPS über Certbot und Letsencrypt abgesichert. Du kannst jetzt einen SMTP-Server hinzufügen, um die Registrierung und die Bestätigung per E-Mail-Link einzurichten.

Das könnte dich auch interessieren …