Ako nainštalovať fórum NodeBB na FreeBSD 12

NodeBB je softvér fóra založený na Node.js. Využíva webové zásuvky na okamžité interakcie a upozornenia v reálnom čase. Zdrojový kód NodeBB je verejne hosťovaný na Github . Táto príručka vás prevedie procesom inštalácie NodeBB na novej inštancii FreeBSD 12 Vultr pomocou Node.js, MongoDB ako databázy, Nginx ako reverzného proxy a Acme.sh pre SSL certifikáty.

Požiadavky

NodeBB vyžaduje, aby bol nainštalovaný nasledujúci softvér:

  • Node.js verzie 6.9.0 alebo vyššej
  • MongoDB verzia 2.6 alebo vyššia
  • Nginx
  • Git
  • Minimálne 1024 MB RAM
  • Názov domény s nastavenými záznamami A/AAAA

Predtým ako začneš

Skontrolujte verziu FreeBSD.

uname -ro
# FreeBSD 12.0-RELEASE

Uistite sa, že váš systém FreeBSD je aktuálny.

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

Nainštalujte potrebné balíky, ak sa nenachádzajú vo vašom systéme.

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

Vytvorte si nový používateľský účet s preferovaným používateľským menom (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!

Spustite visudopríkaz a odkomentujte %wheel ALL=(ALL) ALLriadok, aby členovia wheelskupiny mohli vykonať ľubovoľný príkaz.

visudo

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

Teraz prejdite na svojho novo vytvoreného používateľa pomocou su.

su - johndoe

POZNÁMKA: Nahraďte johndoesvojim užívateľským menom.

Nastavte časové pásmo.

sudo tzsetup

Nainštalujte Node.js

NodeBB je riadený Node.js, a preto je potrebné ho nainštalovať. Odporúča sa inštalácia aktuálnej verzie LTS Node.js.

Nainštalujte Node.js a npm.

sudo pkg install -y node10 npm-node10

Skontrolujte verzie.

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

Nainštalujte a nakonfigurujte MongoDB

MongoDB je predvolená databáza pre NodeBB.

Nainštalujte MongoDB.

sudo pkg install -y mongodb40

Skontrolujte verziu.

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

Povoliť a spustiť MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Vytvorte databázu a používateľa pre NodeBB.

Najprv sa pripojte k MongoDB.

mongo

Prepnite na vstavanú admindatabázu.

> use admin

Vytvorte 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>vlastným vybratým heslom.

Pridajte novú databázu s názvom nodebb.

> use nodebb

Vytvorí sa databáza a kontext sa prepne na nodebb. Potom vytvorte nodebbpoužívateľa s príslušnými oprávneniami.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

POZNÁMKA: Zástupný symbol opäť nahraďte <Enter a secure password>vlastným zvoleným heslom.

Opustite Mongo shell.

> quit()

Reštartujte MongoDB a uistite sa, že sa môže pripojiť skôr vytvorený administrátor.

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

Nainštalujte a nakonfigurujte Nginx

Nainštalujte Nginx.

sudo pkg install -y nginx

Skontrolujte verziu.

nginx -v
# nginx version: nginx/1.14.2

Povoľte a spustite Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

NodeBB štandardne beží na porte 4567. Aby http://example.com:4567sme sa vyhli zadávaniu , nakonfigurujeme Nginx ako reverzný proxy pre aplikáciu NodeBB. Každá požiadavka na port 80alebo 443, ak sa používa SSL, bude presmerovaná na port 4567.

Run sudo vim /usr/local/etc/nginx/nodebb.conf and populate it with the basic reverse proxy configuration below.

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

}

In the above config, update the server_name directive with your domain/hostname.

Save the file and exit with :+W+Q.

Now we need to include nodebb.conf in the main nginx.conf file.

Run sudo vim /usr/local/etc/nginx/nginx.conf and add the following line to the http {} block.

include nodebb.conf;

Check the configuration.

sudo nginx -t

Reload Nginx.

sudo service nginx reload

Install Acme.sh client and obtain a Let's Encrypt certificate (optional)

Securing your forum with HTTPS is not necessary, but it will secure your site's traffic. Acme.sh is a pure unix shell software for obtaining SSL certificates from Let's Encrypt with zero dependencies.

Download and install 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 ~

Check the version.

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

Obtain RSA and ECDSA certificates for 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 spustení vyššie uvedených príkazov budú vaše certifikáty a kľúče v:

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

Po získaní certifikátov z Let's Encrypt musíme nakonfigurovať Nginx na ich používanie.

Spustite sudo vim /usr/local/etc/nginx/nodebb.confznova a nakonfigurujte Nginx ako 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";
  }

}

Skontrolujte konfiguráciu.

sudo nginx -t

Znova načítať Nginx.

sudo service nginx reload

Nainštalujte NodeBB

Vytvorte koreňový adresár dokumentu.

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

Zmeňte vlastníctvo /usr/local/www/nodebbadresára na johndoe.

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

Prejdite do koreňového priečinka dokumentu.

cd /usr/local/www/nodebb

Naklonujte najnovší NodeBB do koreňového priečinka dokumentu.

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

Spustite príkaz nastavenia NodeBB a po zobrazení výzvy odpovedzte na každú otázku.

./nodebb setup

Po dokončení nastavenia NodeBB spustite ./nodebb startmanuálne spustenie servera NodeBB.

./nodebb start

Po tomto príkaze budete mať prístup k svojej inštancii fóra NodeBB vo webovom prehliadači.

Spustite NodeBB s PM2

Pri ./nodebb startspustení cez , NodeBB sa po reštarte systému automaticky znova nespustí. Aby sme tomu zabránili, budeme musieť nastaviť NodeBB ako systémovú službu.

Ak je spustený, zastavte NodeBB.

./nodebb stop

Nainštalujte PM2 globálne.

sudo npm install pm2 -g

Skontrolujte verziu.

pm2 -v
# 3.5.0

Prejdite do koreňového adresára dokumentu NodeBB.

cd /usr/local/www/nodebb

Spustite NodeBB cez PM2.

pm2 start app.js

Uveďte proces NodeBB.

pm2 ls

Zistite dostupný iniciačný systém.

pm2 startup

Skopírujte a prilepte výstup tohto príkazu do CLI, aby ste nastavili svoj spúšťací hák.

Uložte si zoznam procesov.

pm2 save

To je všetko. Vaša inštancia NodeBB je teraz v prevádzke.


How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS

How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS

Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo

Ako nainštalovať Wiki.js na FreeBSD 11

Ako nainštalovať Wiki.js na FreeBSD 11

Používate iný systém? Wiki.js je bezplatná a open source moderná wiki aplikácia postavená na Node.js, MongoDB, Git a Markdown. Zdrojový kód Wiki.js je verejný

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Pagekit 1.0 CMS je krásny, modulárny, rozšíriteľný a ľahký, bezplatný a open source systém na správu obsahu (CMS) s

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. To i

Nastavenie OpenBSD 5.5 64-bit

Nastavenie OpenBSD 5.5 64-bit

Tento článok vás prevedie nastavením OpenBSD 5.5 (64-bit) na KVM s Vultr VPS. Krok 1. Prihláste sa do ovládacieho panela Vultr. Krok 2. Kliknite na DEPLOY

Ako nainštalovať osTicket na FreeBSD 12

Ako nainštalovať osTicket na FreeBSD 12

Používate iný systém? osTicket je open-source systém podpory zákazníkov. Zdrojový kód osTicket je verejne hosťovaný na Github. V tomto návode

Ako nainštalovať Flarum Forum na FreeBSD 12

Ako nainštalovať Flarum Forum na FreeBSD 12

Používate iný systém? Flarum je bezplatný a otvorený softvér fóra novej generácie, vďaka ktorému je online diskusia zábavná. Zdrojový kód Flarum je hostovaný o

Ako povoliť TLS 1.3 v Nginx na FreeBSD 12

Ako povoliť TLS 1.3 v Nginx na FreeBSD 12

Používate iný systém? TLS 1.3 je verzia protokolu Transport Layer Security (TLS), ktorý bol publikovaný v roku 2018 ako navrhovaný štandard v RFC 8446.

Nainštalujte WordPress na OpenBSD 6.2

Nainštalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantný redakčný systém na internete. Poháňa všetko od blogov až po zložité webové stránky s dynamickým obsahom

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Subrion 4.1 CMS je výkonný a flexibilný open source systém na správu obsahu (CMS), ktorý prináša intuitívny a prehľadný obsah

Ako nakonfigurovať DJBDNS na FreeBSD

Ako nakonfigurovať DJBDNS na FreeBSD

Tento tutoriál vám ukáže, ako nakonfigurovať službu DNS, ktorá sa ľahko udržiava, ľahko konfiguruje a je vo všeobecnosti bezpečnejšia ako klasický BIN

Ako nainštalovať zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Ako nainštalovať zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Zásobník FEMP, ktorý je porovnateľný so zásobníkom LEMP v systéme Linux, je kolekcia softvéru s otvoreným zdrojovým kódom, ktorý sa zvyčajne inštaluje spoločne, aby umožnil FreeBS.

Inštalácia MongoDB na FreeBSD 10

Inštalácia MongoDB na FreeBSD 10

MongoDB je prvotriedna databáza NoSQL, ktorá sa často používa v novších webových aplikáciách. Poskytuje vysokovýkonné dotazy, zdieľanie a replikáciu

Ako nainštalovať Monicu na FreeBSD 12

Ako nainštalovať Monicu na FreeBSD 12

Používate iný systém? Monica je open source systém riadenia osobných vzťahov. Predstavte si to ako CRM (populárny nástroj používaný predajnými tímami v th

OpenBSD ako riešenie elektronického obchodu s PrestaShop a Apache

OpenBSD ako riešenie elektronického obchodu s PrestaShop a Apache

Úvod Tento tutoriál demonštruje OpenBSD ako riešenie pre elektronický obchod využívajúce PrestaShop a Apache. Vyžaduje sa Apache, pretože PrestaShop má zložité UR

Inštalácia Fork CMS na FreeBSD 12

Inštalácia Fork CMS na FreeBSD 12

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Directus 6.4 CMS je výkonný a flexibilný, bezplatný a open source systém správy obsahu bez hlavy (CMS), ktorý poskytuje vývojárom

Zvýšenie bezpečnosti pre FreeBSD pomocou IPFW a SSHGuard

Zvýšenie bezpečnosti pre FreeBSD pomocou IPFW a SSHGuard

Servery VPS sú často cieľom útočníkov. Bežný typ útoku sa objavuje v systémových protokoloch ako stovky neoprávnených pokusov o prihlásenie cez ssh. Nastavenie

Nastavte httpd v OpenBSD

Nastavte httpd v OpenBSD

Úvod OpenBSD 5.6 predstavilo nového démona s názvom httpd, ktorý podporuje CGI (cez FastCGI) a TLS. Na inštaláciu nového http nie je potrebná žiadna ďalšia práca

Nastavte iRedMail na FreeBSD 10

Nastavte iRedMail na FreeBSD 10

Tento tutoriál vám ukáže, ako nainštalovať groupware iRedMail na novú inštaláciu FreeBSD 10. Mali by ste použiť server s aspoň jedným gigabajtom o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac