So installierst du NodeBB mit MongoDB und Nginx Proxy auf AlmaLinux 9

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 und Redis für die Datenbankverwaltung und kann so große Mengen an nutzergenerierten Inhalten effizient verarbeiten.

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.

Dieser Leitfaden enthält eine Schritt-für-Schritt-Anleitung für die Installation von NodeBB auf einem Alma Linux 9 Server. Du verwendest MongoDB als Datenbank, Nginx als Reverse Proxy und sicherst NodeBB mit HTTPS über Certbot und Letsencrypt.

Voraussetzungen

Bevor du loslegst, solltest du sicherstellen, dass du Folgendes hast:

  • Einen Alma Linux 9 Server
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt
  • Ein SELinux mit dem Status permissive und aktiviert

Abhängigkeiten installieren

NodeBB ist eine Open-Source-Forensoftware, die auf Node.js basiert. Um NodeBB zu installieren, musst du sicherstellen, dass die folgenden Pakete installiert sind, einschließlich

  • Systemtools wie die „Development Tools“, Git und ImageMagick
  • Node.js 18 oder höher und NPM (Node Package Manager)
  • MongoDB NoSQL-Datenbankserver
  • Nginx Webserver als Reverse Proxy

In diesem Abschnitt wirst du diese Abhängigkeiten auf dem Alma Linux 9 Server installieren.

Führe zunächst den folgenden Befehl aus, um das Alma Linux CRB (CodeReadyBuild) Repository zu aktivieren und das EPEL Repository zu installieren.

sudo crb enable
sudo dnf install epel-release -y

Erstelle dann eine neue Repository-Datei„/etc/yum.repos.d/mongodb-org-7.0.repo“ mit dem Editor„nano„.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

Gib die folgende Konfiguration in die Datei ein:

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc

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

Führe nun den folgenden Befehl aus, um das Node.js 18 Repository für AlmaLinux zu aktivieren.

sudo dnf module enable nodejs:18 -y

deps installieren

Als nächstes führst du den folgenden„dnf„-Befehl aus, um die„Development Tools„, den MongoDB-Server, Node.js, NPM, Git und ImageMagick zu installieren.

sudo dnf group install "Development Tools" -y
sudo dnf install nodejs npm git ImageMagick mongodb-org -y

Pakete installieren

Nachdem die Installation abgeschlossen ist, starte und aktiviere den Dienst„mongod“ mit dem folgenden Befehl.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Du siehst unten, dass der MongoDB-Server läuft und aktiviert ist.

mongodb aktivieren

Überprüfe abschließend die Node.js-Version mit dem folgenden Befehl. Du solltest sehen, dass Node.js 18 auf dem Alma Linux Server installiert ist.

node --version
npm --version

nodejs npm prüfen

Einrichten des MongoDB-Servers und der Datenbank für NodeBB

Nachdem die Abhängigkeiten installiert sind, sicherst du den MongoDB-Server, indem du die Passwortauthentifizierung aktivierst und das MongoDB-Administratorpasswort einrichtest. Danach legst du eine neue MongoDB-Datenbank und einen neuen Benutzer für die NodeBB-Installation an.

Melde dich mit dem unten stehenden Befehl„mongosh“ am MongoDB-Server an.

mongosh

mongodb anmelden

Sobald du eingeloggt bist, wechselst du zur Datenbank„admin“ und führst die folgende Abfrage aus, um ein Admin-Passwort für MongoDB einzurichten. Achte darauf, dass du das„MongoDBAdminPass“ mit deiner Passwortkombination änderst.

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

Führe nun die folgenden Abfragen aus, um eine neue Datenbank und den Benutzer„nodebb“ mit dem Passwort „NodeBBPassword“ zu erstellen . Du kannst die folgenden Datenbankdetails nach Bedarf anpassen.

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

Gib„quit()“ ein, um den MongoDB-Server zu verlassen.

Admin-Benutzer anlegen und Datenbank einrichten

Nachdem du das Admin-Passwort für MongoDB konfiguriert hast, aktivieren wir nun die MongoDB-Authentifizierung.

Öffne die Standard-MongoDB-Konfigurationsdatei„/etc/mongod.conf“ mit dem Editor„nano„.

sudo nano /etc/mongod.conf

Um die MongoDB-Authentifizierung zu aktivieren, musst du die Zeile„security“ auskommentieren und„authorization: enabled“ wie folgt hinzufügen:

security:
authorization: enabled

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden„systemctl„-Befehl aus, um den MongoDB-Server neu zu starten und deine Änderungen zu übernehmen. Die MongoDB-Authentifizierung sollte jetzt aktiviert sein.

sudo systemctl restart mongod

Um die Konfiguration zu überprüfen, führe den Befehl„mongosh“ aus, um dich mit dem Benutzer„nodebb“ bei MongoDB anzumelden. Gib das Passwort für den Benutzer„nodebb“ ein.

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

NodeBB installieren

Nachdem du den MongoDB-Server konfiguriert hast, kannst du nun NodeBB auf dem Alma Linux Server installieren.

Füge mit dem folgenden Befehl einen neuen Systembenutzer und die Gruppe„nodebb“ hinzu.

sudo adduser -r -M -d /opt/nodebb -U nodebb

Lade den NodeBB-Quellcode in das Verzeichnis„/opt/nodebb“ herunter und ändere den Eigentümer 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 das NodeBB-Setup-Skript wie folgt aus:

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

Hier wirst du nach einigen NodeBB-Konfigurationen gefragt:

  • Gib deinen Domainnamen für NodeBB ein, z. B. https://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 Daten 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 der Vorgang abgeschlossen ist, siehst du eine Ausgabe wie diese:

Anmeldung bei Mongodb

Du kannst NodeBB jetzt manuell starten oder stoppen, indem du das Skript„nodebb“ wie folgt ausführst:

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

nodebb starten und stoppen

NodeBB als systemd-Dienst starten

Um NodeBB einfacher zu verwalten, kannst du den NodeBB-Prozess mit dem Dienstprogramm„systemctl“ steuern. Dazu musst du eine neue systemd-Dienstdatei für den Betrieb von NodeBB erstellen.

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

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

Gib die folgende Konfiguration ein, um NodeBB als systemd-Dienst auszuführen.

[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=/bin/env node loader.js --no-silent --no-daemon
Restart=always

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor.

Rufe den systemd-Manager mit dem Befehl„systemctl“ neu auf.

sudo systemctl daemon-reload

Starte und aktiviere den Dienst„nodebb“ und überprüfe dann, ob der Dienst läuft:

sudo systemctl enable --now nodebb
sudo systemctl status nodebb

Du kannst unten sehen, dass NodeBB im Hintergrund als systemd-Dienst läuft.

nodebb systemd einrichten

Nginx als Reverse Proxy einrichten

Jetzt, wo NodeBB als Dienst im Hintergrund läuft, installieren wir Nginx und erstellen einen neuen Serverblock, der als Reverse Proxy für NodeBB verwendet wird.

Führe zunächst den Befehl„dnf“ aus, um den Nginx-Webserver zu installieren.

sudo dnf install nginx -y

nginx installieren

Erstelle nun eine neue Nginx-Konfiguration„/etc/nginx/conf.d/nodebb.conf“ mit dem Editor„nano„.

sudo nano /etc/nginx/conf.d/nodebb.conf

Gib die folgende Konfiguration ein und achte darauf, dass du den Parameter„server_name“ durch deinen Domainnamen ersetzt.

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

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

Als Nächstes führst du den folgenden Befehl aus, um die Nginx-Syntax zu überprüfen. Wenn er erfolgreich ist, bekommst du die Ausgabe„Syntax ist ok – Test ist erfolgreich„.

sudo nginx -t

vhost-Einrichtung

Zum Schluss führst du den Befehl„systemctl“ aus, um den Nginx-Webserver zu starten, zu aktivieren und zu überprüfen.

sudo systemctl enable --now nginx
sudo systemctl status nginx

Unten siehst du, dass der Nginx-Webserver läuft.

nginx prüfen

NodeBB mit HTTPS absichern

An diesem Punkt ist deine NodeBB-Installation fertig. Aber wenn du dich auf einer öffentlichen Domain befindest, musst du NodeBB mit HTTPS absichern. In diesem Abschnitt richtest du HTTPS für NodeBB mit Certbot und Letsencrypt ein.

Installiere Certbot und das Certbot Nginx Plugin mit dem folgenden Befehl:

sudo dnf install certbot python3-certbot-nginx -y

Führe nun den unten stehenden Befehl„certbot“ aus, um deine NodeBB-Installation mit HTTPS zu sichern. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse in diesem Befehl änderst.

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

Nachdem der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis„/etc/letsencrypt/live/domain.com“ verfügbar und deine NodeBB-Installation sollte mit HTTPS gesichert sein.

Auf NodeBB zugreifen

Öffne deinen Webbrowser und rufe die NodeBB-Domain auf, z. B. https://forum.howtoforge.local. Wenn deine Installation erfolgreich war, siehst du die folgende NodeBB-Startseite.

nodebb

Fazit

Herzlichen Glückwunsch! Du hast die NodeBB-Installation auf dem Alma Linux 9 Server abgeschlossen. Du hast das NodeBB-Forum mit dem MongoDB-Server und Nginx als Reverse Proxy zum Laufen gebracht. Außerdem hast du die NodeBB-Installation mit HTTPS über Certbot und Letsencrypt gesichert.

Das könnte dich auch interessieren …