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

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.


A Tiny Tiny RSS Reader telepítése FreeBSD 11 FAMP VPS-re

A Tiny Tiny RSS Reader telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy

A Wiki.js telepítése FreeBSD 11-re

A Wiki.js telepítése FreeBSD 11-re

Más rendszert használ? A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás, amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. A Wiki.js forráskódja nyilvános

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Pagekit 1.0 CMS egy gyönyörű, moduláris, bővíthető és könnyű, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS)

A MODX Revolution telepítése FreeBSD 11 FAMP VPS-re

A MODX Revolution telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A MODX Revolution egy gyors, rugalmas, méretezhető, nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS), PHP nyelven írva. Ez i

OpenBSD 5.5 64 bites beállítása

OpenBSD 5.5 64 bites beállítása

Ez a cikk végigvezeti az OpenBSD 5.5 (64 bites) beállításán KVM-en Vultr VPS-sel. 1. lépés: Jelentkezzen be a Vultr vezérlőpultra. 2. lépés Kattintson a BEVEZETÉS gombra

Az osTicket telepítése FreeBSD 12-re

Az osTicket telepítése FreeBSD 12-re

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

A Flarum Forum telepítése FreeBSD 12-re

A Flarum Forum telepítése FreeBSD 12-re

Más rendszert használ? A Flarum egy ingyenes, nyílt forráskódú, következő generációs fórumszoftver, amely szórakoztatóvá teszi az online beszélgetést. A Flarum forráskód o

A TLS 1.3 engedélyezése az Nginxben a FreeBSD 12 rendszeren

A TLS 1.3 engedélyezése az Nginxben a FreeBSD 12 rendszeren

Más rendszert használ? A TLS 1.3 a Transport Layer Security (TLS) protokoll egyik változata, amelyet 2018-ban tettek közzé javasolt szabványként az RFC 8446-ban.

Telepítse a WordPress-t OpenBSD 6.2-re

Telepítse a WordPress-t OpenBSD 6.2-re

Bevezetés A WordPress a domináns tartalomkezelő rendszer az interneten. A blogoktól a dinamikus tartalommal rendelkező összetett webhelyekig mindent megtesz

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Subrion 4.1 CMS egy hatékony és rugalmas nyílt forráskódú tartalomkezelő rendszer (CMS), amely intuitív és világos tartalmat biztosít.

Hogyan állítsuk be a DJBDNS-t FreeBSD-n

Hogyan állítsuk be a DJBDNS-t FreeBSD-n

Ez az oktatóanyag bemutatja, hogyan konfigurálhat olyan DNS-szolgáltatást, amely könnyen karbantartható, könnyen konfigurálható, és általában biztonságosabb, mint a klasszikus BIN.

Az Nginx, MySQL és PHP (FEMP) Stack telepítése FreeBSD 12.0-ra

Az Nginx, MySQL és PHP (FEMP) Stack telepítése FreeBSD 12.0-ra

A FEMP verem, amely összehasonlítható a Linux LEMP veremével, nyílt forráskódú szoftverek gyűjteménye, amelyeket általában együtt telepítenek a FreeBS engedélyezéséhez.

A MongoDB telepítése FreeBSD 10-re

A MongoDB telepítése FreeBSD 10-re

A MongoDB egy világszínvonalú NoSQL adatbázis, amelyet gyakran használnak újabb webes alkalmazásokban. Nagy teljesítményű lekérdezéseket, felosztást és replikációt biztosít

A Monica telepítése FreeBSD 12-re

A Monica telepítése FreeBSD 12-re

Más rendszert használ? A Monica egy nyílt forráskódú személyes kapcsolatkezelő rendszer. Tekintsd úgy, mint egy CRM-et (az értékesítési csapatok által használt népszerű eszköz a th

OpenBSD mint e-kereskedelmi megoldás PrestaShop és Apache segítségével

OpenBSD mint e-kereskedelmi megoldás PrestaShop és Apache segítségével

Bevezetés Ez az oktatóanyag bemutatja az OpenBSD-t mint e-kereskedelmi megoldást PrestaShop és Apache használatával. Az Apache szükséges, mert a PrestaShop összetett UR-vel rendelkezik

A Fork CMS telepítése FreeBSD 12-re

A Fork CMS telepítése FreeBSD 12-re

Más rendszert használ? A Fork egy PHP nyelven írt nyílt forráskódú CMS. A Forks forráskódja a GitHubon található. Ez az útmutató megmutatja, hogyan kell telepíteni a Fork CM-et

A Directus 6.4 CMS telepítése FreeBSD 11 FAMP VPS-re

A Directus 6.4 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Directus 6.4 CMS egy hatékony és rugalmas, ingyenes és nyílt forráskódú fej nélküli tartalomkezelő rendszer (CMS), amely a fejlesztők számára

A FreeBSD biztonságának fokozása IPFW és SSHGuard segítségével

A FreeBSD biztonságának fokozása IPFW és SSHGuard segítségével

A VPS-szervereket gyakran támadják meg a behatolók. A támadások gyakori típusa több száz jogosulatlan ssh bejelentkezési kísérletként jelenik meg a rendszernaplókban. Felállítása

A httpd beállítása OpenBSD-ben

A httpd beállítása OpenBSD-ben

Bevezetés Az OpenBSD 5.6 bevezetett egy új httpd démont, amely támogatja a CGI-t (FastCGI-n keresztül) és a TLS-t. Nincs szükség további munkára az új http telepítéséhez

Állítsa be az iRedMailt a FreeBSD 10-en

Állítsa be az iRedMailt a FreeBSD 10-en

Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a FreeBSD 10 friss telepítésére. Használjon legalább egy gigabájtos kiszolgálót.

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.

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.

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

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket