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
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
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
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.
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()
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.
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
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
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
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.
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 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.
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
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
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.
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:
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.
In den NodeBB-Admin-Einstellungen siehst du Folgendes:
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.