GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie das NodeBB-Forum mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

NodeBB ist eine moderne Forensoftware powered by Node.js, die MongoDB/Redis als Datenbankplattformen verwendet. Es verwendet Web-Sockets für sofortige Interaktionen und Benachrichtigungen in Echtzeit.

In diesem Tutorial lernen wir, wie man das NodeBB-Forum auf einem Ubuntu 20.04-basierten Server installiert.

Voraussetzungen

  • Ein Ubuntu 20.04-basierter Server mit Nicht-Root-Benutzer mit sudo-Berechtigungen.

  • Mindestens 2 GB RAM. Wenn Ihr Server nur über 1 GB RAM verfügt, aktivieren Sie am besten eine Swap-Partition.

  • Stellen Sie sicher, dass alles aktualisiert ist.

    $ sudo apt update && sudo apt upgrade
    
  • Wenige wichtige Pakete. Einige davon befinden sich bereits auf Ihrem Server.

    $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
    

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.

Überprüfen Sie, ob die Firewall ausgeführt wird.

$ sudo ufw status

Sie sollten die folgende Ausgabe erhalten.

Status: inactive

SSH-Port zulassen, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.

$ sudo ufw allow OpenSSH

27017 zulassen Port für den MongoDB-Server und 4567 Port zum Ausführen des NodeBB-Forums. HTTP zulassen und HTTPS auch Ports.

$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443

Aktivieren Sie die Firewall.

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Überprüfen Sie den Status der Firewall erneut.

$ sudo ufw status

Sie sollten eine ähnliche Ausgabe sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
4567                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)
4567 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Schritt 2 – Node.js installieren

Wir werden hier die LTS-Version von Node.js installieren. Führen Sie die folgenden Befehle aus, um Node.js zu installieren.

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

Überprüfen Sie, ob Node richtig installiert ist.

$ node --version

Sie sollten eine ähnliche Ausgabe sehen.

v12.18.3

Überprüfen Sie auch npm.

$ npm --version
6.14.6

Schritt 3 – MongoDB installieren

MongoDB ist die Standarddatenbank für NodeBB. Sie können auch Redis anstelle von MongoDB verwenden. Wir werden beide Datenbanken in unserem Tutorial behandeln.

Das Repository von MongoDB für Ubuntu 20.04 ist noch nicht fertig und Ubuntu selbst trägt eine sehr alte Version. Für unseren Zweck verwenden wir das MongoDB-Repository für 18.04, das einwandfrei funktioniert. Sie können die Paketliste mit dem neuesten Repository aktualisieren, sobald die offizielle Unterstützung verfügbar ist.

Importieren Sie den öffentlichen Schlüssel für MongoDB.

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

MongoDB-Repository hinzufügen.

$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Aktualisieren Sie die lokale Paketdatenbank.

$ sudo apt update

Installieren Sie MongoDB.

$ sudo apt install mongodb-org

Überprüfen Sie die Installation von MongoDB.

$ mongod --version
db version v4.2.8
...

Starten Sie den MongoDB-Dienst.

$ sudo systemctl start mongod

Aktivieren Sie den MongoDB-Dienst.

$ sudo systemctl enable mongod

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

$ sudo systemctl status mongod

Schritt 4 – Konfigurieren von MongoDB

Die Mongo-Verwaltung erfolgt über die MongoDB-Shell. Die Standardinstallation von MongoDB überwacht Port 27017.

Greifen Sie auf die MongoDB-Shell zu.

$ mongo

Wechseln Sie zum integrierten admin Datenbank.

> use admin

Erstellen Sie einen administrativen Benutzer. Dies ist nicht dasselbe wie der NodeBB-Admin-Benutzer.

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

Ändern Sie den Platzhalter “yourpassword” zu Ihrem eigenen Passwort.

Fügen Sie eine neue Datenbank für NodeBB hinzu.

> use nodebb

Erstellen Sie als Nächstes den nodebb Benutzer, um den nodebb zu verwalten Datenbank.

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

Das readwrite Berechtigung erlaubt NodeBB, Daten von nodebb zu speichern und abzurufen Datenbank. Der clustermonitor Berechtigung erlaubt NodeBB Lesezugriff auf die Datenbankstatistiken, die über das Admin-Panel sichtbar sind.

Beenden Sie die Mongo-Shell.

> quit()

Öffnen Sie die MongoDB-Konfigurationsdatei zum Bearbeiten.

$ sudo nano /etc/mongod.conf

Fügen Sie die folgende Zeile am Ende der Datei hinzu.

security:
  authorization: enabled

Starten Sie MongoDB neu und überprüfen Sie den zuvor erstellten Administrator.

$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin

Sie sollten die Mongo-Eingabeaufforderung sehen, wenn alles richtig konfiguriert wurde.

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

$ git config --global user.name "Your 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 nicht privilegierten Benutzer.

$ sudo adduser nodebb

Legen Sie ein Passwort Ihrer Wahl fest und überspringen Sie andere Optionen.

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

$ sudo mkdir /var/www/nodebb

Ändern Sie den Eigentümer des Ordners auf den neu erstellten Benutzer.

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

Melden Sie sich beim neu erstellten Benutzer an.

$ su nodebb

Wechseln Sie in das Installationsverzeichnis von NodeBB.

$ cd /var/www/nodebb

Um NodeBB zu installieren, müssen wir zuerst sein Github-Repository klonen.

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

$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .

Hier haben wir die v1.14.2 von NodeBB geklont, die zum Zeitpunkt des Schreibens des Tutorials die neueste stabile Version war. Den neuesten stabilen Zweig finden Sie auf der Seite „Neueste Version“ von NodeBB.

NodeBB wird mit einem Befehlszeilendienstprogramm geliefert. Verwenden Sie den folgenden Befehl, um NodeBB zu installieren.

$ ./nodebb setup

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

Für den Wert von URL, die für den Zugriff auf dieses NodeBB verwendet wird Wählen Sie die endgültige URL, unter der Sie auf das Forum zugreifen möchten. Wenn Sie über Ihre Server-IP auf das Forum zugreifen, geben Sie diese oder die vollständige Domain des Forums ein. Hier geben wir http://forum.example.com ein .

Wählen Sie weiterhin Standardwerte aus, bis Sie zur Eingabe von MongoDB-Benutzername aufgefordert werden das ist, wenn Sie nodebb eingeben und das Passwort, das Sie zuvor bei der Konfiguration von MongoDB für diesen Benutzernamen gewählt haben. Ihre Datenbank nodebb gewählt werden soll. Sie werden auch aufgefordert, einen Administratorbenutzer und seine Details zu erstellen.

Führen Sie nach Abschluss der Einrichtung den folgenden Befehl aus, um NodeBB zu starten.

$ ./nodebb start

Ihr Forum läuft jetzt. Sie sollten über http://<yourserverip>:4567 darauf zugreifen können .

Möglicherweise wird eine Fehlermeldung angezeigt, die besagt:Sieht so aus, als ob Ihre Verbindung zu NodeBB unterbrochen wurde. Bitte warten Sie, während wir versuchen, die Verbindung wiederherzustellen. Es erscheint, weil wir die Standard-URL für NodeBB http://forum.example.com gewählt haben und nicht http://<yourserverip . Aber wenn Sie die IP-Adresse während der Einrichtung eingeben, erhalten Sie den Fehler nicht mehr, sondern müssen später erneut konfigurieren, nachdem Sie eine Domain für Ihr Forum ausgewählt haben.

Verlassen Sie den NodeBB-Benutzer.

$ exit

Schritt 7 – Nginx installieren

Ubuntu 20.04 enthält standardmäßig die neueste stabile Version von Nginx. Wir werden das installieren.

$ sudo apt install nginx

Überprüfen Sie, ob es richtig installiert ist.

$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Nginx starten und aktivieren.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Öffnen Sie die IP-Adresse Ihres Servers in Ihrem Webbrowser. Sie sollten die folgende Seite sehen, was bedeutet, dass Ihr Server betriebsbereit ist.

Schritt 8 – Nginx konfigurieren

Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei für Ihre Website hinzuzufügen.

$ sudo nano /etc/nginx/sites-available/nodebb.conf

Fügen Sie den folgenden Code in den Editor ein.

server {
    listen 80;

    server_name forum.example.com;
    
    access_log /var/log/nginx/forum.example.com.access.log;
    error_log /var/log/nginx/forum.example.com.error.log;

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

Drücken Sie Ctrl + X um den Editor zu verlassen und Y einzugeben wenn Sie dazu aufgefordert werden.

Wenn Sie fertig sind, überprüfen Sie, ob die Nginx-Konfiguration korrekt ist.

$ sudo nginx -t

Laden Sie den Nginx-Dienst neu, um die Konfiguration zu aktivieren.

$ sudo systemctl reload nginx

Besuchen Sie http://forum.example.com in Ihrem Browser, um das NodeBB-Forum zu öffnen.

Schritt 9 – Führen Sie NodeBB als Systemdienst aus

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.

$ ./nodebb stop

Führen Sie den folgenden Befehl aus, um nodebb.service zu erstellen und zu bearbeiten systemd-Unit-Konfigurationsdatei.

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

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

Hier haben wir den Benutzernamen als nodebb gewählt die wir in Schritt 6 erstellt haben, und den Pfad, den wir gewählt haben, um NodeBB darin 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

Schritt 10 – Erhalten Sie ein SSL-Zertifikat von Let’s Encrypt

Das Sichern Ihres NodeBB-Forums mit HTTPS ist ein notwendiger Schritt, um den Datenverkehr Ihrer Website zu sichern. Für dieses Tutorial verwenden wir den Certbot-Client, um SSL zu installieren.

Installieren Sie dazu zuerst das Certbot-Tool.

$ sudo apt install certbot python3-certbot-nginx

Generieren Sie die Zertifikate.

$ sudo certbot --nginx -d forum.example.com

Wenn Sie Certbot zum ersten Mal auf Ihrem System ausführen, werden Sie nach einer E-Mail-Adresse gefragt und müssen den Nutzungsbedingungen zustimmen. Sie werden auch gefragt, ob Sie damit einverstanden sind, Daten mit der EFF-Stiftung zu teilen, wozu Sie nein sagen können. Danach kommuniziert Certbot mit den Servern von Let's Encrypt und führt eine Abfrage durch, um Ihre Domains zu verifizieren.

Wenn dies erfolgreich ist, werden Sie gefragt, wie mit HTTPS-Umleitungen umgegangen werden soll.

Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Wählen Sie Secure Auswahl und drücken Sie die Eingabetaste. Dadurch wird sichergestellt, dass alle Anfragen an die http-Domäne ordnungsgemäß an die https-Version umgeleitet werden. Ihre Zertifikate werden dann erstellt und Ihre Nginx-Konfigurationsdateien werden mit SSL-Einstellungen aktualisiert.

Ihre Zertifikate sind fertig und Sie können Ihre Website jetzt öffnen, indem Sie zu https://forum.example.com gehen

Schritt 11 – Verifizieren Sie die automatische SSL-Verlängerung

Dies ist der letzte Schritt, bevor wir dieses Tutorial beenden.

Überprüfen Sie den Erneuerungsprozess, indem Sie einen Probelauf des Erneuerungsprozesses durchführen.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler erhalten, bedeutet dies, dass Sie eingestellt sind. Certbot erneuert Ihre Zertifikate automatisch für Sie. Sie erhalten eine E-Mail-Warnung über den Ablauf des Zertifikats.

Schlussfolgerung

Das ist alles zu diesem Tutorial. Die Einrichtung Ihres NodeBB-Forums ist abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Ubuntu
  1. Sichern Sie Nginx mit Lets Encrypt auf Ubuntu 20.04

  2. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  3. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  4. So installieren Sie Shopware mit NGINX und Lets encrypt auf Ubuntu 18.04 LTS

  5. Installieren Sie Automad CMS mit Nginx und Lets Encrypt SSL auf Ubuntu 18.04

So installieren Sie MediaWiki mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie Gitea mit Nginx und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie Let’s Encrypt SSL mit Nginx unter Ubuntu 16.04 LTS

So installieren Sie Let’s Encrypt SSL für Nginx unter Ubuntu 18.04 LTS

So installieren Sie Nginx mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Apache mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS