Rocket.Chat adalah platform komunikasi tim sumber terbuka, alternatif Slack yang dihosting sendiri. Ini dikembangkan menggunakan kerangka Meteor dan menyediakan berbagai fitur termasuk obrolan helpdesk, berbagi file, konferensi video, pesan suara, API, dan banyak lagi.
Rocket.Chat adalah solusi sempurna untuk perusahaan dan komunitas yang ingin menghosting sistem obrolan mereka sendiri.
Dalam tutorial ini, kami akan menunjukkan cara menggunakan Rocket.Chat di server Ubuntu 18.04 dan mengonfigurasi Nginx sebagai proxy terbalik SSL.
Prasyarat #
Sebelum melanjutkan dengan tutorial ini, pastikan Anda memiliki prasyarat berikut.
- Server Ubuntu 18.04. Menurut persyaratan sistem Rocket.Chat resmi, Anda memerlukan setidaknya 1G RAM.
- Nama domain yang menunjuk ke alamat IP server Anda. Kami akan menggunakan
chat.example.com
. - Nginx terinstal, dengan mengikuti tutorial ini.
- Anda memiliki sertifikat SSL yang terpasang untuk domain Anda. Anda dapat membuat sertifikat SSL Let's Encrypt gratis dengan mengikuti tutorial ini.
Menginstal Node.js #
Mulailah dengan memperbarui daftar paket sistem Anda:
sudo apt update
Instal Node.js, npmand semua dependensi lain yang diperlukan untuk membangun paket npm dari sumber:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
Pada saat artikel ini ditulis, versi Node.js yang direkomendasikan untuk Rocket.Chat adalah Node.js v8.11.3.
Kami akan menggunakan n
, paket npm yang memungkinkan kita mengelola versi Node.js secara interaktif.
Keluarkan perintah berikut untuk menginstal n
dan versi Node.js yang direkomendasikan:
sudo npm install -g inherits n
sudo n 8.11.3
Menginstal MongoDB #
MongoDB adalah database berorientasi dokumen NoSQL dan digunakan oleh Rocket.Chat sebagai penyimpanan data.
Kami akan menginstal MongoDB dari repositori resmi MongoDB.
Impor kunci publik MongoDB dan aktifkan repositori resmi MongoDB dengan perintah berikut:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Setelah repositori apt diaktifkan, perbarui daftar paket dan instal MongoDB dengan mengetik:
sudo apt update
sudo apt install mongodb-org
Setelah instalasi selesai, aktifkan dan mulai layanan MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Buat Pengguna Sistem baru #
Untuk membuat pengguna dan grup baru bernama rocket
, yang akan menjalankan instance Rocket.Chat, ketik:
sudo useradd -m -U -r -d /opt/rocket rocket
Tambahkan www-data
pengguna ke grup pengguna baru dan ubah /opt/rocket
izin direktorisehingga Nginx dapat mengakses instalasi Rocket.Chat:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Menginstal Rocket.Chat #
Ubah ke penggunarocket
:
sudo su - rocket
Perintah berikut mengasumsikan bahwa Anda sedang beroperasi sebagai pengguna rocket
.
Unduh Rocket.Chat versi stabil terbaru dengan curl:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Setelah unduhan selesai, ekstrak arsip dan ganti nama direktori menjadi Rocket.Chat
:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Ubah menjadi Rocket.Chat/programs/server
direktori dan instal semua paket npm yang diperlukan:
cd Rocket.Chat/programs/server
npm install
Untuk menguji instalasi kami sebelum membuat unit systemd dan menyiapkan proxy terbalik dengan Nginx, kami akan mengatur variabel lingkungan yang diperlukan dan memulai server Rocket.Chat
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Ubah kembali menjadi Rocket.Chat
direktori dan mulai Rocket.Chat
server dengan mengeluarkan perintah berikut:
cd ../../
node main.js
Jika tidak ada kesalahan, Anda akan melihat output berikut:
➔ +---------------------------------------------+
➔ | SERVER RUNNING |
➔ +---------------------------------------------+
➔ | |
➔ | Rocket.Chat Version: 0.71.1 |
➔ | NodeJS Version: 8.11.3 - x64 |
➔ | Platform: linux |
➔ | Process Port: 3000 |
➔ | Site URL: http://0.0.0.0:3000/ |
➔ | ReplicaSet OpLog: Disabled |
➔ | Commit Hash: e73dc78ffd |
➔ | Commit Branch: HEAD |
➔ | |
➔ +---------------------------------------------+
Hentikan server Rocket.Chat dengan CTRL+C
.
Beralih kembali ke pengguna sudo Anda dengan mengetikkan exit
dan lanjutkan dengan langkah berikutnya.
Buat unit Systemd #
Untuk menjalankan Rocket.Chat sebagai layanan, kami akan membuat rocketchat.service
file unit di /etc/systemd/system/
direktori.
sudo nano /etc/systemd/system/rocketchat.service
Tempel konten berikut:
/etc/systemd/system/rocketchat.service[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target
[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=https://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Beri tahu systemd bahwa kami telah membuat file unit baru dan memulai layanan Rocket.Chat dengan menjalankan:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Periksa status layanan dengan mengetik:
sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Terakhir, aktifkan layanan Rocket.Chat untuk dimulai secara otomatis saat boot dengan perintah berikut:
sudo systemctl enable rocketchat
Siapkan proxy terbalik dengan Nginx #
Jika Anda mengikuti panduan cara menginstal Nginx di Ubuntu 18.04dan cara mengamankan Nginx dengan Let's Encrypt di Ubuntu 18.04, Anda seharusnya sudah menginstal dan mengonfigurasi Nginx dengan sertifikat SSL.
Sekarang kita perlu membuat blok server Nginx baru untuk instalasi Rocket.Chat.
Buka editor teks Anda dan buat file berikut:
sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name chat.example.com;
include snippets/letsencrypt.conf;
return 301 https://chat.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
include snippets/ssl.conf;
access_log /var/log/nginx/chat.example.com-access.log;
error_log /var/log/nginx/chat.example.com-error.log;
location / {
proxy_pass http://rocketchat_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;
}
}
Aktifkan blok server baru dengan membuat tautan simbolis dari file ke direktori yang mendukung situs:
sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/
Muat ulang layanan Nginx agar perubahan diterapkan:
sudo systemctl reload nginx
Mengonfigurasi Rocket.Chat #
Buka browser Anda dan ketik:http://chat.example.com
.
Dengan asumsi bahwa instalasi berhasil, Anda akan disajikan dengan Rocket.Chat Setup Wizard yang akan memandu Anda melalui pengaturan pengguna admin pertama Anda, mengkonfigurasi organisasi Anda dan mendaftarkan server Anda untuk menerima pemberitahuan push gratis dan banyak lagi.
Bagian pertama dari wizard Pengaturan Awal akan meminta Anda untuk mengatur pengguna Admin Anda:
Setelah Anda selesai memasukkan info Admin, klik tombol Continue
tombol dan pada langkah berikutnya masukkan info organisasi Anda:
Bagian ketiga dari wizard Pengaturan Awal akan meminta Anda untuk memasukkan informasi server:
Pada langkah berikutnya, Anda akan ditanya apakah Anda ingin menggunakan gateway dan proxy Rocket.Chat yang telah dikonfigurasikan sebelumnya. Memilih opsi ini akan memberi Anda akses ke pasar Rocket.Chat Apps dan fitur lain seperti pemberitahuan push akan bekerja di luar kotak .
Tentukan pilihan Anda, klik tombol Continue
tombol, dan Anda akan diarahkan ke halaman berikut yang menunjukkan bahwa ruang kerja Anda siap digunakan:
Klik pada Go to your workspace
dan Anda akan diarahkan ke dasbor Rocket.Chat yang masuk sebagai pengguna admin.