Cài Đặt Rocket.Chat Trên Ubuntu 16.04

12

Menu bài viết

Rocket.Chat là hệ thống nhắn tin để giao tiếp trong nhóm,cũng giống như Slack. Một số tính năng của nó gồm :

  • Video conferences
  • Help desk chat
  • File sharing
  • Voice messages
  • Link previews

Bài viết này sẽ hướng dẫn bạn đọc cách cài đặt và cấu hình Rocket.Chat Server trên Ubuntu 16.04.

Đầu tiên, ta cần cài đặt các package cần thiết :

# apt install graphicsmagick build-essential

Cài đặt MongoDB :

Hệ thống yêu cầu cần phải có MongoDB, thế nên ta cần cài đặt nó trước. Đầu tiên ta add vào keyserver :

# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Tiếp theo, ta add repository :

# echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Update apt repository và và cài đặt database :

# apt update

# apt install mongodb-org

Mở MongoDB và set cho nó tự động chạy mỗi lần hệ thống boot :

# systemctl start mongod

# systemctl enable mongod

Cài đặt Node.js và npm :

Rocket.Chat yêu cầu Node.js và npm, cả hai đều có sẵn trên repository của Ubuntu. Cài đặt nó bằng code sau :

# apt install nodejs

# apt install npm

Tiếp theo, ta cài n ( tool giúp admin đổi version node ) :

# npm install -g n

Hệ thống Rocket.Chat yêu cầu Node.js 4.5+, vì vậy hãy đảm bảo chọn đúng version 4.5 :

# n 4.5

Để chắc chắn mọi thứ đã sẵn sàng, ta chạy lệnh kiểm tra :

# node –version

Cấu hình MongoDB Replica :

Đây chỉ là bước phụ, tuy nhiên nếu bạn muốn nâng cao hiệu suất của Rocket.Chat, thì bạn nên thực hiện những bước này. Ta sẽ tạo một bản sao Replica MongoDB, sẽ giúp nâng cao tính sẵn sàng cho hệ thống.

Để enable những bản replica, ta edit file mongod.conf :

# $EDITOR /etc/mongod.conf

Tiếp theo, add dòng này vào :

replication:

      replSetName:  "001-rs"

Save, exit và restart lại MongoDB:

# systemctl restart mongod

Tiếp theo, chạy trình shell của nó và bắt đầu tập hợp bản sao :

# mongo

> rs.initiate()

Kết quả trả về sẽ là :

{

  "info2" : "no configuration explicitly specified -- making one",

  "me" : "localhost:27017",

  "info" : "Config now saved locally.  Should come online in about a minute.",

  "ok" : 1

}

Chú ý đến dòng cuối cùng. Nếu 2 thông số là “ok” và “1”, tức là chúng ta đã cấu hình đúng. Mọi số khác trả về đều là cảnh báo lỗi.

Lời nhắc 001-rs:PRIMARY> , tức là nghĩa là MongoDB đang sử dụng replica set.

Thoát ra và add những biến sau vào hệ thống :

export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs

Tiếp theo, restart lại MongoDB :

# systemctl restart mongod

Cài đặt Rocket.Chat :

Đã đến lúc chúng ta cài đặt Rocket.Chat, ở thư mục /var/www, ta tải bản mới nhất :

# cd /var/www

# curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz

Giải nén file :

# tar xzf rocket.chat.tgz

Rename thư mục vừa giải nén :

# mv bundle Rocket.Chat

Tiếp theo, set biến môi trường và chạy Rocket.Chat server bằng dòng lệnh :

# cd Rocket.Chat/programs/server

# npm install

# cd ../..




# export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/

# export MONGO_URL=mongodb://localhost:27017/rocketchat

# export PORT=3000




# node main.js

Rocket.Chat đã được cài đặt và cấu hình, nhưng nó cũng yêu cầu cấu hình đằng sau một webserver. Trong hướng dẫn này, An Ninh Mạng sẽ sử dụng Nginx :

Cài đặt và cấu hình NGINX :

Cài đặt webserver :

# apt install nginx

Tạo thư mục SSL, là vị trí chứa file certificates :

# mkdir -p /etc/nginx/ssl/

Tại thư mục này, ta tạo tiếp một thư mục mới :

# cd /etc/nginx/ssl

# openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocketchat.crt -keyout /etc/nginx/ssl/rocketchat.key

# chmod 400 rocketchat.key

Tiếp theo, tạo một cấu hình Virtual Host :

# $EDITOR /etc/nginx/sites-available/rocketchat

Paste vào những dòng này :

# Upstreams

upstream backend {

    server 127.0.0.1:3000;

}




# Redirect Options

server {

  listen 80;

  server_name chat.mydomain.com;

  # enforce https

  return 301 https://$server_name$request_uri;

}




# HTTPS Server

server {

    listen 443;

    server_name chat.mydomain.com;




    error_log /var/log/nginx/rocketchat.access.log;




    ssl on;

    ssl_certificate /etc/nginx/ssl/rocketchat.crt;

    ssl_certificate_key /etc/nginx/ssl/rocketchat.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE




    location / {

        proxy_pass http://192.168.1.110:3000/;

        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;

    }

}

Lưu, đóng file và kích hoạt cấu hình :

# ln -s /etc/nginx/sites-available/rocketchat /etc/nginx/sites-enabled/rocketchat

Tiếp theo, test NGINX:

# nginx –t

Nếu không có lỗi gì xuất hiện, ta restart lại NGINX:

# systemctl restart nginx

Update biến môi trường và chạy Rocket.Chat :

#cd /var/www/Rocket.Chat/

# export ROOT_URL=https://chat.mydomain.com

# export MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=001-rs

# export PORT=3000

# node main.js

Bước cuối cùng là mở trình duyệt và nhập vào đường dẫn : https://chat.mydomain.com để đăng ký một tài khoản admin mới và kết thúc quá trình cấu hình bằng giao diện đồ họa. Như vậy là hệ thống Rocket.Chat đã sẵn sàng sử dụng.

BÌNH LUẬN

Please enter your comment!
Please enter your name here