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 dieser Anleitung führen wir Sie Schritt für Schritt durch den Installationsprozess von NodeBB auf dem Betriebssystem CentOS 7.
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
Voraussetzungen
- Ein Server mit CentOS 7 x86_64 (64-Bit)-System mit mindestens 1 GB oder RAM
- Domainname mit
A
/AAAA
Rekorde aufgestellt - Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
Erste Schritte
Prüfen Sie die CentOS-Version:
cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)
Richten Sie die Zeitzone ein:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aktualisieren Sie Ihre Betriebssystempakete (Software):
sudo yum update -y
Installieren Sie die erforderlichen Pakete, um diese Anleitung abzuschließen:
sudo yum install -y curl wget vim bash-completion git socat epel-release
Deaktivieren Sie der Einfachheit halber SELinux und Firewall:
sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service
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 --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs
Um native Add-Ons von npm zu kompilieren und zu installieren, müssen Sie möglicherweise auch Build-Tools installieren:
sudo yum install -y gcc-c++ make
# or
# sudo yum groupinstall -y 'Development Tools'
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
# v8.12.0
# 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.
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:
Erstellen Sie ein /etc/yum.repos.d/mongodb-org-4.0.repo
Datei, sodass Sie MongoDB direkt mit yum
installieren können :
sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
Füllen Sie die Datei mit folgendem Inhalt:
[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Geben Sie den folgenden Befehl ein, um die neueste stabile Version des MongoDB-Pakets zu installieren:
sudo yum install -y mongodb-org
Überprüfen Sie die MongoDB-Version:
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.2
# db version v4.0.2
Starten und aktivieren (festlegen, dass es beim Neustart gestartet wird ) MongoDB-Dienst:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Überprüfen Sie den Status des MongoDB-Datenbankservers, indem Sie Folgendes ausführen:
sudo systemctl status mongod.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 mongod.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 den Acme.sh-Client und erhalten Sie ein Let's Encrypt-Zertifikat (optional )
Das Sichern Ihres NodeBB-Forums mit HTTPS ist nicht erforderlich, aber es ist eine bewährte Methode, den Datenverkehr Ihrer Website zu sichern. Um ein SSL-Zertifikat von Let's Encrypt zu erhalten, verwenden wir den Acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Abrufen von SSL-Zertifikaten von Let's Encrypt ohne Abhängigkeiten.
Laden Sie Acme.sh herunter und installieren Sie es:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Überprüfen Sie die Acme.sh-Version:
/etc/letsencrypt/acme.sh --version
# v2.8.0
Fordern Sie RSA an und ECC/ECDSA Zertifikate für Ihre Domain/Ihren Hostnamen:
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength ec-256
Nachdem Sie die obigen Befehle ausgeführt haben, werden Ihre Zertifikate und Schlüssel wird sein in:
- Für RSA :
/etc/letsencrypt/forum.example.com
Verzeichnis. - Für ECC/ECDSA :
/etc/letsencrypt/forum.example.com_ecc
Verzeichnis.
Schritt 4:Nginx installieren und konfigurieren
NodeBB kann mit vielen Webservern gut funktionieren. In diesem Tutorial haben wir Nginx ausgewählt.
Laden Sie zuerst den Nginx-Repository-PGP-Schlüssel herunter und importieren Sie ihn:
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
Nachdem Sie den Schlüssel importiert haben, können Sie ihn sicher von der Festplatte entfernen:
rm nginx_signing.key
Erstellen Sie ein /etc/yum.repos.d/nginx_mainline.repo
Datei, sodass Sie Nginx direkt mit yum
installieren können :
sudo vim /etc/yum.repos.d/nginx_mainline.repo
Füllen Sie die Datei mit folgendem Inhalt:
[nginx] name=nginx repo baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=1 enabled=1
Um schließlich die neueste Hauptversion des Nginx-Pakets zu installieren, geben Sie den folgenden Befehl ein:
sudo yum install -y nginx
Nach der Installation können Sie die Nginx-Version überprüfen, indem Sie Folgendes ausführen:
nginx -v
# 1.15.3
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 wird standardmäßig auf Port 4567
ausgeführt . 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 forum.example.com;
client_max_body_size 50M;
# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.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.10.x https://github.com/NodeBB/NodeBB.git .
Starten Sie das Setup-Skript, indem Sie die App mit dem setup
ausführen Flagge:
./nodebb setup
Nachdem die Einrichtung von NodeBB 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 Eigentümer von /var/www/nodebb
Verzeichnis zu nodebb
Benutzer:
sudo chown -R nodebb:nodebb /var/www/nodebb
Erstellen Sie 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 CentOS 7-Server installiert und bereitgestellt.
Links
- https://nodebb.org/
- https://docs.nodebb.org/