Jak nainstalovat fórum NodeBB na FreeBSD 12

NodeBB je software fóra založený na Node.js. Využívá webové zásuvky pro okamžité interakce a upozornění v reálném čase. Zdrojový kód NodeBB je veřejně hostován na Github . Tato příručka vás provede instalačním procesem NodeBB na čerstvé instanci FreeBSD 12 Vultr pomocí Node.js, MongoDB jako databáze, Nginx jako reverzní proxy a Acme.sh pro SSL certifikáty.

Požadavky

NodeBB vyžaduje instalaci následujícího softwaru:

  • Node.js verze 6.9.0 nebo vyšší
  • MongoDB verze 2.6 nebo vyšší
  • Nginx
  • Git
  • Minimálně 1024 MB RAM
  • Název domény s nastavenými záznamy A/AAAA

Než začnete

Zkontrolujte verzi FreeBSD.

uname -ro
# FreeBSD 12.0-RELEASE

Ujistěte se, že váš systém FreeBSD je aktuální.

freebsd-update fetch install
pkg update && pkg upgrade -y

Nainstalujte potřebné balíčky, pokud ve vašem systému nejsou.

pkg install -y sudo vim unzip wget git bash socat gcc8 pkgconf vips

Vytvořte si nový uživatelský účet s preferovaným uživatelským jménem (použijeme johndoe).

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Spusťte visudopříkaz a odkomentujte %wheel ALL=(ALL) ALLřádek, aby členové wheelskupiny mohli provést jakýkoli příkaz.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Nyní přepněte na nově vytvořeného uživatele pomocí su.

su - johndoe

POZNÁMKA: Nahraďte johndoesvým uživatelským jménem.

Nastavte časové pásmo.

sudo tzsetup

Nainstalujte Node.js

NodeBB je řízen Node.js, a proto je třeba jej nainstalovat. Doporučuje se instalace aktuální LTS verze Node.js.

Nainstalujte Node.js a npm.

sudo pkg install -y node10 npm-node10

Zkontrolujte verze.

node -v && npm -v
# v10.15.3
# 6.9.0

Nainstalujte a nakonfigurujte MongoDB

MongoDB je výchozí databáze pro NodeBB.

Nainstalujte MongoDB.

sudo pkg install -y mongodb40

Zkontrolujte verzi.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.6
# db version v4.0.6

Povolte a spusťte MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Vytvořte databázi a uživatele pro NodeBB.

Nejprve se připojte k MongoDB.

mongo

Přepněte do vestavěné admindatabá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>svý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 nodebbuživatele 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>svým vlastním vybraným heslem.

Opusťte Mongo shell.

> quit()

Restartujte MongoDB a zajistěte, aby se mohl připojit dříve vytvořený administrátor.

sudo service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin

Nainstalujte a nakonfigurujte Nginx

Nainstalujte Nginx.

sudo pkg install -y nginx

Zkontrolujte verzi.

nginx -v
# nginx version: nginx/1.14.2

Povolte a spusťte Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

NodeBB standardně běží na portu 4567. Abychom se vyhnuli psaní http://example.com:4567, nakonfigurujeme Nginx jako reverzní proxy pro aplikaci NodeBB. Každý požadavek na port 80nebo 443, pokud se používá SSL, bude předán na port 4567.

Spusťte sudo vim /usr/local/etc/nginx/nodebb.confa naplňte jej základní konfigurací reverzního proxy níže.

server {

  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  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_hide_header X-Powered-By;
    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";
  }

}

Ve výše uvedené konfiguraci aktualizujte server_namedirektivu svou doménou/ názvem hostitele.

Uložte soubor a ukončete s :+ W+ Q.

Nyní musíme zahrnout nodebb.confdo hlavního nginx.confsouboru.

Spusťte sudo vim /usr/local/etc/nginx/nginx.confa přidejte do http {}bloku následující řádek .

include nodebb.conf;

Zkontrolujte konfiguraci.

sudo nginx -t

Znovu načtěte Nginx.

sudo service nginx reload

Nainstalujte klienta Acme.sh a získejte certifikát Let's Encrypt (volitelné)

Zabezpečení fóra pomocí HTTPS není nutné, ale zajistí provoz vašeho webu. Acme.sh je čistě unixový shell software pro získávání SSL certifikátů od Let's Encrypt s nulovými závislostmi.

Stáhněte a nainstalujte Acme.sh.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~

Zkontrolujte verzi.

/etc/letsencrypt/acme.sh --version
# v2.8.1

Získejte certifikáty RSA a ECDSA pro forum.example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload" --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload"  --keylength ec-256

Po spuštění výše uvedených příkazů budou vaše certifikáty a klíče v:

  • RSA: /etc/letsencrypt/forum.example.com.
  • ECC/ECDSA: /etc/letsencrypt/forum.example.com_ecc.

Po získání certifikátů z Let's Encrypt musíme nakonfigurovat Nginx, aby je používal.

Spusťte sudo vim /usr/local/etc/nginx/nodebb.confznovu a nakonfigurujte Nginx jako HTTPS reverzní proxy.

server {

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

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

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

}

Zkontrolujte konfiguraci.

sudo nginx -t

Znovu načtěte Nginx.

sudo service nginx reload

Nainstalujte NodeBB

Vytvořte kořenový adresář dokumentu.

sudo mkdir -p /usr/local/www/nodebb

Změnit vlastnictví /usr/local/www/nodebbadresáře na johndoe.

sudo chown -R johndoe:johndoe /usr/local/www/nodebb

Přejděte do kořenové složky dokumentu.

cd /usr/local/www/nodebb

Naklonujte nejnovější NodeBB do kořenové složky dokumentu.

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

Spusťte instalační příkaz NodeBB a po zobrazení výzvy odpovězte na každou otázku.

./nodebb setup

Po dokončení nastavení NodeBB spusťte ./nodebb startručně svůj server NodeBB.

./nodebb start

Po tomto příkazu budete mít přístup k instanci fóra NodeBB ve webovém prohlížeči.

Spusťte NodeBB s PM2

Při ./nodebb startspuštění přes , NodeBB se automaticky znovu 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

Nainstalujte PM2 globálně.

sudo npm install pm2 -g

Zkontrolujte verzi.

pm2 -v
# 3.5.0

Přejděte do kořenového adresáře dokumentu NodeBB.

cd /usr/local/www/nodebb

Spusťte NodeBB přes PM2.

pm2 start app.js

Vyjmenujte proces NodeBB.

pm2 ls

Zjistěte dostupný init systém.

pm2 startup

Zkopírujte a vložte výstup tohoto příkazu do CLI, abyste nastavili spouštěcí hák.

Uložte si seznam procesů.

pm2 save

A je to. Vaše instance NodeBB je nyní v provozu.

Zanechat komentář

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více