FreeBSD 12 पर NodeBB फोरम कैसे स्थापित करें

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

आवश्यकताएँ

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

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

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

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

uname -ro
# FreeBSD 12.0-RELEASE

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

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

यदि वे आपके सिस्टम पर मौजूद नहीं हैं तो आवश्यक पैकेज स्थापित करें।

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

अपने पसंदीदा उपयोगकर्ता नाम (हम उपयोग करेंगे 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!

समूह के सदस्यों को किसी भी कमांड को निष्पादित करने की अनुमति देने के लिए, visudoकमांड चलाएं और %wheel ALL=(ALL) ALLलाइन को अनकम्प्लीट करें wheel

visudo

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

अब, अपने नए बनाए गए उपयोगकर्ता के साथ स्विच करें su

su - johndoe

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

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

sudo tzsetup

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

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

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

sudo pkg install -y node10 npm-node10

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

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

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

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

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

sudo pkg install -y mongodb40

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

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

MongoDB सक्षम और प्रारंभ करें।

sudo sysrc mongod_enable=yes
sudo service mongod start

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

पहले 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 service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin

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

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

sudo pkg install -y nginx

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

nginx -v
# nginx version: nginx/1.14.2

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

sudo sysrc nginx_enable=yes
sudo service nginx start

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

sudo vim /usr/local/etc/nginx/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अपने डोमेन / होस्टनाम के साथ निर्देश को अपडेट करें ।

फ़ाइल और साथ बाहर निकलने को बचाने :+ W+ Q

अब हमें nodebb.confमुख्य nginx.confफाइल में शामिल करने की आवश्यकता है ।

sudo vim /usr/local/etc/nginx/nginx.confनिम्न पंक्ति को चलाएं और http {}ब्लॉक में जोड़ें।

include nodebb.conf;

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

sudo nginx -t

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

sudo service nginx reload

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 ~

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

/etc/letsencrypt/acme.sh --version
# v2.8.1

के लिए 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 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

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

  • आरएसए: /etc/letsencrypt/forum.example.com
  • ECC / ECDSA /etc/letsencrypt/forum.example.com_ecc:।

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

sudo vim /usr/local/etc/nginx/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 service nginx reload

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

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

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

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

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

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

cd /usr/local/www/nodebb

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

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

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

./nodebb setup

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

./nodebb start

इस कमांड के बाद, आप अपने NodeBB फोरम उदाहरण को एक वेब ब्राउज़र में एक्सेस कर पाएंगे।

PM2 के साथ NodeBB चलाएं

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

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

./nodebb stop

विश्व स्तर पर PM2 स्थापित करें।

sudo npm install pm2 -g

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

pm2 -v
# 3.5.0

NodeBB दस्तावेज़ रूट पर नेविगेट करें।

cd /usr/local/www/nodebb

PM2 के माध्यम से NodeBB प्रारंभ करें।

pm2 start app.js

NodeBB प्रक्रिया को सूचीबद्ध करें।

pm2 ls

उपलब्ध init प्रणाली का पता लगाएं।

pm2 startup

अपने स्टार्टअप हुक को सेट करने के लिए CLI में इस कमांड के ouput को कॉपी और पेस्ट करें।

अपनी प्रक्रिया सूची सहेजें।

pm2 save

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



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 फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ