GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat fórum NodeBB na Ubuntu 18.04 LTS

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 NodeBB na operačním systému Ubuntu 18.04 LTS 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 Ubuntu 18.04 s alespoň 1 GB nebo 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 Ubuntu:

lsb_release -ds
# Ubuntu 18.04.1 LTS

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 Ubuntu:

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

Krok 1:Instalace Node.js a npm

NodeBB je postaven na Node.js. Chystáme se nainstalovat doporučeno verze 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 častěji aktualizovat. 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, zadejte následující příkaz:

sudo apt install -y mongodb

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 mongodb.service
sudo systemctl enable mongodb.service

Zkontrolujte stav databázového serveru MongoDB spuštěním:

sudo systemctl status mongodb.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 acme.sh klienta a získejte certifikát Let's Encrypt (volitelné )

Zabezpečení fóra NodeBB pomocí HTTPS není nutné, ale je to dobrý postup, jak zabezpečit návštěvnost 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 flage k výše uvedeným příkazům.

Po spuštění výše uvedených příkazů budou vaše certifikátyklíč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 Ubuntu 18.04. 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

Ubuntu
  1. Jak nainstalovat MongoDB na Ubuntu 18.04

  2. Jak nainstalovat MongoDB na Ubuntu 18.04

  3. Jak nainstalovat MongoDB na Ubuntu 22.04

  1. Jak nainstalovat MongoDB na Ubuntu 18.04

  2. Jak nainstalovat MongoDB na Ubuntu 20.04

  3. Jak nainstalovat NodeBB na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu 16.04 LTS

  2. Jak nainstalovat fórum XMB na Ubuntu 16.04 LTS

  3. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu 18.04 LTS