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
- Server ubuntu baru
- Akses root atau akun istimewa sudo
- Nama domain yang ditunjuk dengan IP server
- 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.