A NodeBB fórum telepítése FreeBSD 12-re

A NodeBB egy Node.js alapú fórumszoftver. Webes csatlakozókat használ az azonnali interakciókhoz és a valós idejű értesítésekhez. A NodeBB forráskód nyilvánosan a Githubon található . Ez az útmutató végigvezeti a NodeBB telepítési folyamatán egy friss FreeBSD 12 Vultr példányon a Node.js, a MongoDB adatbázisként, az Nginx fordított proxy és az Acme.sh használatával az SSL tanúsítványokhoz.

Követelmények

A NodeBB-nek a következő szoftverek telepítése szükséges:

  • Node.js 6.9.0 vagy újabb verzió
  • MongoDB 2.6 vagy újabb verzió
  • Nginx
  • Git
  • Minimum 1024 MB RAM
  • Domain név a A/ AAAArekordokkal beállítva

Mielőtt elkezded

Ellenőrizze a FreeBSD verzióját.

uname -ro
# FreeBSD 12.0-RELEASE

Győződjön meg arról, hogy a FreeBSD rendszere naprakész.

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

Telepítse a szükséges csomagokat, ha azok nincsenek jelen a rendszeren.

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

Hozzon létre egy új felhasználói fiókot a kívánt felhasználónévvel (használjuk 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!

Futtassa a visudoparancsot, és törölje a %wheel ALL=(ALL) ALLsor megjegyzését , hogy a wheelcsoport tagjai bármilyen parancsot végrehajthassanak.

visudo

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

Most váltson az újonnan létrehozott felhasználóra a segítségével su.

su - johndoe

MEGJEGYZÉS: Cserélje johndoeki a felhasználónevét.

Állítsa be az időzónát.

sudo tzsetup

Telepítse a Node.js-t

A NodeBB-t a Node.js vezérli, ezért telepíteni kell. A Node.js aktuális LTS-verziójának telepítése javasolt.

Telepítse a Node.js és az npm fájlt.

sudo pkg install -y node10 npm-node10

Ellenőrizze a verziókat.

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

Telepítse és konfigurálja a MongoDB-t

A MongoDB a NodeBB alapértelmezett adatbázisa.

Telepítse a MongoDB-t.

sudo pkg install -y mongodb40

Ellenőrizze a verziót.

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

Engedélyezze és indítsa el a MongoDB-t.

sudo sysrc mongod_enable=yes
sudo service mongod start

Hozzon létre egy adatbázist és egy felhasználót a NodeBB számára.

Először csatlakozzon a MongoDB-hez.

mongo

Váltson a beépített adminadatbázisra.

> use admin

Hozzon létre egy rendszergazdai felhasználót.

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

MEGJEGYZÉS: Cserélje ki a helyőrzőt <Enter a secure password>a saját kiválasztott jelszavával.

Adjon hozzá egy új adatbázist nodebb.

> use nodebb

Az adatbázis létrejön, és a környezet átvált a következőre nodebb. Ezután hozza létre a nodebbmegfelelő jogosultságokkal rendelkező felhasználót.

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

MEGJEGYZÉS: Ismét cserélje ki a helyőrzőt <Enter a secure password>a saját kiválasztott jelszavával.

Lépjen ki a Mongo shellből.

> quit()

Indítsa újra a MongoDB-t, és győződjön meg arról, hogy a korábban létrehozott rendszergazdai felhasználó tud csatlakozni.

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

Telepítse és konfigurálja az Nginx-et

Telepítse az Nginx-et.

sudo pkg install -y nginx

Ellenőrizze a verziót.

nginx -v
# nginx version: nginx/1.14.2

Engedélyezze és indítsa el az Nginxet.

sudo sysrc nginx_enable=yes
sudo service nginx start

A NodeBB alapértelmezés szerint a porton fut 4567. A beírás elkerülése érdekében az http://example.com:4567Nginx-et fordított proxyként konfiguráljuk a NodeBB alkalmazáshoz. A porton 80vagy 443SSL használata esetén minden kérés a portra kerül továbbításra 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

A fenti parancsok futtatása után a tanúsítványok és kulcsok a következőkben lesznek:

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

Miután megszereztük a tanúsítványokat a Let's Encrypt-től, be kell állítanunk az Nginxet a használatukhoz.

Futtassa sudo vim /usr/local/etc/nginx/nodebb.confújra, és konfigurálja az Nginx-et HTTPS fordított proxyként.

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

}

Ellenőrizze a konfigurációt.

sudo nginx -t

Töltse újra az Nginxet.

sudo service nginx reload

Telepítse a NodeBB-t

Hozzon létre egy dokumentum gyökérkönyvtárát.

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

Módosítsa a /usr/local/www/nodebbcímtár tulajdonjogát erre: johndoe.

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

Navigáljon a dokumentum gyökérmappájához.

cd /usr/local/www/nodebb

Klónozza a legújabb NodeBB-t a dokumentum gyökérmappájába.

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

Futtassa a NodeBB setup parancsot, és válaszoljon minden kérdésre, amikor a rendszer kéri.

./nodebb setup

A NodeBB beállításának befejezése után futtassa ./nodebb starta NodeBB-kiszolgáló kézi indításához.

./nodebb start

E parancs után egy webböngészőben érheti el a NodeBB fórumpéldányát.

Futtassa a NodeBB-t a PM2-vel

Ha ./nodebb starta rendszeren keresztül indítja el , a NodeBB nem indul el automatikusan újra, amikor a rendszer újraindul. Ennek elkerülése érdekében a NodeBB-t rendszerszolgáltatásként kell beállítanunk.

Ha fut, állítsa le a NodeBB-t.

./nodebb stop

Telepítse a PM2-t globálisan.

sudo npm install pm2 -g

Ellenőrizze a verziót.

pm2 -v
# 3.5.0

Keresse meg a NodeBB dokumentumgyökeret.

cd /usr/local/www/nodebb

Indítsa el a NodeBB-t a PM2-n keresztül.

pm2 start app.js

Sorolja fel a NodeBB folyamatot.

pm2 ls

Az elérhető init rendszer észlelése.

pm2 startup

Másolja ki és illessze be ennek a parancsnak a kimenetét a CLI-be az indítási hook beállításához.

Mentse el a folyamatlistát.

pm2 save

Ez az. A NodeBB-példány most már működik és fut.

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.