Ubuntu 18.04 LTS पर NodeBB फोरम कैसे स्थापित करें

NodeBB एक Node.js आधारित फोरम है। यह त्वरित बातचीत और वास्तविक समय सूचनाओं के लिए वेब सॉकेट का उपयोग करता है। NodeBB स्रोत कोड सार्वजनिक रूप से Github पर होस्ट किया गया है । यह मार्गदर्शिका आपको NodeBB इंस्टालेशन प्रक्रिया के माध्यम से Node.js, MongoDB का एक डेटाबेस के रूप में उपयोग करके NodeBB इंस्टॉलेशन प्रक्रिया के माध्यम से चलेगी, Nginx को रिवर्स प्रॉक्सी के रूप में और SSL प्रमाणपत्रों के लिए Acme.sh के रूप में।

आवश्यकताएँ

NodeBB को स्थापित करने के लिए निम्नलिखित सॉफ्टवेयर की आवश्यकता होती है:

  • Git
  • Node.js संस्करण 6.9.0 या बाद का संस्करण
  • MongoDB संस्करण 2.6 या बाद का
  • nginx
  • न्यूनतम 1024MB RAM
  • डोमेन नाम A/ AAAAरिकॉर्ड सेट अप के साथ

शुरू करने से पहले

Ubuntu संस्करण की जाँच करें।

lsb_release -ds
# Ubuntu 18.04 LTS

एक्सेस और स्विच के non-rootसाथ एक नया उपयोगकर्ता खाता बनाएं sudo

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

नोट : अपने उपयोगकर्ता नाम के साथ बदलें johndoe

टाइमजोन सेट करें।

sudo dpkg-reconfigure tzdata

सुनिश्चित करें कि आपका सिस्टम पुराना है।

sudo apt update && sudo apt upgrade -y

आवश्यक पैकेज स्थापित करें।

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

Node.js स्थापित करें

NodeBB Node.js द्वारा संचालित है, और इसलिए इसे स्थापित करने की आवश्यकता है। Node.js के वर्तमान एलटीएस संस्करण की स्थापना की सिफारिश की जाती है।

NodeSj रिपॉजिटरी से Node.js स्थापित करें।

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

Node.js और npm की स्थापना को सत्यापित करें।

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

MongoDB स्थापित करें और कॉन्फ़िगर करें

MongoDB NodeBB के लिए डिफ़ॉल्ट डेटाबेस है।

MongoDB स्थापित करें।

sudo apt install -y mongodb

संस्करण की जाँच करें।

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

NodeBB के लिए एक MongoDB डेटाबेस और उपयोगकर्ता बनाएँ।

पहले MongoDB सर्वर से कनेक्ट करें।

mongo

अंतर्निहित adminडेटाबेस पर स्विच करें।

> use admin

एक प्रशासनिक उपयोगकर्ता बनाएँ।

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

नोट: प्लेसहोल्डर <Enter a secure password>को अपने चुने हुए पासवर्ड से बदलें ।

नामक एक नया डेटाबेस जोड़ें nodebb

> use nodebb

डेटाबेस बनाया जाएगा और संदर्भ स्विच किया जाएगा nodebb। अगला nodebbउपयोगकर्ता उपयुक्त विशेषाधिकार के साथ बनाएँ ।

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

नोट: फिर से, प्लेसहोल्डर <Enter a secure password>को अपने चुने हुए पासवर्ड से बदलें ।

मानगो शेल से बाहर निकलें।

> quit()

MongoDB को पुनरारंभ करें और सत्यापित करें कि पहले बनाया गया प्रशासनिक उपयोगकर्ता कनेक्ट हो सकता है।

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

स्थापित करें और Nginx को कॉन्फ़िगर करें

आधिकारिक Nginx रिपॉजिटरी से 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/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

संस्करण की जाँच करें।

sudo nginx -v
# nginx version: nginx/1.15.0

सक्षम करें और Nginx शुरू करें।

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

NodeBB डिफ़ॉल्ट रूप से पोर्ट पर चलता है 4567। बचने के लिए टाइप करने के लिए http://example.com:4567, हम NginB को NodeBB एप्लिकेशन के लिए एक रिवर्स प्रॉक्सी के रूप में कॉन्फ़िगर करेंगे। पोर्ट 80या 443(यदि SSL का उपयोग किया जाता है) पर प्रत्येक अनुरोध को पोर्ट के लिए भेजा जाएगा 4567

sudo vim /etc/nginx/conf.d/nodebb.confनीचे दिए गए मूल रिवर्स प्रॉक्सी कॉन्फ़िगरेशन के साथ इसे चलाएँ और पॉप्युलेट करें।

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

}

नोट: अपने डोमेन / होस्टनाम के साथ निर्देश को अपडेट करें server_name

कॉन्फ़िगरेशन की जाँच करें।

sudo nginx -t

रीलोडेड नेग्नेक्स।

sudo systemctl reload nginx.service

Acme.sh क्लाइंट स्थापित करें और लेट्स एनक्रिप्ट सर्टिफिकेट (वैकल्पिक) प्राप्त करें

HTTPS के साथ अपने फ़ोरम को सुरक्षित रखना आवश्यक नहीं है, लेकिन यह आपकी साइट के ट्रैफ़िक को सुरक्षित करेगा। Acme.sh एक शुद्ध यूनिक्स शेल सॉफ्टवेयर है जो शून्य निर्भरता वाले चलो एनक्रिप्ट से एसएसएल प्रमाणपत्र प्राप्त करने के लिए है।

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

संस्करण की जाँच करें।

acme.sh --version
# v2.7.9

के लिए RSA और ECDSA प्रमाणपत्र प्राप्त करें 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

उपरोक्त आदेशों को चलाने के बाद, आपके प्रमाणपत्र और कुंजियाँ निम्नलिखित निर्देशिकाओं में होंगी:

  • आरएसए: /etc/letsencrypt/forum.example.com
  • ईसीसी / ECDSA: /etc/letsencrypt/forum.example.com_ecc

लेट्स एनक्रिप्ट से प्रमाण पत्र प्राप्त करने के बाद, हमें उन्हें उपयोग करने के लिए Nginx को कॉन्फ़िगर करने की आवश्यकता है।

sudo vim /etc/nginx/conf.d/nodebb.confफिर से चलाएँ और Nginx को 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";
  }

}

कॉन्फ़िगरेशन की जाँच करें।

sudo nginx -t

रीलोडेड नेग्नेक्स।

sudo systemctl reload nginx.service

NodeBB स्थापित करें

डॉक्यूमेंट रूट डायरेक्टरी बनाएं।

sudo mkdir -p /var/www/nodebb

/var/www/nodebbनिर्देशिका का स्वामित्व बदलें johndoe

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

दस्तावेज़ रूट फ़ोल्डर में नेविगेट करें।

cd /var/www/nodebb

दस्तावेज़ रूट फ़ोल्डर में NodeBB के नवीनतम संस्करण को क्लोन करें।

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

एनओडीबीबी सेटअप कमांड चलाएं और संकेत दिए जाने पर प्रत्येक प्रश्न का उत्तर दें।

./nodebb setup

NodeBB सेटअप पूर्ण होने के बाद, ./nodebb startअपने NodeBB सर्वर को मैन्युअल रूप से प्रारंभ करने के लिए चलाएँ ।

./nodebb start

इस कमांड के बाद, आप अपने वेब ब्राउज़र में अपने फ़ोरम तक पहुँच सकेंगे।

NodeBB को सिस्टम सेवा के रूप में चलाएँ

जब ./nodebb startसिस्टम के माध्यम से रिबूट होता है, तो NodeBB स्वतः शुरू नहीं होगा। उससे बचने के लिए, हमें NodeBB को एक सिस्टम सेवा के रूप में सेटअप करना होगा।

यदि चल रहा है, तो NodeBB को रोकें।

./nodebb stop

एक नया unprivileged nodebbउपयोगकर्ता बनाएँ ।

sudo adduser nodebb

/var/www/nodebbनिर्देशिका के स्वामित्व को nodebbउपयोगकर्ता में बदलें ।

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

nodebb.serviceSystemd Unit config फाइल बनाएं । यह यूनिट फ़ाइल NodeBB बहरीन के स्टार्टअप को संभालेगी। sudo vim /etc/systemd/system/nodebb.serviceफ़ाइल को निम्न सामग्री से च��ाएँ और भरें:

[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

नोट: अपने चुने हुए नामों के अनुसार उपयोगकर्ता नाम और निर्देशिका पथ सेट करें।

nodebb.serviceरिबूट पर सक्षम करें और तुरंत शुरू करें nodebb.service

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

nodebb.serviceस्थिति की जाँच करें ।

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

बस। आपका NodeBB उदाहरण अब ऊपर और चल रहा है।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ