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
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
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.
Ü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
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
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.
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:
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 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.
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
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
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.
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.
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.