GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Memasang Forum NodeBB di Ubuntu 18.04 LTS

NodeBB adalah software forum berbasis Node.js yang dibuat untuk web modern. Ini dibuat di database MongoDB atau Redis. Ini menggunakan soket web untuk interaksi instan dan pemberitahuan waktu nyata. NodeBB memiliki banyak fitur modern di luar kotak seperti integrasi jejaring sosial dan diskusi streaming. Fungsionalitas tambahan diaktifkan melalui penggunaan plugin pihak ketiga. NodeBB adalah proyek open source yang dapat ditemukan di Github. Dalam panduan ini, kami akan memandu Anda langkah demi langkah melalui proses penginstalan NodeBB pada sistem operasi Ubuntu 18.04 LTS dengan menggunakan Nginx sebagai reverse proxy, MongoDB sebagai database dan acme.sh dan Let's Encrypt for HTTPS.

Persyaratan

NodeBB membutuhkan perangkat lunak berikut untuk diinstal:

  • Versi Node.js 6 atau lebih besar
  • Versi MongoDB 2.6 atau lebih tinggi atau versi Redis 2.8.9 atau lebih besar
  • Versi Nginx 1.3.13 atau lebih besar
  • Git

CATATAN : Menginstal dependensi NodeBB mungkin memerlukan lebih dari 512 megabyte memori sistem. Direkomendasikan untuk mengaktifkan partisi swap untuk mengimbangi jika sistem Linux Anda tidak memiliki cukup memori.

Prasyarat

  • Sistem Ubuntu 18.04 yang berjalan dengan setidaknya 1 GB atau RAM.
  • Nama domain dengan A /AAAA catatan disiapkan.
  • Pengguna non-root dengan hak istimewa sudo.

Langkah awal

Periksa versi Ubuntu Anda:

lsb_release -ds
# Ubuntu 18.04.1 LTS

Siapkan zona waktu:

sudo dpkg-reconfigure tzdata

Perbarui paket sistem operasi Anda (perangkat lunak). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan dan perbaikan keamanan terbaru untuk paket perangkat lunak default sistem operasi Anda:

sudo apt update && sudo apt upgrade -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Ubuntu:

sudo apt install -y curl wget vim git unzip socat bash-completion

Langkah 1:Instal Node.js dan npm

NodeBB dibuat di atas Node.js. Kami akan memasang disarankan versi untuk NodeBB yaitu versi 8  pada saat penulisan ini. Di Linux, Anda memiliki beberapa opsi penginstalan Node.js:Binari Linux (x86/x64), Kode Sumber atau melalui Manajer Paket. Kami akan menggunakan opsi Manajemen Paket yang membuat pemasangan dan pembaruan Node.js menjadi mudah.

Download dan instal rilis Long-Term Support (LTS) terbaru dari Node.js dari repo Nodesource:

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

Untuk mengompilasi dan menginstal add-on asli dari npm, Anda mungkin juga perlu menginstal alat bantu:

sudo apt install -y build-essential

CATATAN :npm didistribusikan dengan Node.js - yang berarti bahwa saat Anda mengunduh Node.js, Anda secara otomatis menginstal npm di sistem Anda.

Periksa versi Node.js dan npm:

node -v && npm -v
# v10.15.1
# 6.4.1

Npm adalah proyek terpisah dari Node.js, dan cenderung lebih sering diperbarui. Akibatnya, meskipun Anda baru saja mengunduh Node.js (dan karenanya npm), Anda mungkin perlu memperbarui npm Anda. Untungnya, npm tahu cara memperbarui dirinya sendiri! Untuk memperbarui npm Anda, ketik ini ke terminal Anda:

sudo npm install -g [email protected]

Perintah ini akan memperbarui npm ke versi stabil terbaru.

Periksa kembali versi npm dengan:

npm -v
# 6.7.0

Dan itu harus mengembalikan nomor versi terbaru.

Langkah 2:Instal dan konfigurasikan MongoDB

NodeBB membutuhkan database untuk menyimpan datanya, dan mendukung MongoDB dan Redis. Dalam tutorial ini, kami memilih MongoDB sebagai mesin penyimpanan data. Jadi, dalam beberapa langkah berikutnya, kita akan mengunduh dan menginstal database MongoDB dari repositori rpm MongoDB resmi:

Untuk menginstal paket MongoDB versi stabil, jalankan perintah berikut:

sudo apt install -y mongodb

Periksa versi MongoDB:

mongo --version | head -n 1 && mongod --version | head -n 1

Mulai dan aktifkan (setel untuk memulai saat reboot ) Layanan MongoDB:

sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service

Periksa status Server Database MongoDB dengan menjalankan:

sudo systemctl status mongodb.service
# active (running)

Selanjutnya, buat database MongoDB dan pengguna untuk NodeBB.

Hubungkan ke server MongoDB terlebih dahulu.

mongo

Beralih ke admin bawaan basis data.

> use admin

Buat pengguna administratif.

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

CATATAN: Ganti placeholder <Enter a secure password> dengan kata sandi pilihan Anda sendiri.

Tambahkan database baru bernama nodebb .

> use nodebb

Basis data akan dibuat dan konteks dialihkan ke nodebb . Selanjutnya buat nodebb pengguna dengan hak istimewa yang sesuai.

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

CATATAN: Sekali lagi, ganti placeholder <Enter a secure password> dengan kata sandi pilihan Anda sendiri.

Keluar dari cangkang Mongo.

> quit()

Mulai ulang MongoDB dan verifikasi bahwa pengguna administratif yang dibuat sebelumnya dapat terhubung.

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

Jika semuanya berjalan dengan baik, MongoDB Anda harus diinstal dan disiapkan untuk NodeBB. Pada langkah berikutnya, kita akan berurusan dengan penginstalan dan konfigurasi server web.

Langkah 3 - Instal acme.sh klien dan dapatkan sertifikat Let's Encrypt (opsional )

Mengamankan Forum NodeBB Anda dengan HTTPS tidak diperlukan, tetapi ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat TLS dari Let's Encrypt, kami akan menggunakan klien acme.sh. Acme.sh adalah software shell unix murni untuk mendapatkan sertifikat TLS dari Let's Encrypt tanpa ketergantungan.

Unduh dan instal acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Periksa versi acme.sh :

acme.sh --version
# v2.8.0

Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname Anda:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Jika Anda ingin sertifikat palsu untuk pengujian, Anda dapat menambahkan --staging tandai perintah di atas.

Setelah menjalankan perintah di atas, sertifikat your Anda dan kunci akan di:

  • Untuk RSA :/home/username/example.com direktori.
  • Untuk ECC/ECDSA :/home/username/example.com_ecc direktori.

Untuk membuat daftar sertifikat yang dikeluarkan, Anda dapat menjalankan:

acme.sh --list

Buat direktori untuk menyimpan sertifikat Anda. Kami akan menggunakan /etc/letsencrypt direktori.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instal/salin sertifikat ke direktori /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.

Setelah mendapatkan sertifikat keluar dari pengguna root dan kembali ke pengguna sudo normal:

exit

Langkah 4:Instal dan konfigurasikan Nginx

NodeBB dapat bekerja dengan baik dengan banyak server web. Dalam tutorial ini, kami memilih Nginx.

Instal paket Nginx, dengan mengeluarkan perintah berikut:

sudo apt install -y nginx

Setelah penginstalan, Anda dapat memverifikasi versi Nginx dengan menjalankan:

nginx -v

Mulai dan aktifkan (setel untuk memulai saat reboot ) Layanan Nginx:

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

Periksa status server web Nginx dengan menjalankan:

sudo systemctl status nginx.service
# active (running)

NodeBB secara default berjalan pada port 4567 . Untuk menghindari mengetik http://example.com:4567 , kita akan mengkonfigurasi Nginx sebagai reverse proxy untuk aplikasi NodeBB. Setiap permintaan pada port 80 atau 443 (jika SSL digunakan ) akan diteruskan ke port 4567 .

Jalankan sudo vim /etc/nginx/conf.d/nodebb.conf dan konfigurasikan Nginx sebagai proxy terbalik HTTPS.

server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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 Nginx:

sudo nginx -t

Terakhir, agar perubahan diterapkan, kita perlu memuat ulang Nginx:

sudo systemctl reload nginx.service

Langkah 5:Instal dan atur NodeBB

Buat direktori root dokumen tempat NodeBB seharusnya berada:

sudo mkdir -p /var/www/nodebb

Arahkan ke direktori root dokumen:

cd /var/www/nodebb

Ubah kepemilikan /var/www/nodebb direktori ke pengguna_Anda.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

CATATAN:  Ganti your_user pada perintah di atas dengan pengguna non-root yang seharusnya Anda buat sebagai prasyarat untuk tutorial ini .

Kloning repositori NodeBB terbaru ke dalam folder root dokumen:

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

Mulai skrip penyiapan dengan menjalankan aplikasi dengan setup bendera. Jawab setiap pertanyaan:

./nodebb setup

Setelah penyiapan NodeBB selesai, jalankan ./nodebb start untuk memulai server NodeBB Anda secara manual:

./nodebb start

Setelah menjalankan perintah ini, Anda seharusnya dapat mengakses forum baru Anda di browser web Anda:

Langkah 6:Jalankan NodeBB sebagai Layanan Sistem

Ketika dimulai melalui ./nodebb start , NodeBB tidak akan secara otomatis memulai kembali ketika sistem di-boot ulang. Untuk menghindarinya, kita perlu mengatur NodeBB sebagai layanan sistem.

Jika sedang berjalan, hentikan NodeBB:

./nodebb stop

Buat nodebb baru pengguna:

sudo useradd nodebb

Ubah kepemilikan /var/www/nodebb direktori ke nodebb pengguna:

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

Buat nodebb.service file konfigurasi unit systemd. File unit ini akan menangani startup deamon NodeBB. Jalankan sudo vim /etc/systemd/system/nodebb.service dan tambahkan konten di bawah ini:

[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 jalur direktori sesuai dengan nama yang Anda pilih.

Aktifkan nodebb.service saat reboot dan segera mulai nodebb.service:

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

Periksa nodebb.service status:

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

Selamat! Anda telah berhasil menginstal dan menerapkan platform diskusi NodeBB pada sistem Ubuntu 18.04. Anda seharusnya dapat mengakses forum di domain Anda dan berinteraksi dengan forum Anda.

Tautan

  • https://nodebb.org/
  • https://docs.nodebb.org/
  • https://github.com/NodeBB/NodeBB

Ubuntu
  1. Cara Menginstal MongoDB di Ubuntu 18.04

  2. Cara Menginstal NodeBB di Ubuntu 18.04

  3. Cara menginstal MongoDB di Ubuntu 18.04

  1. Cara Menginstal MongoDB di Ubuntu 18.04

  2. Cara Menginstal MongoDB di Ubuntu 20.04

  3. Cara Menginstal MongoDB di Ubuntu 22.04

  1. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 16.04 LTS

  2. Cara menginstal forum XMB di Ubuntu 16.04 LTS

  3. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 18.04 LTS