Kuinka asentaa NodeBB-foorumi FreeBSD 12:een

NodeBB on Node.js-pohjainen foorumiohjelmisto. Se käyttää verkkoliitäntöjä välittömään vuorovaikutukseen ja reaaliaikaisiin ilmoituksiin. NodeBB:n lähdekoodia isännöidään julkisesti Githubissa . Tämä opas opastaa sinut NodeBB:n asennusprosessin läpi uuteen FreeBSD 12 Vultr -esiintymään käyttämällä Node.js:ää, MongoDB:tä tietokantana, Nginxiä käänteisenä välityspalvelimena ja Acme.sh:ta SSL-varmenteille.

Vaatimukset

NodeBB vaatii seuraavan ohjelmiston asentamisen:

  • Node.js-versio 6.9.0 tai uudempi
  • MongoDB versio 2.6 tai uudempi
  • Nginx
  • Git
  • Vähintään 1024 Mt RAM-muistia
  • Verkkotunnuksen nimi A/ AAAAtietueet määritetty

Ennen kuin aloitat

Tarkista FreeBSD-versio.

uname -ro
# FreeBSD 12.0-RELEASE

Varmista, että FreeBSD-järjestelmäsi on ajan tasalla.

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

Asenna tarvittavat paketit, jos niitä ei ole järjestelmässäsi.

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

Luo uusi käyttäjätili haluamallasi käyttäjätunnuksella (käytämme 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!

Suorita visudokomento ja poista %wheel ALL=(ALL) ALLrivin kommentti , jotta ryhmän jäsenet wheelvoivat suorittaa minkä tahansa komennon.

visudo

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

Vaihda nyt äskettäin luotuun käyttäjään käyttämällä su.

su - johndoe

HUOMAA: Korvaa johndoekäyttäjätunnuksellasi.

Aseta aikavyöhyke.

sudo tzsetup

Asenna Node.js

NodeBB:tä ohjaa Node.js, joten se on asennettava. Node.js:n nykyisen LTS-version asentaminen on suositeltavaa.

Asenna Node.js ja npm.

sudo pkg install -y node10 npm-node10

Tarkista versiot.

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

Asenna ja määritä MongoDB

MongoDB on NodeBB:n oletustietokanta.

Asenna MongoDB.

sudo pkg install -y mongodb40

Tarkista versio.

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

Ota käyttöön ja käynnistä MongoDB.

sudo sysrc mongod_enable=yes
sudo service mongod start

Luo tietokanta ja käyttäjä NodeBB:lle.

Yhdistä ensin MongoDB:hen.

mongo

Vaihda sisäänrakennettuun admintietokantaan.

> use admin

Luo järjestelmänvalvojan käyttäjä.

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

HUOMAA: Korvaa paikkamerkki <Enter a secure password>valitsemallasi salasanalla.

Lisää uusi tietokanta nimeltä nodebb.

> use nodebb

Tietokanta luodaan ja kontekstiksi vaihdetaan nodebb. Luo seuraavaksi nodebbkäyttäjä, jolla on tarvittavat oikeudet.

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

HUOMAA: Korvaa paikkamerkki jälleen <Enter a secure password>omalla salasanallasi.

Poistu Mongo-kuoresta.

> quit()

Käynnistä MongoDB uudelleen ja varmista, että aiemmin luotu järjestelmänvalvojan käyttäjä voi muodostaa yhteyden.

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

Asenna ja määritä Nginx

Asenna Nginx.

sudo pkg install -y nginx

Tarkista versio.

nginx -v
# nginx version: nginx/1.14.2

Ota käyttöön ja käynnistä Nginx.

sudo sysrc nginx_enable=yes
sudo service nginx start

NodeBB toimii oletusarvoisesti portissa 4567. Välttääksemme kirjoittamisen http://example.com:4567määritämme Nginxin käänteiseksi välityspalvelimeksi NodeBB-sovellukselle. Jokainen portin 80tai 443SSL:n pyyntö välitetään portille 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

Yllä olevien komentojen suorittamisen jälkeen varmenteesi ja avaimesi ovat:

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

Kun olemme saaneet sertifikaatit Let's Encryptiltä, ​​meidän on määritettävä Nginx käyttämään niitä.

Suorita sudo vim /usr/local/etc/nginx/nodebb.confuudelleen ja määritä Nginx käänteiseksi HTTPS-välityspalvelimeksi.

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

}

Tarkista kokoonpano.

sudo nginx -t

Lataa Nginx uudelleen.

sudo service nginx reload

Asenna NodeBB

Luo asiakirjan juurihakemisto.

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

Muuta /usr/local/www/nodebbhakemiston omistajuus muotoon johndoe.

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

Siirry asiakirjan juurikansioon.

cd /usr/local/www/nodebb

Kloonaa uusin NodeBB asiakirjan juurikansioon.

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

Suorita NodeBB-asetuskomento ja vastaa jokaiseen kysymykseen pyydettäessä.

./nodebb setup

Kun NodeBB:n asennus on valmis, ./nodebb startkäynnistä NodeBB-palvelin manuaalisesti.

./nodebb start

Tämän komennon jälkeen voit käyttää NodeBB-foorumiesiintymääsi verkkoselaimessa.

Suorita NodeBB PM2:lla

Kun ./nodebb startNodeBB käynnistetään kautta , se ei käynnisty automaattisesti uudelleen, kun järjestelmä käynnistetään uudelleen. Tämän välttämiseksi meidän on määritettävä NodeBB järjestelmäpalveluksi.

Jos käynnissä, pysäytä NodeBB.

./nodebb stop

Asenna PM2 maailmanlaajuisesti.

sudo npm install pm2 -g

Tarkista versio.

pm2 -v
# 3.5.0

Siirry NodeBB-asiakirjan juureen.

cd /usr/local/www/nodebb

Käynnistä NodeBB PM2:n kautta.

pm2 start app.js

Listaa NodeBB-prosessi.

pm2 ls

Tunnista käytettävissä oleva init-järjestelmä.

pm2 startup

Kopioi ja liitä tämän komennon tulos CLI:hen määrittääksesi käynnistyskoukun.

Tallenna prosessiluettelosi.

pm2 save

Se siitä. NodeBB-esiintymäsi on nyt käynnissä.

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja