NodeBB Installation · 12 min read · Oct 14, 2025

So installieren Sie das NodeBB-Forum auf Ubuntu 22.04

NodeBB ist eine moderne Forensoftware, die auf dem Node.js-Framework basiert. Es verwendet MongoDB, PostgreSQL oder Redis-Datenbanken zur Speicherung von Daten. Es nutzt Websockets für Echtzeitbenachrichtigungen und sofortige Interaktionen. Es verfügt über moderne Funktionen wie die Integration von sozialen Netzwerken, Plugin-Unterstützung, mobile Reaktionsfähigkeit und vollständige REST-Lese-/Schreib-APIs.

NodeBB ist sowohl als Open-Source-Selbsthosting-Projekt als auch als Cloud-Service verfügbar. In diesem Tutorial lernen Sie, wie Sie das NodeBB-Forum mit Nginx auf einem Ubuntu 22.04-Server installieren. Ubuntu 22.04 unterstützt MongoDB nicht offiziell; daher verwenden wir PostgreSQL zur Speicherung von Daten.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 mit mindestens 1 GB RAM ausführt.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Die unkomplizierte Firewall (UFW) ist aktiviert und läuft.
  • Ein vollqualifizierter Domainname (FQDN), der auf den Server verweist, wie forum.example.com.
  • Alles ist aktualisiert. $ sudo apt update && sudo apt upgrade

Schritt 1 - Firewall konfigurieren

Bevor Sie Pakete installieren, besteht der erste Schritt darin, die Firewall so zu konfigurieren, dass HTTP- und HTTPS-Verbindungen erlaubt sind.

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas sehen, das wie folgt aussieht.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Erlauben Sie HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status erneut, um dies zu bestätigen.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
80/tcp                     ERLAUBEN    Überall
443                        ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
80/tcp (v6)                ERLAUBEN    Überall (v6)
443 (v6)                   ERLAUBEN    Überall (v6)

Schritt 2 - PostgreSQL installieren

Der erste Schritt zur Installation von PostgreSQL besteht darin, seinen GPG-Schlüssel hinzuzufügen.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Aktualisieren Sie das System-Repository.

$ sudo apt update

Jetzt können Sie PostgreSQL installieren.

$ sudo apt install postgresql postgresql-contrib

Überprüfen Sie den Status des PostgreSQL-Dienstes.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Geladen: geladen (/lib/systemd/system/postgresql.service; aktiviert; Hersteller-Voreinstellung: aktiviert)
     Aktiv: aktiv (beendet) seit Sa 2022-09-10 06:25:11 UTC; vor 13s
    Prozess: 12083 ExecStart=/bin/true (Code=beendet, Status=0/ERFOLG)
   Haupt-PID: 12083 (Code=beendet, Status=0/ERFOLG)
        CPU: 1ms

Sep 10 06:25:11 nodebb systemd[1]: Starte PostgreSQL RDBMS...
Sep 10 06:25:11 nodebb systemd[1]: PostgreSQL RDBMS beendet.

Schritt 3 - PostgreSQL konfigurieren

Wir müssen ein Passwort für den standardmäßigen administrativen Benutzer postgres festlegen. Melden Sie sich zuerst an der Postgres-Shell an.

$ sudo -u postgres psql

Geben Sie den folgenden Befehl ein, um das Passwort zu ändern.

postgres=# \password postgres

Sie werden aufgefordert, ein neues Passwort einzugeben.

Geben Sie ein neues Passwort für den Benutzer "postgres" ein:
Geben Sie es erneut ein:

Erstellen Sie einen neuen Benutzer für NodeBB.

postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';

Erstellen Sie eine neue Datenbank für NodeBB.

postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;

Geben Sie \q ein, um die Shell zu verlassen.

postgres=# \q

Schritt 4 - Node.js installieren

Da das NodeBB-Forum mit dem Node.js-Framework geschrieben ist, müssen wir es installieren, damit es funktioniert.

Führen Sie die folgenden Befehle aus, um die LTS (v16.x)-Version von Node.js zu installieren.

$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejs

Überprüfen Sie die Installation von Node.js und NPM.

$ node -v
v16.17.0
$ npm -v
8.15.0

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 erste Konfiguration von Git durchzuführen.

$ git config --global user.name "Ihr 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 unprivilegierten Systembenutzer ohne Passwort.

$ sudo adduser nodebb --disabled-password

Überspringen Sie alle anderen Optionen.

Erstellen Sie das Verzeichnis, in dem Ihr NodeBB-Forum leben wird.

$ sudo mkdir /var/www/html/nodebb -p

Ändern Sie den Besitz des Ordners auf den neu erstellten Benutzer.

$ sudo chown -R nodebb:nodebb /var/www/html/nodebb

Melden Sie sich beim neu erstellten Benutzer an.

$ sudo su - nodebb

Wechseln Sie in das Installationsverzeichnis von NodeBB.

$ cd /var/www/html/nodebb

Um NodeBB zu installieren, müssen wir zuerst das GitHub-Repository klonen.

Klonen Sie NodeBB in das Verzeichnis /var/www/nodebb. Der Punkt am Ende des Befehls verweist auf das aktuelle Verzeichnis.

$ git clone -b v2.x https://github.com/NodeBB/NodeBB.git .

Hier haben wir den v2.x-Zweig von NodeBB geklont, der die neueste stabile Version von NodeBB enthält. Sie können den neuesten stabilen Zweig auf der Seite der neuesten Zweige von NodeBB finden.

NodeBB wird mit einem Befehlszeilen-Dienstprogramm geliefert. Verwenden Sie den folgenden Befehl, um NodeBB zu installieren.

$ ./nodebb setup

Sie können die Eingabetaste drücken, um den Standardwert auszuwählen.

2022-09-10T10:10:27.957Z [2633] - info: NodeBB Setup über die Befehlszeile ausgelöst

Willkommen bei NodeBB v2.5.2!

Dies sieht nach einer neuen Installation aus, daher müssen Sie ein paar Fragen zu Ihrer Umgebung beantworten, bevor wir fortfahren können.
Drücken Sie die Eingabetaste, um die Standardeinstellung (in Klammern angezeigt) zu akzeptieren.
URL, die verwendet wird, um auf dieses NodeBB zuzugreifen (http://localhost:4567) https://forum.example.com
Bitte geben Sie ein NodeBB-Geheimnis ein (44fd62bc-5047-4414-a4ca-83105740b624)
Möchten Sie anonymen Plugin-Gebrauch an nbbpm übermitteln? (ja) nein
Welches Datenbank verwenden (mongo) postgres
2022-09-10T10:10:43.237Z [2633] - info:
Jetzt wird die postgres-Datenbank konfiguriert:
Host-IP oder Adresse Ihrer PostgreSQL-Instanz (127.0.0.1)
Host-Port Ihrer PostgreSQL-Instanz (5432)
PostgreSQL-Benutzername nbbuser
Passwort Ihrer PostgreSQL-Datenbank
PostgreSQL-Datenbankname (nodebb) nodebbdb
SSL für den Zugriff auf die PostgreSQL-Datenbank aktivieren (falsch)
........

Für den Wert der URL, die verwendet wird, um auf dieses NodeBB zuzugreifen, wählen Sie die endgültige URL, unter der Sie auf das Forum zugreifen möchten. Wenn Sie auf das Forum über Ihre Server-IP zugreifen, geben Sie diese ein oder geben Sie die vollständige Domain des Forums ein. Hier geben wir https://forum.example.com ein. Wählen Sie nein als Antwort auf die Frage zur Übermittlung anonymen Plugin-Gebrauchs. Geben Sie postgres als Datenbanktyp ein.

Wählen Sie dann die Standard-Host-IP und den Port, indem Sie die Eingabetaste drücken, und geben Sie Ihren PostgreSQL-Benutzernamen ein, wenn Sie nbbuser eingeben, und das Passwort, das Sie zuvor für diesen Benutzernamen bei der Konfiguration von MongoDB gewählt haben. Ihre Datenbank nodebbdb sollte ausgewählt werden.

Sie werden auch aufgefordert, einen Administratorbenutzer und dessen Details zu erstellen.

.....
2022-09-10T10:11:14.121Z [2633] - warn: Es wurden keine Administratoren erkannt, initiale Benutzereinrichtung wird ausgeführt

Administrator-Benutzername navjot
Administrator-E-Mail-Adresse [email protected]
Passwort
Passwort bestätigen
.....
....
2022-09-10T10:14:28.160Z [2633] - info: [build] Asset-Kompilierung erfolgreich. Abgeschlossen in 118.777sec.

     =================================================================================================================================================================

NodeBB-Setup abgeschlossen. Führen Sie "./nodebb start" aus, um Ihren NodeBB-Server manuell zu starten.

Sobald das Setup abgeschlossen ist, führen Sie den folgenden Befehl aus, um NodeBB zu starten.

$ ./nodebb start
Starte NodeBB
  "./nodebb stop" um den NodeBB-Server zu stoppen
  "./nodebb log" um die Serverausgabe anzuzeigen
  "./nodebb help" für weitere Befehle

Verlassen Sie den NodeBB-Benutzer.

$ exit

Schritt 7 - NodeBB als Systemdienst ausführen

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. Wechseln Sie in das NodeBB-Verzeichnis und führen Sie dann den Befehl direkt mit dem sudo -u-Befehl aus.

$ cd /var/www/html/nodebb  
$ sudo -u nodebb ./nodebb stop

Führen Sie den folgenden Befehl aus, um die nodebb.service-Systemd-Einheitendatei zu erstellen und zu bearbeiten.

$ 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 postgresql.service

[Service]
Type=simple
User=nodebb

StandardError=syslog
SyslogIdentifier=nodebb

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

[Install]
WantedBy=multi-user.target

Hier haben wir den Benutzernamen als nodebb gewählt, den wir in Schritt 6 erstellt haben, und den Pfad, den wir gewählt haben, um NodeBB 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
? nodebb.service - NodeBB
     Geladen: geladen (/etc/systemd/system/nodebb.service; aktiviert; Hersteller-Voreinstellung: aktiviert)
     Aktiv: aktiv (läuft) seit So 2022-09-11 21:41:07 UTC; vor 2s
       Docs: https://docs.nodebb.org
   Haupt-PID: 26844 (node)
      Aufgaben: 18 (Limit: 2237)
     Speicher: 94.1M
        CPU: 2.114s
     CGroup: /system.slice/nodebb.service
             ??26844 node loader.js --no-silent --no-daemon
             ??26855 /usr/bin/node /var/www/html/nodebb/app.js

Sep 11 21:41:07 forum systemd[1]: NodeBB gestartet.
Sep 11 21:41:07 forum nodebb[26844]: NodeBB v2.5.2 Copyright (C) 2013-2022 NodeBB Inc.
Sep 11 21:41:07 forum nodebb[26844]: Dieses Programm kommt ohne jegliche Gewährleistung.
Sep 11 21:41:07 forum nodebb[26844]: Diese Software ist kostenlos, und Sie sind herzlich eingeladen, sie unter bestimmten Bedingungen weiterzugeben.
Sep 11 21:41:07 forum nodebb[26844]: Für die vollständige Lizenz besuchen Sie bitte: http://www.gnu.org/copyleft/gpl.html
Sep 11 21:41:07 forum nodebb[26844]: Clustering aktiviert: Starte 1 Prozess(e).
Sep 11 21:41:08 forum nodebb[26855]: 2022-09-11T21:41:08.002Z [4567/26855] - info: Initialisiere NodeBB v2.5.2 https://forum.example.com

Schritt 8 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die Systemrepositories.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.0

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 9 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core
$ sudo snap refresh core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/forum.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppen-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 10 - Nginx konfigurieren

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/nodebb.conf zur Bearbeitung.

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

Fügen Sie den folgenden Code ein. Ersetzen Sie forum.example.com durch Ihren Domainnamen. Stellen Sie sicher, dass der Wert von client_max_body_size auf 25 MB eingestellt ist, um die Upload-Größe für das Forum festzulegen.

server {
  listen 80 default_server;
  server_name forum.example.com;
  return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl http2;
   server_name forum.example.com;

   http2_push_preload on; # HTTP/2 Server Push aktivieren

   ssl_certificate /etc/letsencrypt/live/forum.example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/forum.example.com/privkey.pem;
   ssl_trusted_certificate /etc/letsencrypt/live/forum.example.com/chain.pem;
   ssl_session_timeout 1d;

   # TLS-Versionen aktivieren (TLSv1.3 ist erforderlich für das kommende HTTP/3 QUIC).
   ssl_protocols TLSv1.2 TLSv1.3;

   # Aktivieren Sie TLSv1.3's 0-RTT. Verwenden Sie $ssl_early_data beim Reverse-Proxying, um
   # Wiederholungsangriffe zu verhindern.
   #
   # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
   ssl_early_data on;

   ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:50m;

   # OCSP Stapling ---
   # Holen Sie sich OCSP-Datensätze von der URL im ssl_certificate und cachen Sie sie
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_dhparam /etc/ssl/certs/dhparam.pem;
   client_max_body_size 25M;

   gzip            on;
   gzip_min_length 1000;
   gzip_proxied    off;
   gzip_types      text/plain application/xml text/javascript application/javascript application/x-javascript text/css application/json;

   add_header X-Early-Data $tls1_3_early_data;

   location / {       
       # Socket.IO Unterstützung
       proxy_set_header Connection "upgrade";
       proxy_set_header Upgrade $http_upgrade;
       proxy_http_version 1.1;

       proxy_set_header Host $http_host;
       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 X-NginX-Proxy true;
       proxy_set_header X-Frame-Options SAMEORIGIN;

       proxy_pass http://127.0.0.1:4567;  # kein abschließender Schrägstrich
       proxy_redirect off;
   }

   location @nodebb {
       proxy_pass http://127.0.0.1:4567;
   }

   location ~ ^/assets/(.*) {
       root /var/www/html/nodebb/;
       try_files /build/public/$1 /public/$1 @nodebb;
   }
}

# Dieser Block ist nützlich zur Fehlersuche von TLS v1.3. Bitte entfernen Sie dies
# und verwenden Sie die von NGINX direkt bereitgestellte Variable `$ssl_early_data`, wenn Sie dies
# wünschen.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Überprüfen Sie Ihre Nginx-Konfiguration.

$ sudo nginx -t

Starten Sie den Nginx-Server neu.

$ sudo systemctl restart nginx

Schritt 11 - Forum aufrufen und konfigurieren

Sie können auf das Forum zugreifen, indem Sie die URL https://forum.example.com in Ihrem Browser besuchen. Sie erhalten die folgende Seite.

NodeBB-Forum-Startseite

Klicken Sie auf die Anmeldeseite und geben Sie die Administratoranmeldeinformationen ein, die Sie in Schritt 6 erstellt haben.

NodeBB-Anmeldeseite

Sie sind angemeldet. Klicken Sie als Nächstes auf das rechte Symbol oben in der Menüleiste, um auf das Administrationspanel zuzugreifen.

Von hier aus können Sie das Forum verwalten. Erweitern Sie es, indem Sie Themen und Plugins installieren.

NodeBB-Forum-Admin-Dashboard

Nach der Installation eines Themas und eines Plugins müssen Sie das Forum mit der Schaltfläche in der oberen rechten Ecke des Administrationsdashboards, wie hier gezeigt, neu aufbauen und neu starten.

Stellen Sie sicher, dass Sie Ihren E-Mail-Dienst konfigurieren, indem Sie zu Dashboard >> Einstellungen >> E-Mail gehen, damit Ihre Forenbenutzer E-Mails erhalten können. Wählen Sie die folgenden Einstellungen aus, um optimale E-Mail-Zustellungseinstellungen festzulegen.

NodeBB-Forum-E-Mail-Einstellungen

Scrollen Sie nach unten zur Seite und wählen Sie einen benutzerdefinierten Mailer aus dem Dropdown-Menü oder verwenden Sie den benutzerdefinierten Mailer, wenn Ihr SMTP-Dienst nicht in der Liste steht. Für unser Tutorial verwenden wir den SES-Dienst.

NodeBB-Forum-SMTP-Einstellungen

Klicken Sie auf das Diskettensymbol unten rechts, um die Einstellungen zu speichern.

Scrollen Sie zum Ende der Seite, um eine Test-E-Mail zu senden. Standardmäßig wird eine gesperrte E-Mail-Vorlage gesendet. Sie können eine andere E-Mail-Vorlage auswählen, um zu testen. Wir werden die Willkommens-E-Mail senden.

NodeBB-Forum-E-Mail-Test

Sie erhalten eine Test-E-Mail, wie unten gezeigt, die die Einstellungen bestätigt.

NodeBB-Forum-Test-E-Mail

Fazit

Damit endet unser Tutorial zur Installation des NodeBB-Forums mit der PostgreSQL-Datenbank und Nginx auf einem Ubuntu 22.04-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.