GNU/Linux >> Belajar Linux >  >> Fedora

Cara Memasang Forum NodeBB di Fedora 29

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 melalui proses penginstalan NodeBB langkah demi langkah pada sistem operasi Fedora 29 dengan menggunakan Nginx sebagai proxy terbalik, MongoDB sebagai database dan acme.sh serta 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 Fedora 29 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 Fedora Anda:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Siapkan zona waktu:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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 dnf check-upgrade || sudo dnf upgrade -y

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

sudo dnf install -y curl wget vim bash-completion git socat

Demi kesederhanaan, nonaktifkan SELinux dan Firewall:

sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service

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 Fedora:

sudo dnf -y install nodejs

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

sudo dnf install -y gcc-c++ make
# or
# sudo dnf groupinstall -y 'Development Tools'

CATATANnpm 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.0
# 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 akan 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 dnf install -y mongodb mongodb-server

Periksa versi MongoDB:

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

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

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

Periksa status Server Database MongoDB dengan menjalankan:

sudo systemctl status mongod.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 konteksnya 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 mongod.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 menginginkan 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 dnf install -y nginx

Setelah penginstalan, Anda dapat memverifikasi versi Nginx dengan menjalankan:

nginx -v
# 1.14.1

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 forum.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

Saat 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 Fedora 29. 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

Fedora
  1. Cara Menginstal Node.js di Fedora 35 / Fedora 34

  2. Cara menginstal Java 17 di Fedora 35

  3. Cara Menginstal Notepad++ di Fedora 35

  1. Cara Memasang Forum NodeBB di CentOS 7

  2. Cara Memasang Forum Vanilla di Fedora 29

  3. Cara Menginstal Wireshark di Fedora 35

  1. Cara Menginstal Wiki.js berbasis NodeJS di Fedora 29

  2. Cara Menginstal Vagrant di Fedora 34

  3. Cara Memasang Forum NodeBB di Debian 9