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

So installieren Sie das NodeBB-Forum unter Ubuntu 18.04 LTS

NodeBB ist eine Node.js-basierte Forensoftware, die für das moderne Web entwickelt wurde. Es basiert entweder auf einer MongoDB- oder einer Redis-Datenbank. Es nutzt Web-Sockets für sofortige Interaktionen und Echtzeit-Benachrichtigungen. NodeBB verfügt über viele moderne Funktionen, die sofort einsatzbereit sind, wie z. B. die Integration in soziale Netzwerke und Streaming-Diskussionen. Zusätzliche Funktionalität wird durch die Verwendung von Plugins von Drittanbietern aktiviert. NodeBB ist ein Open-Source-Projekt, das auf Github zu finden ist. In diesem Leitfaden führen wir Sie Schritt für Schritt durch den NodeBB-Installationsprozess auf dem Ubuntu 18.04 LTS-Betriebssystem, indem wir Nginx als Reverse-Proxy, MongoDB als Datenbank und acme.sh und Let's Encrypt für HTTPS verwenden.

Anforderungen

NodeBB erfordert die Installation der folgenden Software:

  • Node.js-Version 6 oder höher
  • MongoDB-Version 2.6 oder höher oder Redis-Version 2.8.9 oder höher
  • Nginx-Version 1.3.13 oder höher
  • Git

HINWEIS : Die Installation der Abhängigkeiten von NodeBB kann mehr als 512 Megabyte Systemspeicher erfordern. Es wird empfohlen, eine Auslagerungspartition zu aktivieren, um dies zu kompensieren, wenn Ihr Linux-System nicht genügend Arbeitsspeicher hat.

Voraussetzungen

  • Ein laufendes Ubuntu 18.04-System mit mindestens 1 GB oder RAM.
  • Domänenname mit A /AAAA Aufzeichnungen eingerichtet.
  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

Erste Schritte

Überprüfen Sie Ihre Ubuntu-Version:

lsb_release -ds
# Ubuntu 18.04.1 LTS

Richten Sie die Zeitzone ein:

sudo dpkg-reconfigure tzdata

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da er sicherstellt, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:

sudo apt update && sudo apt upgrade -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Ubuntu-Betriebssystems erforderlich sind:

sudo apt install -y curl wget vim git unzip socat bash-completion

Schritt 1:Node.js und npm installieren

NodeBB basiert auf Node.js. Wir werden empfohlen installieren Version für NodeBB, die Version 8  ist zum Zeitpunkt dieses Schreibens. Unter Linux haben Sie einige Node.js-Installationsoptionen:Linux-Binärdateien (x86/x64), Quellcode oder über Paketmanager. Wir werden die Paketverwaltungsoption verwenden, die das Installieren und Aktualisieren von Node.js zum Kinderspiel macht.

Laden Sie die neueste Long-Term Support (LTS)-Version von Node.js aus dem Nodesource-Repository herunter und installieren Sie sie:

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

Um native Add-Ons von npm zu kompilieren und zu installieren, müssen Sie möglicherweise auch Build-Tools installieren:

sudo apt install -y build-essential

HINWEIS :npm wird mit Node.js verteilt – was bedeutet, dass beim Herunterladen von Node.js automatisch npm auf Ihrem System installiert wird.

Überprüfen Sie die Node.js- und npm-Versionen:

node -v && npm -v
# v10.15.1
# 6.4.1

Npm ist ein separates Projekt von Node.js und wird tendenziell häufiger aktualisiert. Daher müssen Sie wahrscheinlich Ihr npm aktualisieren, selbst wenn Sie gerade Node.js (und damit npm) heruntergeladen haben. Glücklicherweise weiß npm, wie es sich selbst aktualisiert! Um Ihr npm zu aktualisieren, geben Sie Folgendes in Ihr Terminal ein:

sudo npm install -g [email protected]

Dieser Befehl aktualisiert npm auf die neueste stabile Version.

Überprüfen Sie die npm-Version erneut mit:

npm -v
# 6.7.0

Und es sollte die neuesten Versionsnummern zurückgeben.

Schritt 2:MongoDB installieren und konfigurieren

NodeBB benötigt eine Datenbank zum Speichern seiner Daten und unterstützt MongoDB und Redis. In dieser Anleitung haben wir MongoDB als Datenspeicher-Engine ausgewählt. In den nächsten Schritten werden wir also die MongoDB-Datenbank aus dem offiziellen MongoDB-RPM-Repository herunterladen und installieren:

Um die stabile Version des MongoDB-Pakets zu installieren, geben Sie den folgenden Befehl ein:

sudo apt install -y mongodb

Überprüfen Sie die MongoDB-Version:

mongo --version | head -n 1 && mongod --version | head -n 1

Starten und aktivieren (festlegen, dass es beim Neustart gestartet wird ) MongoDB-Dienst:

sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service

Überprüfen Sie den Status des MongoDB-Datenbankservers, indem Sie Folgendes ausführen:

sudo systemctl status mongodb.service
# active (running)

Erstellen Sie als Nächstes eine MongoDB-Datenbank und einen Benutzer für NodeBB.

Stellen Sie zuerst eine Verbindung zum MongoDB-Server her.

mongo

Wechseln Sie zum integrierten admin Datenbank.

> use admin

Erstellen Sie einen administrativen Benutzer.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

HINWEIS: Ersetzen Sie den Platzhalter <Enter a secure password> mit Ihrem selbst gewählten Passwort.

Fügen Sie eine neue Datenbank namens nodebb hinzu .

> use nodebb

Die Datenbank wird erstellt und der Kontext auf nodebb umgeschaltet . Erstellen Sie als Nächstes den nodebb Benutzer mit den entsprechenden Berechtigungen.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

HINWEIS: Ersetzen Sie erneut den Platzhalter <Enter a secure password> mit Ihrem selbst gewählten Passwort.

Beenden Sie die Mongo-Shell.

> quit()

Starten Sie MongoDB neu und vergewissern Sie sich, dass der zuvor erstellte Administrator eine Verbindung herstellen kann.

sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin

Wenn alles gut gegangen ist, sollte Ihre MongoDB installiert und für NodeBB vorbereitet sein. Im nächsten Schritt werden wir uns mit der Installation und Konfiguration des Webservers befassen.

Schritt 3 - Installieren Sie acme.sh Client und erhalten Sie das Let's Encrypt-Zertifikat (optional )

Das Sichern Ihres NodeBB-Forums mit HTTPS ist nicht erforderlich, aber es ist eine bewährte Methode, Ihren Website-Traffic zu sichern. Um ein TLS-Zertifikat von Let's Encrypt zu erhalten, verwenden wir den acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Abrufen von TLS-Zertifikaten von Let's Encrypt ohne Abhängigkeiten.

Laden Sie acme.sh herunter und installieren Sie es:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Überprüfen Sie die acme.sh-Version:

acme.sh --version
# v2.8.0

Holen Sie sich RSA und ECC/ECDSA Zertifikate für Ihre Domain/Ihren Hostnamen:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Wenn Sie zum Testen gefälschte Zertifikate wünschen, können Sie --staging hinzufügen Flage zu den obigen Befehlen.

Nachdem Sie die obigen Befehle ausgeführt haben, werden Ihre Zertifikate und Schlüssel wird sein in:

  • Für RSA :/home/username/example.com Verzeichnis.
  • Für ECC/ECDSA :/home/username/example.com_ecc Verzeichnis.

Um Ihre ausgestellten Zertifikate aufzulisten, können Sie Folgendes ausführen:

acme.sh --list

Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir verwenden /etc/letsencrypt Verzeichnis.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installieren/kopieren Sie Zertifikate in das /etc/letsencrypt-Verzeichnis.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle Zertifikate werden alle 60 Tage automatisch erneuert.

Nachdem Sie die Zertifikate erhalten haben, beenden Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:

exit

Schritt 4:Nginx installieren und konfigurieren

NodeBB kann mit vielen Webservern gut funktionieren. In diesem Tutorial haben wir Nginx ausgewählt.

Installieren Sie das Nginx-Paket, indem Sie den folgenden Befehl ausgeben:

sudo apt install -y nginx

Nach der Installation können Sie die Nginx-Version überprüfen, indem Sie Folgendes ausführen:

nginx -v

Starten und aktivieren (festlegen, dass es beim Neustart gestartet wird ) Nginx-Dienst:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Überprüfen Sie den Status des Nginx-Webservers, indem Sie Folgendes ausführen:

sudo systemctl status nginx.service
# active (running)

NodeBB läuft standardmäßig auf Port 4567 . Um die Eingabe von http://example.com:4567 zu vermeiden konfigurieren wir Nginx als Reverse-Proxy für die NodeBB-Anwendung. Jede Anfrage auf Port 80 oder 443 (wenn SSL verwendet wird ) werden an Port 4567 weitergeleitet .

Führen Sie sudo vim /etc/nginx/conf.d/nodebb.conf aus und konfigurieren Sie Nginx als HTTPS-Reverse-Proxy.

server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

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

}

Überprüfen Sie die Nginx-Konfiguration:

sudo nginx -t

Damit die Änderungen wirksam werden, müssen wir Nginx neu laden:

sudo systemctl reload nginx.service

Schritt 5:NodeBB installieren und einrichten

Erstellen Sie ein Dokumentstammverzeichnis, in dem sich NodeBB befinden soll:

sudo mkdir -p /var/www/nodebb

Navigieren Sie zum Stammverzeichnis des Dokuments:

cd /var/www/nodebb

Ändern Sie den Besitz von /var/www/nodebb Verzeichnis zu Ihr_Benutzer.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

HINWEIS:  Ersetzen Sie your_user im obigen Befehl durch Ihren Nicht-Root-Benutzer, den Sie als Voraussetzung für dieses Tutorial erstellt haben sollten .

Klonen Sie das neueste NodeBB-Repository in den Dokumentstammordner:

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Starten Sie das Setup-Skript, indem Sie die App mit setup ausführen Flagge. Beantworten Sie jede der Fragen:

./nodebb setup

Nachdem das NodeBB-Setup abgeschlossen ist, führen Sie ./nodebb start aus So starten Sie Ihren NodeBB-Server manuell:

./nodebb start

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie in Ihrem Webbrowser auf Ihr brandneues Forum zugreifen können:

Schritt 6:Führen Sie NodeBB als Systemdienst aus

Beim Start über ./nodebb start , NodeBB wird nicht automatisch neu gestartet, wenn das System neu gestartet wird. Um dies zu vermeiden, müssen wir NodeBB als Systemdienst einrichten.

Wenn es ausgeführt wird, stoppen Sie NodeBB:

./nodebb stop

Erstellen Sie einen neuen nodebb Benutzer:

sudo useradd nodebb

Ändern Sie den Besitz von /var/www/nodebb Verzeichnis nach nodebb Benutzer:

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

Erstellen Sie einen nodebb.service systemd-Unit-Konfigurationsdatei. Diese Unit-Datei behandelt den Start des NodeBB-Dämons. Führen Sie sudo vim /etc/systemd/system/nodebb.service aus und fügen Sie den folgenden Inhalt hinzu:

[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

HINWEIS: Legen Sie den Benutzernamen und die Verzeichnispfade gemäß Ihren gewählten Namen fest.

Aktivieren Sie nodebb.service beim Neustart und starten Sie sofort nodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Überprüfen Sie den nodebb.service Zustand:

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Herzliche Glückwünsche! Sie haben die NodeBB-Diskussionsplattform erfolgreich auf dem Ubuntu 18.04-System installiert und bereitgestellt. Sie sollten in der Lage sein, auf Ihr Forum auf Ihrer Domain zuzugreifen und mit Ihrem Forum zu interagieren.

Links

  • https://nodebb.org/
  • https://docs.nodebb.org/
  • https://github.com/NodeBB/NodeBB

Ubuntu
  1. So installieren Sie MongoDB unter Ubuntu 18.04

  2. So installieren Sie MongoDB unter Ubuntu 18.04

  3. So installieren Sie NodeBB unter Ubuntu 18.04

  4. So installieren Sie MongoDB auf Ubuntu 18.04

  5. So installieren Sie MongoDB unter Ubuntu 22.04

So installieren Sie Go unter Ubuntu 22.04 LTS

So installieren Sie MongoDB unter Ubuntu 14.04

So installieren Sie Go unter Ubuntu 18.04 LTS

So installieren Sie MongoDB auf Ubuntu 18.04 LTS

So installieren Sie Go unter Ubuntu 20.04 LTS

So installieren Sie MongoDB Compass unter Ubuntu 20.04 LTS