NodeBB je software fóra založený na Node.js vytvořený pro moderní web. Je postaven na databázi MongoDB nebo Redis. Využívá webové zásuvky pro okamžité interakce a upozornění v reálném čase. NodeBB má mnoho moderních funkcí, jako je integrace sociálních sítí a streamování diskusí. Další funkce jsou povoleny pomocí zásuvných modulů třetích stran. NodeBB je open source projekt, který lze nalézt na Github. V této příručce vás krok za krokem provedeme instalačním procesem NodeBBB na operačním systému Debian 9 pomocí Nginx jako reverzního proxy, MongoDB jako databáze a acme.sh a Let's Encrypt for HTTPS.
Požadavky
NodeBB vyžaduje, aby byl nainstalován následující software:
- Node.js verze 6 nebo větší
- MongoDB verze 2.6 nebo vyšší nebo Redis verze 2.8.9 nebo větší
- Verze Nginx 1.3.13 nebo větší
- Git
POZNÁMKA : Instalace závislostí NodeBB může vyžadovat více než 512 megabajtů systémové paměti. Doporučuje se povolit odkládací oddíl, aby se kompenzovalo, pokud váš systém Linux nemá dostatek paměti.
Předpoklady
- Spuštěný systém Debian 9 s alespoň 1 GB paměti RAM.
- Název domény s
A
/AAAA
záznamy nastaveny. - Uživatel bez oprávnění root s právy sudo.
Počáteční kroky
Zkontrolujte svou verzi Debianu:
lsb_release -ds
Nastavte časové pásmo:
sudo dpkg-reconfigure tzdata
Aktualizujte balíčky operačního systému (software). Toto je důležitý první krok, protože zajišťuje, že máte nejnovější aktualizace a opravy zabezpečení pro výchozí softwarové balíčky vašeho operačního systému:
sudo apt update && sudo apt upgrade -y
Nainstalujte některé základní balíčky, které jsou nezbytné pro základní správu operačního systému Debian:
sudo apt install -y curl wget vim git unzip sudo socat bash-completion apt-transport-https
Krok 1:Instalace Node.js a npm
NodeBB je postaven na Node.js. Chystáme se nainstalovat doporučenou verzi pro NodeBB, což je verze 8 v době psaní tohoto článku. V Linuxu máte několik možností instalace Node.js:Linuxové binární soubory (x86/x64), zdrojový kód nebo prostřednictvím Správce balíčků. Použijeme možnost Package Management, díky které je instalace a aktualizace Node.js hračkou.
Stáhněte si a nainstalujte nejnovější vydání Long-Term Support (LTS) Node.js z repozitáře NodeSource:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
Chcete-li zkompilovat a nainstalovat nativní doplňky z npm, možná budete muset nainstalovat nástroje pro sestavení:
sudo apt install -y build-essential
POZNÁMKA :npm je distribuován s Node.js – což znamená, že když si stáhnete Node.js, automaticky se vám do systému nainstaluje npm.
Zkontrolujte verze Node.js a npm:
node -v && npm -v
# v10.15.1
# 6.4.1
Npm je samostatný projekt od Node.js a má tendenci se aktualizovat častěji. V důsledku toho, i když jste si právě stáhli Node.js (a tedy npm), budete pravděpodobně muset aktualizovat svůj npm. Naštěstí npm ví, jak se aktualizovat! Chcete-li aktualizovat své npm, zadejte toto do terminálu:
sudo npm install -g [email protected]
Tento příkaz aktualizuje npm na nejnovější stabilní verzi.
Znovu zkontrolujte verzi npm pomocí:
npm -v
# 6.7.0
A měl by vrátit čísla nejnovější verze.
Krok 2:Instalace a konfigurace MongoDB
NodeBB potřebuje databázi k ukládání svých dat a podporuje MongoDB a Redis. V tomto tutoriálu jsme jako modul úložiště dat vybrali MongoDB. V několika následujících krocích tedy stáhneme a nainstalujeme databázi MongoDB z oficiálního úložiště MongoDB rpm:
Chcete-li nainstalovat stabilní verzi balíčku MongoDB z oficiálního úložiště MongoDB, zadejte následující příkaz:
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
Zkontrolujte verzi MongoDB:
mongo --version | head -n 1 && mongod --version | head -n 1
Spustit a povolit (nastavit spuštění při restartu ) Služba MongoDB:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Zkontrolujte stav databázového serveru MongoDB spuštěním:
sudo systemctl status mongod.service
# active (running)
Dále vytvořte databázi MongoDB a uživatele pro NodeBB.
Nejprve se připojte k serveru MongoDB.
mongo
Přepněte na vestavěného admin
databáze.
> use admin
Vytvořte administrátora.
> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
POZNÁMKA: Nahraďte zástupný symbol <Enter a secure password>
s vaším vlastním vybraným heslem.
Přidejte novou databázi s názvem nodebb
.
> use nodebb
Databáze se vytvoří a kontext se přepne na nodebb
. Dále vytvořte nodebb
uživatel s příslušnými oprávněními.
> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
POZNÁMKA: Znovu nahraďte zástupný symbol <Enter a secure password>
s vaším vlastním vybraným heslem.
Opusťte Mongo shell.
> quit()
Restartujte MongoDB a ověřte, že se může připojit dříve vytvořený administrátor.
sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin
Pokud vše proběhlo v pořádku, váš MongoDB by měl být nainstalován a připraven pro NodeBB. V dalším kroku se budeme zabývat instalací a konfigurací webového serveru.
Krok 3 – Nainstalujte klienta acme.sh a získejte certifikát Lets Encrypt
Tento krok je volitelný. Zabezpečení fóra NodeBB pomocí protokolu HTTPS není nutné, ale je to dobrý postup pro zabezpečení provozu na webu. K získání certifikátu TLS od Let's Encrypt použijeme klienta acme.sh. Acme.sh je čistě unixový shell software pro získávání certifikátů TLS z Let's Encrypt s nulovými závislostmi.
Stáhněte a nainstalujte acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
Zkontrolujte verzi acme.sh:
acme.sh --version
# v2.8.0
Získejte RSA a ECC/ECDSA certifikáty pro vaši doménu/název hostitele:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Pokud chcete falešné certifikáty pro testování, můžete přidat --staging
příznak k výše uvedeným příkazům.
Po spuštění výše uvedených příkazů budou vaše certifikáty a klíče bude v:
- Pro RSA :
/home/username/example.com
adresář. - Pro ECC/ECDSA :
/home/username/example.com_ecc
adresář.
Chcete-li uvést své vydané certifikáty, můžete spustit:
acme.sh --list
Vytvořte adresář pro ukládání vašich certifikátů. Použijeme /etc/letsencrypt
adresář.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Nainstalujte/zkopírujte certifikáty do adresáře /etc/letsencrypt.
# 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"
Všechny certifikáty budou automaticky obnovovány každých 60 dní.
Po získání certifikátů ukončete uživatele root a vraťte se zpět k normálnímu uživateli sudo:
exit
Krok 4:Instalace a konfigurace Nginx
NodeBB může dobře fungovat s mnoha webovými servery. V tomto tutoriálu jsme vybrali Nginx.
Nainstalujte balíček Nginx zadáním následujícího příkazu:
sudo apt install -y nginx
Po instalaci můžete verzi Nginx ověřit spuštěním:
nginx -v
Spustit a povolit (nastavit spuštění při restartu ) Služba Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Zkontrolujte stav webového serveru Nginx spuštěním:
sudo systemctl status nginx.service
# active (running)
NodeBB standardně běží na portu 4567
. Chcete-li se vyhnout psaní http://example.com:4567
, nakonfigurujeme Nginx jako reverzní proxy pro aplikaci NodeBB. Každý požadavek na portu 80
nebo 443
(Pokud se používá SSL ) bude přesměrován na port 4567
.
Spusťte sudo vim /etc/nginx/conf.d/nodebb.conf
a nakonfigurujte Nginx jako HTTPS reverzní 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";
}
}
Zkontrolujte konfiguraci Nginx:
sudo nginx -t
Nakonec, aby se změny projevily, musíme znovu načíst Nginx:
sudo systemctl reload nginx.service
Krok 5:Instalace a nastavení NodeBB
Vytvořte kořenový adresář dokumentu, kde by měl být NodeBB umístěn:
sudo mkdir -p /var/www/nodebb
Přejděte do kořenového adresáře dokumentu:
cd /var/www/nodebb
Změňte vlastnictví /var/www/nodebb
do adresáře vašeho_uživatele.
sudo chown -R [your_user]:[your_user] /var/www/nodebb
POZNÁMKA: Nahraďte your_user ve výše uvedeném příkazu svým uživatelem bez oprávnění root, kterého byste měli vytvořit jako předpoklad pro tento výukový program .
Naklonujte nejnovější úložiště NodeBB do kořenové složky dokumentu:
git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .
Spusťte instalační skript spuštěním aplikace s setup
vlajka. Odpovězte na každou z otázek:
./nodebb setup
Po dokončení nastavení NodeBB spusťte ./nodebb start
pro ruční spuštění serveru NodeBB:
./nodebb start
Po spuštění tohoto příkazu byste měli mít přístup ke svému zbrusu novému fóru ve vašem webovém prohlížeči:
Krok 6:Spusťte NodeBB jako systémovou službu
Při spuštění přes ./nodebb start
, NodeBB se znovu automaticky nespustí, když se systém restartuje. Abychom tomu zabránili, budeme muset nastavit NodeBB jako systémovou službu.
Pokud běží, zastavte NodeBB:
./nodebb stop
Vytvořte nový nodebb
uživatel:
sudo useradd nodebb
Změňte vlastnictví /var/www/nodebb
adresář do nodebb
uživatel:
sudo chown -R nodebb:nodebb /var/www/nodebb
Vytvořte nodebb.service
konfigurační soubor jednotky systemd. Tento soubor jednotky se postará o spuštění démona NodeBB. Spusťte sudo vim /etc/systemd/system/nodebb.service
a přidejte obsah níže:
[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
POZNÁMKA: Nastavte uživatelské jméno a cesty k adresáři podle vámi zvolených jmen.
Povolit nodebb.service
při restartu a okamžitě spusťte nodebb.service:
sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service
Zkontrolujte nodebb.service
stav:
sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service
Gratulujeme! Úspěšně jste nainstalovali a nasadili diskusní platformu NodeBB v systému Debian 9. Měli byste mít přístup k vašemu fóru na vaší doméně a komunikovat s vaším fórem.
Odkazy
- https://nodebb.org/
- https://docs.nodebb.org/
- https://github.com/NodeBB/NodeBB