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 [email protected]
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.


Jak nainstalovat Tiny Tiny RSS Reader na FreeBSD 11 FAMP VPS

Jak nainstalovat Tiny Tiny RSS Reader na FreeBSD 11 FAMP VPS

Používáte jiný systém? Tiny Tiny RSS Reader je bezplatný a otevřený zdroj s vlastním hostitelem webového zdroje zpráv (RSS/Atom) a agregátorem určeným pro

Jak nainstalovat Wiki.js na FreeBSD 11

Jak nainstalovat Wiki.js na FreeBSD 11

Používáte jiný systém? Wiki.js je bezplatná a open source, moderní wiki aplikace postavená na Node.js, MongoDB, Git a Markdown. Zdrojový kód Wiki.js je veřejný

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Pagekit 1.0 CMS je krásný, modulární, rozšiřitelný a lehký, bezplatný a open source systém správy obsahu (CMS) s

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, open source podnikový systém správy obsahu (CMS) napsaný v PHP. To i

Nastavení OpenBSD 5.5 64-bit

Nastavení OpenBSD 5.5 64-bit

Tento článek vás provede nastavením OpenBSD 5.5 (64-bit) na KVM pomocí Vultr VPS. Krok 1. Přihlaste se do ovládacího panelu Vultr. Krok 2. Klikněte na DEPLOY

Jak nainstalovat osTicket na FreeBSD 12

Jak nainstalovat osTicket na FreeBSD 12

Používáte jiný systém? osTicket je open-source systém pro podporu zákazníků. Zdrojový kód osTicket je veřejně hostován na Github. V tomto tutoriálu

Jak nainstalovat Flarum Forum na FreeBSD 12

Jak nainstalovat Flarum Forum na FreeBSD 12

Používáte jiný systém? Flarum je bezplatný a open source software fóra nové generace, díky kterému je online diskuze zábavná. Zdrojový kód Flarum je hostován o

Jak povolit TLS 1.3 v Nginx na FreeBSD 12

Jak povolit TLS 1.3 v Nginx na FreeBSD 12

Používáte jiný systém? TLS 1.3 je verze protokolu Transport Layer Security (TLS), který byl publikován v roce 2018 jako navrhovaný standard v RFC 8446.

Nainstalujte WordPress na OpenBSD 6.2

Nainstalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantním redakčním systémem na internetu. Pohání vše od blogů po složité webové stránky s dynamickým obsahem

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Subrion 4.1 CMS je výkonný a flexibilní open source systém správy obsahu (CMS), který přináší intuitivní a jasný obsah

Jak nakonfigurovat DJBDNS na FreeBSD

Jak nakonfigurovat DJBDNS na FreeBSD

Tento tutoriál vám ukáže, jak nakonfigurovat službu DNS, která se snadno udržuje, snadno konfiguruje a je obecně bezpečnější než klasický BIN.

Jak nainstalovat zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Jak nainstalovat zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Zásobník FEMP, který je srovnatelný se zásobníkem LEMP na Linuxu, je kolekce softwaru s otevřeným zdrojovým kódem, který se obvykle instaluje společně, aby umožnil FreeBS.

Instalace MongoDB na FreeBSD 10

Instalace MongoDB na FreeBSD 10

MongoDB je prvotřídní NoSQL databáze, která se často používá v novějších webových aplikacích. Poskytuje vysoce výkonné dotazy, sdílení a replikaci

Jak nainstalovat Monicu na FreeBSD 12

Jak nainstalovat Monicu na FreeBSD 12

Používáte jiný systém? Monica je open source systém pro řízení osobních vztahů. Představte si to jako CRM (oblíbený nástroj používaný prodejními týmy v tis

OpenBSD jako řešení elektronického obchodu s PrestaShop a Apache

OpenBSD jako řešení elektronického obchodu s PrestaShop a Apache

Úvod Tento tutoriál ukazuje OpenBSD jako řešení pro e-commerce využívající PrestaShop a Apache. Apache je vyžadován, protože PrestaShop má složité UR

Instalace Fork CMS na FreeBSD 12

Instalace Fork CMS na FreeBSD 12

Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM

Jak nainstalovat Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Directus 6.4 CMS je výkonný a flexibilní, bezplatný a open source systém pro správu obsahu bez hlavy (CMS), který poskytuje vývojářům

Vylepšení zabezpečení pro FreeBSD pomocí IPFW a SSHGuard

Vylepšení zabezpečení pro FreeBSD pomocí IPFW a SSHGuard

VPS servery jsou často cílem útočníků. Běžný typ útoku se objevuje v systémových protokolech jako stovky neoprávněných pokusů o přihlášení přes ssh. Nastavení

Nastavení httpd v OpenBSD

Nastavení httpd v OpenBSD

Úvod OpenBSD 5.6 představilo nového démona s názvem httpd, který podporuje CGI (přes FastCGI) a TLS. K instalaci nového http není potřeba žádná další práce

Nastavte iRedMail na FreeBSD 10

Nastavte iRedMail na FreeBSD 10

Tento tutoriál vám ukáže, jak nainstalovat groupwarový iRedMail na čerstvou instalaci FreeBSD 10. Měli byste použít server s alespoň jedním gigabajtem o

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.

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.

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.

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