Rocket.Chat adalah platform komunikasi tim yang lengkap, alternatif Slack yang dihosting sendiri. Itu dibangun dengan Meteor dan menyediakan berbagai fitur termasuk obrolan helpdesk, konferensi video, berbagi file, pesan suara, API, dan banyak lagi.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan menerapkan Rocket.Chat di server CentOS 7 dengan Nginx sebagai proxy terbalik SSL.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:
- Server CentOS 7, menurut persyaratan sistem resmi Rocket.Chat, Anda memerlukan setidaknya 1G RAM.
- Anda masuk sebagai pengguna dengan hak istimewa sudo.
- Anda memiliki nama domain yang menunjuk ke alamat IP server Anda. Dalam artikel ini, kita akan menggunakan
example.com
. - Anda telah menginstal Nginx, jika belum Anda dapat menginstalnya dengan mengikuti tutorial ini.
- Sertifikat SSL. Anda dapat membuat yang gratis dari Let's Encrypt, atau membelinya dari penyedia lain.
Instal Dependensi #
Instal paket berikut yang diperlukan untuk membangun npm
yang diperlukan modul:
sudo yum install epel-release curl GraphicsMagick gcc-c++
Selanjutnya, instal Node.js
dan npm
dengan mengetik:
sudo yum install -y nodejs npm
Pada saat artikel ini ditulis, versi Node.js yang direkomendasikan untuk Rocket.Chat adalah Node.js v8.11.3.
Keluarkan perintah berikut untuk menginstal n
utilitas dan versi Node.js yang direkomendasikan:
sudo npm install -g inherits n
sudo n 8.11.3
MongoDB adalah database berorientasi dokumen NoSQL dan digunakan oleh Rocket.Chat sebagai penyimpanan data. Rocket.Chat merekomendasikan MongoDB versi 3.6.
Kami akan menginstal MongoDBmenggunakan yum
dari repositori resmi MongoDB.
Buka editor pilihan Anda dan buat file repositori berikut:
sudo nano /etc/yum.repos.d/mongodb-org.repo
Tempel konten berikut ke dalam file:
/etc/yum.repos.d/mongodb-org.repo[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
Simpan file dan tutup editor teks Anda.
Untuk menginstal MongoDB, jalankan perintah berikut:
sudo yum install mongodb-org
Setelah instalasi selesai, aktifkan dan mulai layanan MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Buat Pengguna Sistem Baru #
Buat pengguna dan grup baru, yang akan menjalankan instance Rocket.Chat kami. Untuk mempermudah, kami akan memberi nama pengguna rocket
:
sudo useradd -m -U -r -d /opt/rocket rocket
Tambahkan nginx
pengguna ke grup pengguna baru dan ubah /opt/rocket
izin direktorisehingga Nginx dapat mengaksesnya:
sudo usermod -a -G rocket nginx
sudo chmod 750 /opt/rocket
Menginstal Rocket.Chat #
Beralih ke penggunarocket
dengan mengetik:
sudo su - 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 npm
yang diperlukan paket:
cd Rocket.Chat/programs/server
npm install
Sebelum membuat unit systemd dan menyiapkan proxy terbalik dengan Nginxit, ada baiknya untuk menguji apakah penginstalan berhasil.
Untuk melakukannya, mulailah dengan menyetel variabel lingkungan yang diperlukan:
export PORT=3000
export ROOT_URL=http://example.com:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Selanjutnya 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 |
➔ | |
➔ +---------------------------------------------+
Pada titik ini, Rocket.Chat diinstal pada mesin CentOS 7 Anda. Hentikan server Rocket.Chat dengan CTRL+C
dan lanjutkan dengan langkah berikutnya.
Buat Unit Sistem #
Untuk menjalankan Rocket.Chat sebagai layanan, buat rocketchat.service
file unit di /etc/systemd/system/
direktori:
sudo nano /etc/systemd/system/rocketchat.service
Tempel konten berikut ke dalam file:
/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=http://example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Simpan dan tutup file.
Beri tahu systemd bahwa file unit baru telah dibuat dan mulai layanan Rocket.Chat dengan menjalankan:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Periksa status layanan dengan perintah berikut:
sudo systemctl status rocketchat
Outputnya akan terlihat seperti ini:
● rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
Main PID: 32356 (node)
CGroup: /system.slice/rocketchat.service
└─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Jika tidak ada kesalahan, Anda dapat mengaktifkan layanan Rocket.Chat untuk dimulai secara otomatis saat boot:
sudo systemctl enable rocketchat
Siapkan proxy terbalik dengan Nginx #
Jika Anda mengikuti cara kami menginstal Nginx di CentOS 7 dan cara mengamankan Nginx dengan panduan Let's Encrypt di CentOS 7, Anda seharusnya sudah menginstal dan mengonfigurasi Nginx dengan sertifikat SSL.
Sekarang kita perlu membuat blok server baru untuk instalasi Rocket.Chat kita:
sudo nano /etc/nginx/conf.d/example.com.conf
Tempel konten berikut ke dalam file:
/etc/nginx/conf.d/example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/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;
}
}
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 sebagian besar fitur lain seperti pemberitahuan push hanya akan berfungsi dari 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.