GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal Rocket.chat dengan nginx reverse proxy di Ubuntu 20.04

Jika Anda mencari platform obrolan self-hosted open-source maka Rocketchat bisa menjadi pilihan terbaik. Obrolan roket dapat digunakan sebagai alternatif saluran komunikasi yang berbeda seperti slack, mattermost dll. Obrolan roket hadir dengan berbagai fitur seperti obrolan grup, konferensi video, dan Anda dapat mengintegrasikan obrolan langsung dengan platform lain. Dalam artikel ini, kita akan mempelajari cara menyiapkan sistem Rocketchat yang dihosting sendiri dengan mari mengenkripsi sertifikat SSL.

Prasyarat

  1. Server ubuntu baru
  2. Akses root atau akun istimewa sudo
  3. Nama domain yang ditunjuk dengan IP server
  4. Koneksi internet untuk mengunduh aplikasi

Instal paket dan dependensi yang diperlukan

Sebelum menginstal paket, perbarui sistem Ubuntu menggunakan perintah berikut

$ sudo apt-get update -y

Setelah pembaruan sistem selesai, konfigurasikan apt untuk menginstal paket MongoDB menggunakan perintah berikut.

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Keluaran :

Untuk mengkonfigurasi Node.js agar dapat menginstal menggunakan apt manajer paket jalankan perintah berikut.

$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Keluaran:

Sekarang instal alat build Nodejs, MongoDB, dan graphicsmagick :

$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

Keluaran :

Sekarang instal mewarisi dan n, dan versi simpul yang diperlukan oleh Rocketchat.

$ sudo npm install -g inherits n && sudo n 12.18.4

Untuk memeriksa versi Nodejs yang diinstal, jalankan perintah berikut.

$ node --version

Keluaran:

v12.18.4

Instal Rocketchat

Kami telah menginstal dependensi yang diperlukan. Sekarang pada langkah ini, kita akan mengunduh aplikasi Rocket Chat dan menginstalnya di Ubuntu 20.04.

Unduh versi terbaru Rocketchat menggunakan perintah berikut.

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp

Keluaran :

Ekstrak aplikasi yang diunduh. Anda dapat memilih direktori yang Anda sukai untuk menyimpan file yang diekstrak. Dalam contoh ini, saya telah mengekstrak file di /tmp direktori.

$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp

Sekarang instal Rocketchat. Dalam artikel ini /opt direktori digunakan untuk instalasi. Anda dapat memilih direktori mana saja.

$ cd /tmp/bundle/programs/server && npm install

Keluaran:

$ sudo mv /tmp/bundle /opt/Rocket.Chat

Konfigurasikan layanan Rocket.Chat

Buat pengguna rocketchat, atur izin yang benar ke direktori aplikasi Rocket.Chat dan buat layanan Rocket.Chat.

$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Untuk membuat rocketchat.service, jalankan perintah berikut di terminal Anda

cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Contoh:

Sekarang kita perlu menyiapkan mesin penyimpanan MongoDB dan replikasi. Setelah ini, aktifkan dan mulai mongoDB sebagai:

$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
$ mongo --eval "printjson(rs.initiate())"

Keluaran :

Sekarang mulai dan aktifkan layanan Rocket.Chat menggunakan perintah berikut:

$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Verifikasi status layanan Rocket.Chat”

$ sudo systemctl status rocketchat

Keluaran:

Instalasi Nginx dan Konfigurasi proxy terbalik

Untuk mengkonfigurasi nginx reverse proxy untuk Rocket.Chat, instal nginx menggunakan perintah berikut

$ sudo apt install nginx

Buat konfigurasi host virtual nginx untuk rocketchat.

$ sudo nano /etc/nginx/conf.d/rocketchat.conf

Sekarang rekatkan konten berikut dan simpan file

upstream backend {
server 127.0.0.1:3000;
}

server {
listen 80;

server_name your_rocketchat_domain_name;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;

location / {
proxy_pass http://backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}

Periksa file konfigurasi nginx

$ sudo nginx -t

Mulai ulang dan aktifkan layanan nginx

$ sudo systemctl restart nginx
$ sudo systemctl enable nginx

Sekarang akses domain rocketchat Anda sebagai

http://domain_rocketchat_domain

Anda akan mendapatkan wizard pengaturan web, selesaikan dan mulai menggunakan Rocket.Chat

Nginx sebagai proxy terbalik SSL

Kami mengonfigurasi Rocket.Chat hanya dengan proxy terbalik HTTP. Untuk mengonfigurasi nginx sebagai proxy terbalik SSL, Anda memerlukan file sertifikat. Edit file nginx vhost dan tempel konten berikut.

$ sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend {
server 127.0.0.1:3000;
}

server {
listen 443 ssl;
Server_name your_rocketchat_domain_name;
client_max_body_size 200M;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
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 https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}

Catatan :

Buat atau beli sertifikat ssl dan arahkan direktori file sertifikat Anda ke parameter konfigurasi berikut.

ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]

Periksa file konfigurasi nginx

sudo nginx -t

Mulai ulang layanan nginx

sudo systemctl restart nginx

Mengakses Rocketchat

Setelah proxy terbalik dikonfigurasi, Anda dapat mengakses Rocket.Chat Anda menggunakan URL sebagai:

https://you_rocket_chat_domain

Anda akan mendapatkan wizard pengaturan web Rocket.Chat. Selesaikan penyiapan dan mulai gunakan Rocket.Chat yang dihosting sendiri.

Kesimpulan

Pada artikel ini, kita telah mempelajari cara menginstal dan mengonfigurasi obrolan Rocket yang dihosting sendiri di Ubuntu 20.04. Selain itu, saya telah membahas cara menginstal dan mengonfigurasi nginx untuk proxy terbalik dengan mari mengenkripsi sertifikat SSL.


Ubuntu
  1. Cara Menginstal Odoo 11 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  2. Cara Menginstal Flectra di Ubuntu 20.04 dengan Nginx sebagai Proxy Terbalik

  3. Cara Menginstal Odoo 12 di Ubuntu 18.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Menginstal Nginx di Ubuntu 16.04

  2. Cara Memasang Ansible AWX dengan Nginx Reverse Proxy di Ubuntu 18.04 LTS

  3. Cara Menginstal Odoo 10 di Ubuntu 16.04 dengan Nginx sebagai Proxy Terbalik

  1. Cara Menginstal Server Rocket.Chat dengan Nginx di Ubuntu 16.04

  2. Cara Memasang Varnish Reverse Proxy dengan Nginx di Ubuntu 16.04 LTS

  3. Cara menginstal Nginx sebagai Reverse Proxy untuk Apache di Ubuntu 15.10