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 [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

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ä.


Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu

Kuinka asentaa Wiki.js FreeBSD 11:een

Kuinka asentaa Wiki.js FreeBSD 11:een

Käytätkö erilaista järjestelmää? Wiki.js on ilmainen ja avoimen lähdekoodin moderni wikisovellus, joka on rakennettu Node.js:lle, MongoDB:lle, Gitille ja Markdownille. Wiki.js-lähdekoodi on julkinen

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? MODX Revolution on nopea, joustava, skaalautuva, avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä (CMS), joka on kirjoitettu PHP:llä. Se minä

Asenna OpenBSD 5.5 64-bittinen

Asenna OpenBSD 5.5 64-bittinen

Tämä artikkeli opastaa sinua määrittämään OpenBSD 5.5 (64-bittinen) KVM:ssä Vultr VPS:n kanssa. Vaihe 1. Kirjaudu Vultr-ohjauspaneeliin. Vaihe 2. Napsauta KÄYTÄ

Kuinka asentaa osTicket FreeBSD 12:een

Kuinka asentaa osTicket FreeBSD 12:een

Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa

Kuinka asentaa Flarum Forum FreeBSD 12:een

Kuinka asentaa Flarum Forum FreeBSD 12:een

Käytätkö erilaista järjestelmää? Flarum on ilmainen ja avoimen lähdekoodin seuraavan sukupolven foorumiohjelmisto, joka tekee online-keskustelusta hauskaa. Flarum-lähdekoodia isännöi o

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Käytätkö erilaista järjestelmää? TLS 1.3 on versio TLS (Transport Layer Security) -protokollasta, joka julkaistiin vuonna 2018 RFC 8446 -standardin ehdotuksena.

Asenna WordPress OpenBSD 6.2:een

Asenna WordPress OpenBSD 6.2:een

Johdanto WordPress on hallitseva sisällönhallintajärjestelmä Internetissä. Se tarjoaa kaiken tehon blogeista monimutkaisiin verkkosivustoihin, joissa on dynaamista sisältöä

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön

Kuinka määrittää DJBDNS FreeBSD:ssä

Kuinka määrittää DJBDNS FreeBSD:ssä

Tämä opetusohjelma näyttää, kuinka voit määrittää DNS-palvelun, joka on helppo ylläpitää, helppo määrittää ja joka on yleensä turvallisempi kuin perinteinen BIN.

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

FEMP-pino, joka on verrattavissa LEMP-pinoon Linuxissa, on kokoelma avoimen lähdekoodin ohjelmistoja, jotka tyypillisesti asennetaan yhdessä mahdollistamaan FreeBS.

MongoDB:n asentaminen FreeBSD 10:een

MongoDB:n asentaminen FreeBSD 10:een

MongoDB on maailmanluokan NoSQL-tietokanta, jota käytetään usein uudemmissa verkkosovelluksissa. Se tarjoaa korkean suorituskyvyn kyselyitä, jakamista ja replikointia

Kuinka asentaa Monica FreeBSD 12:een

Kuinka asentaa Monica FreeBSD 12:een

Käytätkö erilaista järjestelmää? Monica on avoimen lähdekoodin henkilökohtaisten suhteiden hallintajärjestelmä. Ajattele sitä CRM:nä (suosittu työkalu, jota myyntitiimit käyttävät th

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

Johdanto Tämä opetusohjelma esittelee OpenBSD:n verkkokaupparatkaisuna PrestaShopilla ja Apachella. Apache vaaditaan, koska PrestaShopilla on monimutkainen UR

Installing Fork CMS on FreeBSD 12

Installing Fork CMS on FreeBSD 12

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Directus 6.4 CMS on tehokas ja joustava, ilmainen ja avoimen lähdekoodin päätön sisällönhallintajärjestelmä (CMS), joka tarjoaa kehittäjille

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

VPS-palvelimet ovat usein tunkeilijoiden kohteena. Yleinen hyökkäystyyppi näkyy järjestelmälokeissa sadoina luvattomina ssh-kirjautumisyrityksinä. Asettaa

Asenna httpd OpenBSD:ssä

Asenna httpd OpenBSD:ssä

Johdanto OpenBSD 5.6 esitteli uuden daemonin nimeltä httpd, joka tukee CGI:tä (FastCGI:n kautta) ja TLS:ää. Uuden http:n asentaminen ei vaadi lisätyötä

Asenna iRedMail FreeBSD 10:ssä

Asenna iRedMail FreeBSD 10:ssä

Tämä opetusohjelma näyttää, kuinka asennat ryhmätyöohjelman iRedMail uuteen FreeBSD 10:n asennukseen. Sinun tulee käyttää palvelinta, jossa on vähintään yksi gigatavu

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.

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.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

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

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