Kaip įdiegti NodeBB forumą Debian 9

NodeBB yra Node.js pagrįstas forumas. Jis naudoja žiniatinklio lizdus momentinei sąveikai ir pranešimams realiuoju laiku. „NodeBB“ šaltinio kodas yra viešai priglobtas „ Github“ . Šis vadovas padės jums atlikti NodeBB diegimo procesą naujame Debian 9 Vultr egzemplioriuje, naudojant Node.js, MongoDB kaip duomenų bazę, Nginx kaip atvirkštinį tarpinį serverį ir Acme.sh SSL sertifikatams.

Reikalavimai

NodeBB reikia įdiegti šią programinę įrangą:

  • Git
  • Node.js 6.9.0 arba naujesnė versija
  • MongoDB 2.6 ar naujesnė versija
  • Nginx
  • Mažiausiai 1024 MB RAM
  • Domeno vardas su nustatyta A/ AAAAįrašais

Prieš tau pradedant

Patikrinkite Debian versiją.

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

Įsitikinkite, kad jūsų sistema yra atnaujinta.

apt update && apt upgrade -y

Įdiekite reikiamus paketus.

apt install -y sudo dirmngr git build-essential apt-transport-https

Sukurkite naują non-rootvartotojo paskyrą su sudoprieiga ir perjunkite į ją.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

PASTABA : pakeiskite johndoesavo vartotojo vardu.

Nustatykite laiko juostą.

sudo dpkg-reconfigure tzdata

Įdiekite Node.js

„NodeBB“ valdo Node.js, todėl jį reikia įdiegti. Rekomenduojama įdiegti dabartinę LTS versiją Node.js.

Įdiekite Node.js iš NodeSource saugyklos.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Patikrinkite Node.js ir npm įdiegimą.

node -v && npm -v
# v10.15.0
# 5.6.0

Įdiekite ir sukonfigūruokite MongoDB

MongoDB yra numatytoji NodeBB duomenų bazė.

Įdiekite MongoDB iš oficialios MongoDB saugyklos.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org

Patikrinkite versiją.

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

Paleiskite ir įgalinkite MongoDB.

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Sukurkite „MongoDB“ duomenų bazę ir „NodeBB“ vartotoją.

Prisijunkite prie MongoDB.

mongo

Perjunkite į integruotą adminduomenų bazę.

> use admin

Sukurkite administracinį vartotoją.

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

PASTABA: pakeiskite rezervuotąją vietą <Enter a secure password>savo pasirinktu slaptažodžiu.

Pridėkite naują duomenų bazę pavadinimu nodebb.

> use nodebb

Bus sukurta duomenų bazė ir kontekstas perjungtas į nodebb. Tada sukurkite nodebbvartotoją su atitinkamomis teisėmis.

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

PASTABA: Vėlgi, pakeiskite rezervuotąją vietą <Enter a secure password>savo pasirinktu slaptažodžiu.

Išeikite iš Mongo apvalkalo.

> quit()

Iš naujo paleiskite MongoDB ir patikrinkite, ar anksčiau sukurtas administracinis vartotojas gali prisijungti.

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

Įdiekite ir sukonfigūruokite „Nginx“.

Įdiekite naujausią pagrindinės „Nginx“ versiją iš oficialios „Nginx“ saugyklos.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Patikrinkite versiją.

sudo nginx -v
# nginx version: nginx/1.15.0

Įgalinkite ir paleiskite „Nginx“.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Pagal numatytuosius nustatymus NodeBB veikia prievade 4567. Kad nereikėtų rašyti http://example.com:4567, sukonfigūruosime Nginx kaip atvirkštinį NodeBB programos tarpinį serverį. Kiekviena prievado 80arba 443(jei naudojamas SSL) užklausa bus perduota į prievadą 4567.

Paleiskite sudo vim /etc/nginx/conf.d/nodebb.confir užpildykite jį pagrindine atvirkštinio tarpinio serverio konfigūracija, parodyta toliau.

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

}

Aukščiau pateiktoje konfigūracijoje atnaujinkite server_namedirektyvą savo domenu / pagrindinio kompiuterio pavadinimu.

Patikrinkite konfigūraciją.

sudo nginx -t

Iš naujo įkelti Nginx.

sudo systemctl reload nginx.service

Įdiekite Acme.sh klientą ir gaukite Let's Encrypt sertifikatą (neprivaloma)

Apsaugoti forumą naudojant HTTPS nebūtina, tačiau tai užtikrins jūsų svetainės srautą. Acme.sh yra gryna Unix apvalkalo programinė įranga, skirta gauti SSL sertifikatus iš Let's Encrypt be jokių priklausomybių.

Atsisiųskite ir įdiekite 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 ~
source ~/.bashrc

Patikrinkite versiją.

acme.sh --version
# v2.7.9

Gaukite RSA ir ECDSA sertifikatus 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 systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --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 systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Paleidus aukščiau nurodytas komandas, jūsų sertifikatai ir raktai bus šiuose kataloguose:

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

Gavę sertifikatus iš Let's Encrypt, turime sukonfigūruoti Nginx, kad juos naudotų.

Paleiskite sudo vim /etc/nginx/conf.d/nodebb.confdar kartą ir sukonfigūruokite „Nginx“ kaip HTTPS atvirkštinį tarpinį serverį.

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

}

Patikrinkite konfigūraciją.

sudo nginx -t

Iš naujo įkelti Nginx.

sudo systemctl reload nginx.service

Įdiekite NodeBB

Sukurkite dokumento šakninį katalogą.

sudo mkdir -p /var/www/nodebb

Pakeiskite /var/www/nodebbkatalogo nuosavybės teisę į johndoe.

sudo chown -R johndoe:johndoe /var/www/nodebb

Eikite į dokumento šakninį aplanką.

cd /var/www/nodebb

Klonuokite naujausią NodeBB į dokumento šakninį aplanką.

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

Vykdykite NodeBB sąrankos komandą ir atsakykite į kiekvieną klausimą, kai būsite paraginti.

./nodebb setup

Baigę „NodeBB“ sąranką, paleiskite, ./nodebb startkad rankiniu būdu paleistumėte „NodeBB“ serverį.

./nodebb start

Po šios komandos galėsite pasiekti savo forumą savo žiniatinklio naršyklėje.

Paleiskite NodeBB kaip sistemos paslaugą

Paleidus naudojant ./nodebb start, „NodeBB“ nebus automatiškai paleistas, kai sistema paleidžiama iš naujo. Norėdami to išvengti, turėsime nustatyti NodeBB kaip sistemos paslaugą.

Jei veikia, sustabdykite NodeBB.

./nodebb stop

Sukurti naują nodebbvartotoją:

sudo adduser nodebb

Pakeiskite /var/www/nodebbkatalogo nuosavybės teisę į nodebb.

sudo chown -R nodebb:nodebb /var/www/nodebb

Sukurkite nodebb.servicesistemos įrenginio konfigūracijos failą. Šis vieneto failas tvarkys NodeBB demono paleidimą. Paleiskite sudo vim /etc/systemd/system/nodebb.serviceir užpildykite failą tokiu turiniu:

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

PASTABA: nustatykite vartotojo vardą ir katalogo kelius pagal pasirinktus vardus.

Įgalinkite nodebb.serviceperkraunant ir nedelsdami paleiskite nodebb.service.

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Patikrinkite nodebb.servicebūseną.

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Viskas. Jūsų „NodeBB“ egzempliorius dabar parengtas ir veikia.


Leave a Comment

Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Naudojate kitą sistemą? Jei perkate Debian serverį, visada turėtumėte turėti naujausius saugos pataisymus ir naujinimus, nesvarbu, ar miegate, ar ne

Nustatykite savo DNS serverį Debian / Ubuntu

Nustatykite savo DNS serverį Debian / Ubuntu

Šiame vadove paaiškinama, kaip nustatyti DNS serverį naudojant Bind9 sistemoje Debian arba Ubuntu. Visame straipsnyje atitinkamai pakeiskite savo-domeno-vardas.com. Prie th

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Šiame straipsnyje pamatysime, kaip sukompiliuoti ir įdiegti pagrindinę Nginx liniją iš oficialių Nginx šaltinių naudojant PageSpeed ​​modulį, kuris leidžia

Kaip įdiegti „Kanboard“ „Debian 9“.

Kaip įdiegti „Kanboard“ „Debian 9“.

Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti

Kaip įdiegti Gitea Debian 9

Kaip įdiegti Gitea Debian 9

Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina Git. Gitea parašyta golangu ir yra

Įdiekite „Lynis“ „Debian 8“.

Įdiekite „Lynis“ „Debian 8“.

Įvadas Lynis yra nemokama atvirojo kodo sistemos audito priemonė, kurią naudoja daugelis sistemų administratorių, kad patikrintų vientisumą ir sustiprintų savo sistemas. aš

Kaip įdiegti Thelia 2.3 Debian 9

Kaip įdiegti Thelia 2.3 Debian 9

Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

Ko jums reikia Vultr VPS su mažiausiai 1 GB RAM. SSH prieiga (su root / administratoriaus teisėmis). 1 veiksmas: „BungeeCord“ diegimas Pirmiausia

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Golang yra programavimo kalba, kurią sukūrė Google. Dėl savo universalumo, paprastumo ir patikimumo Golangas tapo vienu populiariausių

Iš naujo nustatykite „MySQL“ pagrindinį slaptažodį „Debian“ / „Ubuntu“.

Iš naujo nustatykite „MySQL“ pagrindinį slaptažodį „Debian“ / „Ubuntu“.

Jei pamiršote savo MySQL root slaptažodį, galite jį nustatyti iš naujo atlikdami šiame straipsnyje nurodytus veiksmus. Procesas yra gana paprastas ir veikia su jais

Tinklo bendrinimų kūrimas naudojant „Samba“ sistemoje „Debian“.

Tinklo bendrinimų kūrimas naudojant „Samba“ sistemoje „Debian“.

Kartais mums reikia bendrinti failus, kuriuos turi matyti „Windows“ klientai. Kadangi saugikliais pagrįstos sistemos veikia tik „Linux“, prisistatykite

„Counter Strike“ nustatymas: šaltinis „Debian“.

„Counter Strike“ nustatymas: šaltinis „Debian“.

Šiame vadove mes nustatysime Counter Strike: Source žaidimų serverį Debian 7. Šios komandos buvo išbandytos Debian 7, tačiau jos taip pat turėtų veikti.

Kaip įdiegti Cachet Debian 8

Kaip įdiegti Cachet Debian 8

Šiame vadove sužinosite, kaip įdiegti Cachet Debian 8. Cachet yra galinga atvirojo kodo būsenos puslapių sistema. Diegimas Ši pamoka vyksta

Automatiškai kurkite atsargines kelių MySQL arba MariaDB duomenų bazes

Automatiškai kurkite atsargines kelių MySQL arba MariaDB duomenų bazes

Įvadas Šiame rašte gerai apžvelkite, kaip sukurti kelių MySQL arba MariaDB duomenų bazių, esančių tame pačiame kompiuteryje, atsargines kopijas naudojant pasirinktinį bash scenarijų.

Chroot nustatymas Debiane

Chroot nustatymas Debiane

Šis straipsnis išmokys jus, kaip nustatyti chroot kalėjimą Debian'e. Manau, kad naudojate Debian 7.x. Jei naudojate Debian 6 arba 8, tai gali veikti, bu

Kaip įdiegti Reader Self 3.5 RSS Reader Debian 9 LAMP VPS

Kaip įdiegti Reader Self 3.5 RSS Reader Debian 9 LAMP VPS

Naudojate kitą sistemą? „Reader Self 3.5“ yra paprasta ir lanksti, nemokama ir atvirojo kodo, savarankiškai priglobta RSS skaitytuvo ir „Google“ skaitytojo alternatyva. Skaitytojas Sel

Kaip įdiegti Backdrop CMS 1.8.0 Debian 9 LAMP VPS

Kaip įdiegti Backdrop CMS 1.8.0 Debian 9 LAMP VPS

Naudojate kitą sistemą? Backdrop CMS 1.8.0 yra paprasta ir lanksti, mobiliesiems pritaikyta nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri leidžia mums

Atnaujinkite Python sistemoje Debian

Atnaujinkite Python sistemoje Debian

Kaip tikriausiai žinote, Debian saugyklos atnaujinamos labai lėtai. Rašymo metu „Python“ leidimo versijos buvo 2.7.12 ir 3.5.2, tačiau „Debian 8“ saugykloje

Kaip nustatyti „Samba“ naudojant blokinę saugyklą „Debian 9“.

Kaip nustatyti „Samba“ naudojant blokinę saugyklą „Debian 9“.

„Samba“ yra atvirojo kodo sprendimas, leidžiantis vartotojams greitai ir saugiai nustatyti failus ir spausdinti bendrinamus failus. Šiame straipsnyje aprašysiu, kaip nustatyti „Samba Wit“.

Nustatykite SNI tarpinį serverį „Debian 7 x64“.

Nustatykite SNI tarpinį serverį „Debian 7 x64“.

SNI tarpinis serveris gali perduoti tiek gaunamus HTTP, tiek TLS ryšius pagal pagrindinio kompiuterio pavadinimą, kuris yra pradinėje tos TCP seanso užklausoje. Ši savybė

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį