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.