Hvernig á að setja upp NodeBB spjallborð á FreeBSD 12

NodeBB er spjallborðshugbúnaður sem byggir á Node.js. Það notar vefinnstungur fyrir tafarlaus samskipti og rauntíma tilkynningar. NodeBB frumkóði er hýst opinberlega á Github . Þessi handbók mun leiða þig í gegnum NodeBB uppsetningarferlið á nýju FreeBSD 12 Vultr tilviki, með því að nota Node.js, MongoDB sem gagnagrunn, Nginx sem öfugt umboð og Acme.sh fyrir SSL vottorð.

Kröfur

NodeBB krefst þess að eftirfarandi hugbúnaður sé uppsettur:

  • Node.js útgáfa 6.9.0 eða nýrri
  • MongoDB útgáfa 2.6 eða nýrri
  • Nginx
  • Git
  • Lágmark 1024MB vinnsluminni
  • Lén með A/ AAAAskrár sett upp

Áður en þú byrjar

Athugaðu FreeBSD útgáfuna.

uname -ro
# FreeBSD 12.0-RELEASE

Gakktu úr skugga um að FreeBSD kerfið þitt sé uppfært.

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

Settu upp nauðsynlega pakka ef þeir eru ekki til staðar á kerfinu þínu.

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

Búðu til nýjan notandareikning með valinn notandanafni þínu (við munum nota 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!

Keyrðu visudoskipunina og afskrifaðu %wheel ALL=(ALL) ALLlínuna til að leyfa meðlimum wheelhópsins að framkvæma hvaða skipun sem er.

visudo

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

Nú skaltu skipta yfir í nýstofnaðan notanda með su.

su - johndoe

ATH: Skiptu út johndoefyrir notendanafnið þitt.

Settu upp tímabeltið.

sudo tzsetup

Settu upp Node.js

NodeBB er knúið áfram af Node.js og því þarf að setja það upp. Mælt er með uppsetningu á núverandi LTS útgáfu af Node.js.

Settu upp Node.js og npm.

sudo pkg install -y node10 npm-node10

Athugaðu útgáfurnar.

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

Settu upp og stilltu MongoDB

MongoDB er sjálfgefinn gagnagrunnur fyrir NodeBB.

Settu upp MongoDB.

sudo pkg install -y mongodb40

Athugaðu útgáfuna.

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

Virkjaðu og ræstu MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Búðu til gagnagrunn og notanda fyrir NodeBB.

Tengstu við MongoDB fyrst.

mongo

Skiptu yfir í innbyggða admingagnagrunninn.

> use admin

Búðu til stjórnunarnotanda.

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

ATHUGIÐ: Skiptu um staðgengil <Enter a secure password>fyrir þitt eigið lykilorð.

Bættu við nýjum gagnagrunni sem heitir nodebb.

> use nodebb

Gagnagrunnurinn verður búinn til og samhengi skipt yfir í nodebb. Næst skaltu búa til nodebbnotanda með viðeigandi réttindi.

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

ATHUGIÐ: Aftur skaltu skipta um staðgengil <Enter a secure password>fyrir þitt eigið lykilorð.

Farðu úr Mongo skelinni.

> quit()

Endurræstu MongoDB og tryggðu að stjórnunarnotandinn sem var búinn til fyrr geti tengst.

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

Settu upp og stilltu Nginx

Settu upp Nginx.

sudo pkg install -y nginx

Athugaðu útgáfuna.

nginx -v
# nginx version: nginx/1.14.2

Virkjaðu og ræstu Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

NodeBB keyrir sjálfgefið á port 4567. Til að forðast að slá inn http://example.com:4567munum við stilla Nginx sem öfugt umboð fyrir NodeBB forritið. Sérhver beiðni um höfn 80eða 443, ef SSL er notað, verður send til hafnar 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 your_email@example.com
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

Eftir að hafa keyrt ofangreindar skipanir verða vottorð þín og lyklar í:

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

Eftir að hafa fengið vottorð frá Let's Encrypt þurfum við að stilla Nginx til að nota þau.

Keyrðu sudo vim /usr/local/etc/nginx/nodebb.confaftur og stilltu Nginx sem HTTPS öfugt umboð.

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

}

Athugaðu stillinguna.

sudo nginx -t

Endurhlaða Nginx.

sudo service nginx reload

Settu upp NodeBB

Búðu til rótarskrá skjalsins.

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

Breyttu eignarhaldi /usr/local/www/nodebbmöppunnar í johndoe.

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

Farðu í rótarmöppuna skjalsins.

cd /usr/local/www/nodebb

Klónaðu nýjasta NodeBB inn í rótarmöppuna skjalsins.

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

Keyrðu NodeBB uppsetningarskipunina og svaraðu hverri spurningu þegar beðið er um það.

./nodebb setup

Eftir að uppsetningu NodeBB er lokið skaltu keyra ./nodebb starttil að ræsa NodeBB netþjóninn þinn handvirkt.

./nodebb start

Eftir þessa skipun muntu geta fengið aðgang að NodeBB umræðum þínum í vafra.

Keyra NodeBB með PM2

Þegar ræst er í gegnum ./nodebb startmun NodeBB ekki sjálfkrafa ræsa aftur þegar kerfið endurræsir. Til að forðast það verðum við að setja upp NodeBB sem kerfisþjónustu.

Ef þú keyrir skaltu stöðva NodeBB.

./nodebb stop

Settu upp PM2 á heimsvísu.

sudo npm install pm2 -g

Athugaðu útgáfuna.

pm2 -v
# 3.5.0

Farðu í rót NodeBB skjalsins.

cd /usr/local/www/nodebb

Byrjaðu NodeBB í gegnum PM2.

pm2 start app.js

Listaðu yfir NodeBB ferlið.

pm2 ls

Finndu tiltækt init kerfi.

pm2 startup

Afritaðu og límdu úttak þessarar skipunar í CLI til að setja upp ræsingarkrókinn þinn.

Vistaðu vinnslulistann þinn.

pm2 save

Það er það. NodeBB tilvikið þitt er nú í gangi.

Skildu eftir athugasemd

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira