Wie man das NodeBBB-Forum auf Debian 9 installiert
NodeBBB ist eine auf Node.js basierende Forensoftware für das moderne Web, die entweder auf einer MongoDB- oder Redis-Datenbank basiert und Web-Sockets für sofortige Interaktionen und Echtzeit-Benachrichtigungen nutzt. NodeBBB ist ein Open-Source-Projekt, das auf Github zu finden ist und Sie Schritt für Schritt durch den NodeBBBB-Installationsprozess auf dem Debian 9-Betriebssystem mit Nginx als Reverse-Proxy, MongoDB als Datenbank und acme.sh und Let’s Encrypt für HTTPS führt.
Anforderungen
NodeBBB 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 NodeBBB kann mehr als 512 Megabyte Systemspeicher erfordern. Es wird empfohlen, eine Swap-Partition zu aktivieren, um einen Ausgleich zu schaffen, wenn Ihr Linux-System nicht genügend Speicherplatz hat.
Voraussetzungen
- Ein lauffähiges Debian 9-System mit mindestens 1 GB RAM.
- Domainname mit eingerichteten
A
/AAAA
Datensätzen. - Ein Nicht-Root-Benutzer mit sudo-Rechten.
Erste Schritte
Überprüfen Sie Ihre Debian-Version:
lsb_release -ds
Richten Sie die Zeitzone ein:
sudo dpkg-reconfigure tzdata
Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, denn es stellt sicher, dass Sie die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems erhalten:
sudo apt update && sudo apt upgrade -y
Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Debian-Betriebssystems notwendig sind:
sudo apt install -y curl wget vim git unzip sudo socat bash-completion apt-transport-https
Schritt 1: Installieren Sie Node.js und npm.
NodeBBB basiert auf Node.js. Wir werden die empfohlene Version für NodeBB installieren, die zum Zeitpunkt dieses Schreibens Version 8 ist. Unter Linux haben Sie einige Installationsoptionen für Node.js: Linux Binaries (x86/x64), Quellcode oder über Paketmanager. Wir werden die Option Paketmanagement verwenden, die die Installation und Aktualisierung von Node.js zum Kinderspiel macht.
Laden Sie die neueste LTS-Version (Long-Term Support) von Node.js aus dem NodeSource Repo 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 aus npm zu kompilieren und zu installieren, müssen Sie möglicherweise auch Build-Tools installieren:
sudo apt install -y build-essential
HINWEISnpm wird mit Node.js verteilt – das bedeutet, dass Sie beim Herunterladen von Node.js automatisch npm auf Ihrem System installiert bekommen.
Überprüfen Sie die Node.js und npm. Versionen:
node -v && npm -v
# v10.15.1
# 6.4.1
Npm ist ein von Node.js getrenntes Projekt und neigt dazu, häufiger zu aktualisieren. Daher müssen Sie, auch wenn Sie gerade Node.js (und damit npm) heruntergeladen haben, wahrscheinlich Ihre npm aktualisieren. Zum Glück weiß npm, wie man sich selbst aktualisiert! Um Ihre npm zu aktualisieren, geben Sie diese 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: Installation und Konfiguration von MongoDB
NodeBBB benötigt eine Datenbank, um seine Daten zu speichern, und unterstützt MongoDB und Redis. In diesem Tutorial haben wir MongoDB als Datenspeicher-Engine gewä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 aus dem offiziellen MongoDB-Repository zu installieren, geben Sie den folgenden Befehl ein:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org
Überprüfen Sie die MongoDB-Version:
mongo --version | head -n 1 && mongod --version | head -n 1
Starten und aktivieren (beim Neustart starten) Sie den MongoDB-Dienst:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Überprüfen Sie den Status des MongoDB Datenbankservers, indem Sie ihn ausführen:
sudo systemctl status mongod.service
# active (running)
Als nächstes erstellen Sie eine MongoDB-Datenbank und einen Benutzer für NodeBBB.
Verbinden Sie sich zuerst mit dem MongoDB-Server.
mongo
Wechseln Sie zur 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>
durch ein selbst gewähltes Passwort.
Fügen Sie eine neue Datenbank namens nodebb
. hinzu.
> use nodebb
Die Datenbank wird erstellt und der Kontext wird aufnodebb
…. Als nächstes erstellen Sie 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 den Platzhalter <Enter a secure password>
wieder durch Ihr selbst gewähltes Passwort.
Verlasse die Mongo-Muschel.
> quit()
Starten Sie MongoDB neu und vergewissern Sie sich, dass der zuvor erstellte administrative Benutzer eine Verbindung herstellen kann.
sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin
Wenn alles gut gelaufen ist, sollte Ihre MongoDB installiert und für NodeBBB vorbereitet sein. Im nächsten Schritt werden wir uns mit der Installation und Konfiguration von Webservern befassen.
Schritt 3 – Installieren Sie den acme.sh-Client und erhalten Sie das Zertifikat Lets Encrypt.
Dieser Schritt ist optional. Die Sicherung Ihres NodeBBB-Forums mit HTTPS ist nicht notwendig, aber es ist eine gute Vorgehensweise, um den Traffic Ihrer Website zu sichern. Um das TLS-Zertifikat von Let’s Encrypt zu erhalten, verwenden wir den acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Erhalten 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 Version von acme.sh:
acme.sh --version
# v2.8.0
Besorgen Sie sich RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostname:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Wenn Sie gefälschte Zertifikate zum Testen benötigen, können Sie diese hinzufügen. --staging
Flagge zu den obigen Befehlen.
Nachdem Sie die obigen Befehle ausgeführt haben, sind Ihre Zertifikate und Schlüssel 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 diese ausführen:
acme.sh --list
Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir werden das/etc/letsencrypt
Verzeichnis verwenden.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Zertifikate installieren/kopieren nach/etc/letsencryptVerzeichnis.
# 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 automatisch alle 60 Tage erneuert.
Nach Erhalt der Zertifikate verlassen Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:
exit
Schritt 4: Installation und Konfiguration von Nginx
NodeBBB kann mit vielen Webservern gut funktionieren. In diesem Tutorial haben wir Nginx ausgewählt.
Installieren Sie das Nginx-Paket, indem Sie den folgenden Befehl ausführen:
sudo apt install -y nginx
Nach der Installation können Sie die Nginx-Version durch Ausführen überprüfen:
nginx -v
Starten und aktivieren (beim Neustart starten) Sie den Nginx-Dienst:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Überprüfen Sie den Status des Nginx-Webservers, indem Sie ihn ausführen:
sudo systemctl status nginx.service
# active (running)
NodeBBB läuft standardmäßig auf dem Port 4567
. Um das Tippen zu vermeiden http://example.com:4567
werden wir Nginx als Reverse-Proxy für die NodeBBB-Anwendung konfigurieren. Jede Anfrage am Hafen 80
oder 443
(wenn SSL verwendet wird) wird an den Hafen weitergeleitet. 4567
.
Laufen sudo vim /etc/nginx/conf.d/nodebb.conf
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 schließlich Nginx neu laden:
sudo systemctl reload nginx.service
Schritt 5: Installation und Einrichtung von NodeBBB
Erstellen Sie ein Dokumenten-Stammverzeichnis, in dem sich NodeBBB befinden soll:
sudo mkdir -p /var/www/nodebb
Navigieren Sie zum Stammverzeichnis des Dokuments:
cd /var/www/nodebb
Wechseln Sie den Eigentümer des /var/www/nodebb
Verzeichnis zu Ihrem_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 angelegt haben sollten..
Klonen Sie das neueste NodeBBB-Repository in den Dokumentenstammordner:
git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .
Starten Sie das Setup-Skript, indem Sie die App mit der Option setup
Flagge. Beantworten Sie jede der Fragen:
./nodebb setup
Nachdem das NodeBBB-Setup abgeschlossen ist, starten Sie ./nodebb start
Ihren NodeBBB-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: NodeBBB als Systemdienst ausführen
Wenn NodeBBB über ./nodebb start
gestartet wird, wird es nicht automatisch beim Neustart des Systems neu gestartet. Um das zu vermeiden, müssen wir NodeBBB als Systemdienst einrichten.
Wenn es läuft, stoppen Sie NodeBBB:
./nodebb stop
Legen Sie einen neuen nodebb
Benutzer an:
sudo useradd nodebb
Ändern Sie den Besitzer des /var/www/nodebb
Verzeichnisses auf nodebb
Benutzer:
sudo chown -R nodebb:nodebb /var/www/nodebb
Erstellen Sie eine Konfigurationsdatei für die nodebb.service
Systemeinheit. Diese Unit-Datei übernimmt den Start des NodeBBB-Daemons. Führen sudo vim /etc/systemd/system/nodebb.service
Sie 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 entsprechend den von Ihnen gewählten Namen fest.
Beim Neustart aktivieren nodebb.service
und sofort starten nodebb.service:
sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service
Überprüfen Sie den nodebb.service
Status:
sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service
Herzlichen Glückwunsch! Sie haben die NodeBBB-Diskussionsplattform auf dem Debian 9-System erfolgreich installiert und eingesetzt und sollten in der Lage sein, auf Ihr Forum auf Ihrer Domain zuzugreifen und mit Ihrem Forum zu interagieren.