Cara Memasang forum NodeBB di Debian 9

NodeBB adalah forum berasaskan Node.js. Ia menggunakan soket web untuk interaksi segera dan pemberitahuan masa nyata. Kod sumber NodeBB dihoskan secara umum di Github . Panduan ini akan memandu anda melalui proses pemasangan NodeBB pada contoh Debian 9 Vultr yang baru menggunakan Node.js, MongoDB sebagai pangkalan data, Nginx sebagai proksi terbalik dan Acme.sh untuk sijil SSL.

Keperluan

NodeBB memerlukan perisian berikut dipasang:

  • Git
  • Versi Node.js 6.9.0 atau lebih baru
  • MongoDB versi 2.6 atau lebih baru
  • Nginx
  • Minimum 1024MB RAM
  • Nama domain dengan A/ AAAArekod disediakan

Sebelum awak bermula

Semak versi Debian.

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

Pastikan sistem anda terkini.

apt update && apt upgrade -y

Pasang pakej yang diperlukan.

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

Buat non-rootakaun pengguna baru dengan sudoakses dan beralih kepadanya.

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

NOTA : Gantikan johndoedengan nama pengguna anda.

Sediakan zon waktu.

sudo dpkg-reconfigure tzdata

Pasang Node.js

NodeBB didorong oleh Node.js, dan oleh itu ia perlu dipasang. Disarankan pemasangan Node.js versi LTS semasa.

Pasang Node.js dari repositori NodeSource.

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

Sahkan pemasangan Node.js dan npm.

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

Pasang dan konfigurasi MongoDB

MongoDB adalah pangkalan data lalai untuk NodeBB.

Pasang MongoDB dari repositori MongoDB rasmi.

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

Semak versi.

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

Mulakan dan dayakan MongoDB.

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

Buat pangkalan data MongoDB dan pengguna untuk NodeBB.

Sambungkan ke MongoDB.

mongo

Beralih ke adminpangkalan data terbina dalam .

> use admin

Buat pengguna pentadbiran.

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

CATATAN: Ganti tempat letak <Enter a secure password>dengan kata laluan pilihan anda sendiri.

Tambah pangkalan data baru yang dipanggil nodebb.

> use nodebb

Pangkalan data akan dicipta dan konteks dihidupkan nodebb. Seterusnya, buat nodebbpengguna dengan keistimewaan yang sesuai.

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

CATATAN: Sekali lagi, ganti ruang letak <Enter a secure password>dengan kata laluan yang anda pilih sendiri.

Keluar dari shell Mongo.

> quit()

Restart MongoDB dan sahkan bahawa pengguna pentadbiran yang dibuat lebih awal boleh menyambung.

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

Pasang dan konfigurasikan Nginx

Pasang versi utama utama Nginx dari repositori Nginx rasmi.

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

Semak versi.

sudo nginx -v
# nginx version: nginx/1.15.0

Dayakan dan mulailah Nginx.

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

NodeBB, secara lalai, berjalan di port 4567. Untuk mengelakkan menaip http://example.com:4567, kami akan mengkonfigurasi Nginx sebagai proksi terbalik untuk aplikasi NodeBB. Setiap permintaan di port 80atau 443(jika SSL digunakan) akan diteruskan ke port 4567.

Jalankan sudo vim /etc/nginx/conf.d/nodebb.confdan isi dengan konfigurasi proksi terbalik asas seperti di bawah.

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

}

Dalam konfigurasi di atas, kemas kini server_namearahan dengan nama domain / host anda.

Periksa konfigurasi.

sudo nginx -t

Muat semula Nginx.

sudo systemctl reload nginx.service

Pasang klien Acme.sh dan dapatkan Sijil Encik Sijil (pilihan)

Tidak menjamin keselamatan forum anda dengan HTTPS, tetapi ia akan menjamin lalu lintas laman web anda. Acme.sh adalah perisian shell Unix tulen untuk mendapatkan sijil SSL dari Let's Encrypt dengan kebergantungan sifar.

Muat turun dan pasang 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

Semak versi.

acme.sh --version
# v2.7.9

Dapatkan sijil RSA dan ECDSA untuk 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

Selepas menjalankan arahan di atas, sijil dan kunci anda akan berada di direktori berikut:

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

Selepas mendapatkan sijil dari Let's Encrypt, kita perlu mengkonfigurasi Nginx untuk menggunakannya.

Jalankan sudo vim /etc/nginx/conf.d/nodebb.conflagi dan konfigurasikan Nginx sebagai proksi terbalik 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";
  }

}

Periksa konfigurasi.

sudo nginx -t

Muat semula Nginx.

sudo systemctl reload nginx.service

Pasang NodeBB

Buat direktori root dokumen.

sudo mkdir -p /var/www/nodebb

Tukar pemilikan /var/www/nodebbdirektori ke johndoe.

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

Navigasi ke folder root dokumen.

cd /var/www/nodebb

Klon NodeBB terkini ke folder root dokumen.

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

Jalankan arahan persediaan NodeBB dan jawab setiap soalan apabila diminta.

./nodebb setup

Setelah persediaan NodeBB selesai, jalankan ./nodebb startuntuk memulakan pelayan NodeBB anda secara manual.

./nodebb start

Selepas arahan ini, anda akan dapat mengakses forum anda dalam pelayar web anda.

Jalankan NodeBB sebagai Perkhidmatan Sistem

Apabila dimulakan melalui ./nodebb start, NodeBB tidak akan dimulakan semula secara automatik semasa sistem dihidupkan semula. Untuk mengelakkannya, kita perlu menyediakan NodeBB sebagai perkhidmatan sistem.

Sekiranya berjalan, hentikan NodeBB.

./nodebb stop

Buat nodebbpengguna baru :

sudo adduser nodebb

Tukar pemilikan /var/www/nodebbdirektori ke nodebb.

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

Buat nodebb.servicefail sistem konfigurasi unit. Fail unit ini akan mengendalikan permulaan NodeBB deamon. Jalankan sudo vim /etc/systemd/system/nodebb.servicedan isi fail dengan kandungan berikut:

[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

CATATAN: Tetapkan nama pengguna dan laluan direktori mengikut nama yang anda pilih.

Dayakan nodebb.servicepada reboot dan segera bermula nodebb.service.

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

Semak nodebb.servicestatusnya.

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

Itu sahaja. Instance NodeBB anda kini dan berjalan.



Leave a Comment

Sediakan NFS Share di Debian

Sediakan NFS Share di Debian

NFS adalah sistem fail berasaskan rangkaian yang membolehkan komputer mengakses fail di seluruh rangkaian komputer. Panduan ini menerangkan bagaimana anda boleh mendedahkan folder di atas NF

Menggunakan Paparan MySQL pada Debian 7

Menggunakan Paparan MySQL pada Debian 7

Pengenalan MySQL mempunyai ciri hebat yang dikenali sebagai pandangan. Paparan adalah pertanyaan yang disimpan. Anggap mereka sebagai alias untuk pertanyaan yang panjang. Dalam panduan ini,

Menyiapkan Chroot di Debian

Menyiapkan Chroot di Debian

Artikel ini akan mengajar anda cara menyediakan penjara chroot di Debian. Saya menganggap bahawa anda menggunakan Debian 7.x. Sekiranya anda menjalankan Debian 6 atau 8, ini mungkin berfungsi,

Cara Memasang PiVPN pada Debian

Cara Memasang PiVPN pada Debian

Pengenalan Cara mudah untuk menyediakan pelayan VPN di Debian adalah dengan PiVPN. PiVPN adalah pemasang dan pembungkus untuk OpenVPN. Ini membuat perintah mudah untuk anda

Cara Pasang Edisi Komuniti GitLab (CE) 11.x pada Debian 9

Cara Pasang Edisi Komuniti GitLab (CE) 11.x pada Debian 9

Menggunakan Sistem Berbeza? Sejak GitHub diambil alih oleh Microsoft, sebilangan besar pembangun telah merancang untuk memindahkan repositori kod mereka sendiri dari github.co

Pasang PBX dalam Flash 5 pada Debian 8

Pasang PBX dalam Flash 5 pada Debian 8

PBX In A Flash 5 (PIAF5) adalah sistem operasi berasaskan Debian 8 yang menjadikan Vultr VPS anda menjadi PBX lengkap. Ia mempunyai ciri-ciri berikut, dan banyak lagi.

Cara Membangun Brotli Dari Sumber pada Debian 9

Cara Membangun Brotli Dari Sumber pada Debian 9

Menggunakan Sistem Berbeza? Brotli adalah kaedah pemampatan baru dengan nisbah mampatan yang lebih baik daripada Gzip. Kod sumbernya dihoskan secara umum di Github. Thi

Pasang Lynis di Debian 8

Pasang Lynis di Debian 8

Pengenalan Lynis adalah alat audit sistem sumber terbuka yang percuma yang digunakan oleh banyak pentadbir sistem untuk mengesahkan integriti dan mengeraskan sistem mereka. Saya

Cara Memasang Neos CMS pada Debian 9

Cara Memasang Neos CMS pada Debian 9

Menggunakan Sistem Berbeza? Neos adalah Platform Aplikasi Kandungan dengan CMS dan kerangka aplikasi di terasnya. Panduan ini akan menunjukkan cara pemasangan

Cara Memasang InvoicePlane pada Debian 9

Cara Memasang InvoicePlane pada Debian 9

Menggunakan Sistem Berbeza? InvoicePlane adalah aplikasi invois sumber bebas dan terbuka. Kod sumbernya boleh didapati di repositori Github ini. Panduan ini

Cara Memasang BookStack pada Debian 9

Cara Memasang BookStack pada Debian 9

Menggunakan Sistem Berbeza? BookStack adalah platform yang mudah dihoskan sendiri, mudah digunakan untuk mengatur dan menyimpan maklumat. BookStack adalah percuma dan terbuka

Cara Pasang Matomo Analytics pada Debian 9

Cara Pasang Matomo Analytics pada Debian 9

Menggunakan Sistem Berbeza? Matomo (dahulunya Piwik) adalah platform analitik sumber terbuka, alternatif terbuka kepada Google Analytics. Sumber Matomo dihoskan o

Cara Memasang X-Cart 5 pada Debian 10

Cara Memasang X-Cart 5 pada Debian 10

Menggunakan Sistem Berbeza? X-Cart adalah platform eCommerce sumber terbuka yang sangat fleksibel dengan banyak ciri dan integrasi. Kod sumber X-Cart adalah hoste

Pantau Status Pelayan Debian dengan Munin

Pantau Status Pelayan Debian dengan Munin

Munin adalah alat pemantauan untuk meninjau proses dan sumber di mesin anda dan menyampaikan maklumat dalam grafik melalui antara muka web. Gunakan ikutan

Cara Memasang Pembaca RSS Tiny Tiny pada Debian 9 LAMP VPS

Cara Memasang Pembaca RSS Tiny Tiny pada Debian 9 LAMP VPS

Menggunakan Sistem Berbeza? Tiny Tiny RSS Reader adalah pembaca berita dan agregator suapan berita (RSS / Atom) berasaskan laman web bebas dan terbuka sumber bebas dan terbuka, yang direka untuk semua

Tambahkan Julat Alamat IP ke Pelayan Anda (CentOS / Ubuntu / Debian)

Tambahkan Julat Alamat IP ke Pelayan Anda (CentOS / Ubuntu / Debian)

Pengenalan Dalam tutorial ini, kita akan membahas proses penambahan keseluruhan rangkaian / subnet IP ke pelayan Linux yang menjalankan CentOS, Debian, atau Ubuntu. Proses

Menyiapkan Counter Strike: Sumber pada Debian

Menyiapkan Counter Strike: Sumber pada Debian

Dalam panduan ini, kami akan menyiapkan Counter Strike: Server permainan sumber di Debian 7. Perintah ini diuji pada Debian 7 tetapi mereka juga harus berfungsi

Cara Memasang Revolusi MODX pada VPS Debian 9 LAMP

Cara Memasang Revolusi MODX pada VPS Debian 9 LAMP

Menggunakan Sistem Berbeza? MODX Revolution adalah Sistem Pengurusan Kandungan (CMS) bertaraf perusahaan yang pantas, fleksibel, berskala, bebas dan terbuka, bertulis i

Cara Memasang Dolibarr pada Debian 9

Cara Memasang Dolibarr pada Debian 9

Menggunakan Sistem Berbeza? Dolibarr adalah perancangan sumber perusahaan sumber terbuka (ERP) dan pengurusan hubungan pelanggan (CRM) untuk perniagaan. Dolibarr

Pasang Mailcow pada Debian 7

Pasang Mailcow pada Debian 7

Pengenalan Mailcow adalah suite mailserver ringan berdasarkan pelbagai pakej, seperti DoveCot, Postfix dan banyak pakej sumber terbuka yang lain. Mailcow dll

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut