Kërkesat
Perpara se te fillosh
Instaloni Node.js
Instaloni dhe konfiguroni MongoDB
Instaloni dhe konfiguroni Nginx
Instaloni klientin Acme.sh dhe merrni një certifikatë Let's Encrypt (opsionale)
Instaloni NodeBB
Ekzekutoni NodeBB si një shërbim sistemi
NodeBB është një forum i bazuar në Node.js. Ai përdor prizat në internet për ndërveprime të menjëhershme dhe njoftime në kohë reale. Kodi burimor NodeBB është i pritur publikisht në Github . Ky udhëzues do t'ju përcjellë procesin e instalimit të NodeBB në një shembull të ri të Debian 9 Vultr duke përdorur Node.js, MongoDB si bazë të dhënash, Nginx si një përfaqësues të kundërt dhe Acme.sh për certifikatat SSL.
Kërkesat
NodeBB kërkon që të instalohet softueri i mëposhtëm:
- Git
- Node.js versioni 6.9.0 ose më i ri
- Versioni MongoDB 2.6 ose më i ri
- Nginx
- Minimumi 1024 MB RAM
- Emri i domenit me
A
/ AAAA
konfigurimin e regjistrimeve
Perpara se te fillosh
Kontrolloni versionin e Debian.
lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)
Sigurohuni që sistemi juaj të jetë i përditësuar.
apt update && apt upgrade -y
Instaloni paketat e nevojshme.
apt install -y sudo dirmngr git build-essential apt-transport-https
Krijoni një non-root
llogari të re përdoruesi me sudo
akses dhe kaloni në të.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
SHËNIM : Zëvendësojeni johndoe
me emrin tuaj të përdoruesit.
Vendosni zonën kohore.
sudo dpkg-reconfigure tzdata
Instaloni Node.js
NodeBB drejtohet nga Node.js dhe kështu duhet të instalohet. Rekomandohet instalimi i versionit aktual LTS të Node.js.
Instaloni Node.js nga depoja e NodeSource.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
Verifikoni instalimin e Node.js dhe npm.
node -v && npm -v
# v10.15.0
# 5.6.0
MongoDB është baza e të dhënave e paracaktuar për NodeBB.
Instaloni MongoDB nga depoja zyrtare e MongoDB.
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
Kontrolloni versionin.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.00
# db version v4.0.0
Filloni dhe aktivizoni MongoDB.
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Krijoni një bazë të dhënash MongoDB dhe përdorues për NodeBB.
Lidhu me MongoDB.
mongo
Kaloni në admin
bazën e të dhënave të integruar .
> use admin
Krijo një përdorues administrativ.
> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
SHËNIM: Zëvendësoni mbajtësin e vendit <Enter a secure password>
me fjalëkalimin tuaj të zgjedhur.
Shtoni një bazë të dhënash të re të quajtur nodebb
.
> use nodebb
Baza e të dhënave do të krijohet dhe konteksti do të kalojë në nodebb
. Më pas, krijoni nodebb
përdoruesin me privilegjet e duhura.
> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
SHËNIM: Përsëri, zëvendësoni mbajtësin e vendit <Enter a secure password>
me fjalëkalimin tuaj të zgjedhur.
Dilni nga guaska Mongo.
> quit()
Rinisni MongoDB dhe verifikoni që përdoruesi administrativ i krijuar më parë mund të lidhet.
sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin
Instaloni versionin më të fundit kryesor të Nginx nga depoja zyrtare e Nginx.
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
Kontrolloni versionin.
sudo nginx -v
# nginx version: nginx/1.15.0
Aktivizo dhe nis Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
NodeBB, si parazgjedhje, funksionon në portin 4567
. Për të shmangur shtypjen http://example.com:4567
, ne do të konfigurojmë Nginx si një përfaqësues të kundërt për aplikacionin NodeBB. Çdo kërkesë në port 80
ose 443
(nëse përdoret SSL) do të përcillet në port 4567
.
Ekzekutoni sudo vim /etc/nginx/conf.d/nodebb.conf
dhe plotësoni atë me konfigurimin bazë të përfaqësuesit të kundërt të paraqitur më poshtë.
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";
}
}
Në konfigurimin e mësipërm, përditësoni server_name
direktivën me domenin/emrin tuaj të hostit.
Kontrolloni konfigurimin.
sudo nginx -t
Rifresko Nginx.
sudo systemctl reload nginx.service
Instaloni klientin Acme.sh dhe merrni një certifikatë Let's Encrypt (opsionale)
Sigurimi i forumit tuaj me HTTPS nuk është i nevojshëm, por do të sigurojë trafikun e faqes suaj. Acme.sh është një softuer i pastër i guaskës Unix për marrjen e certifikatave SSL nga Let's Encrypt me zero varësi.
Shkarkoni dhe instaloni 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
Kontrolloni versionin.
acme.sh --version
# v2.7.9
Merrni certifikatat RSA dhe ECDSA për 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
Pas ekzekutimit të komandave të mësipërme, certifikatat dhe çelësat tuaj do të jenë në drejtoritë e mëposhtme:
- RSA:
/etc/letsencrypt/forum.example.com
- ECC/ECDSA:
/etc/letsencrypt/forum.example.com_ecc
Pas marrjes së certifikatave nga Let's Encrypt, duhet të konfigurojmë Nginx për t'i përdorur ato.
Ekzekutoni sudo vim /etc/nginx/conf.d/nodebb.conf
përsëri dhe konfiguroni Nginx si një përfaqësues të kundërt HTTPS.
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";
}
}
Kontrolloni konfigurimin.
sudo nginx -t
Rifresko Nginx.
sudo systemctl reload nginx.service
Instaloni NodeBB
Krijoni një direktori rrënjësore të dokumentit.
sudo mkdir -p /var/www/nodebb
Ndrysho pronësinë e /var/www/nodebb
drejtorisë në johndoe
.
sudo chown -R johndoe:johndoe /var/www/nodebb
Navigoni te dosja rrënjë e dokumentit.
cd /var/www/nodebb
Klononi NodeBB-në më të fundit në dosjen rrënjë të dokumentit.
git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git .
Ekzekutoni komandën e konfigurimit NodeBB dhe përgjigjuni çdo pyetjeje kur ju kërkohet.
./nodebb setup
Pasi të përfundojë konfigurimi i NodeBB, vraponi ./nodebb start
për të nisur manualisht serverin tuaj NodeBB.
./nodebb start
Pas kësaj komande, do të keni mundësi të hyni në forumin tuaj në shfletuesin tuaj të internetit.
Ekzekutoni NodeBB si një shërbim sistemi
Kur niset përmes ./nodebb start
, NodeBB nuk do të ndizet përsëri automatikisht kur sistemi të rindizet. Për ta shmangur këtë, do të na duhet të konfigurojmë NodeBB si një shërbim sistemi.
Nëse funksionon, ndaloni NodeBB.
./nodebb stop
Krijo një nodebb
përdorues të ri :
sudo adduser nodebb
Ndrysho pronësinë e /var/www/nodebb
drejtorisë në nodebb
.
sudo chown -R nodebb:nodebb /var/www/nodebb
Krijo një nodebb.service
skedar konfigurimi të njësisë së sistemit. Ky skedar njësi do të trajtojë fillimin e NodeBB deamon. Ekzekutoni sudo vim /etc/systemd/system/nodebb.service
dhe plotësoni skedarin me përmbajtjen e mëposhtme:
[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
SHËNIM: Vendosni shtigjet e emrit të përdoruesit dhe të drejtorisë sipas emrave të zgjedhur.
Aktivizojeni nodebb.service
në rindezje dhe filloni menjëherë nodebb.service
.
sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service
Kontrolloni nodebb.service
statusin.
sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service
Kjo eshte. Shembulli juaj NodeBB tani është në funksionim.