Cách cài đặt Rocket.Chat Server với Nginx trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Rocket.Chat là giải pháp trò chuyện trực tuyến miễn phí và mã nguồn mở cho giao tiếp nhóm, cho phép bạn xây dựng slack của riêng mình như trò chuyện trực tuyến. Rocket.Chat dựa trên Javascript, được phát triển bằng khuôn khổ Meteor full stack. Rocket.Chat là giải pháp tuyệt vời cho các công ty muốn xây dựng nền tảng trò chuyện riêng tư của riêng mình.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách xây dựng máy chủ trò chuyện của riêng bạn bằng Rocket.Chat. Tôi sẽ sử dụng máy chủ Ubuntu LTS 16.04 mới nhất để cài đặt và Nginx làm proxy ngược cho ứng dụng Rocket.Chat.



Điều kiện tiên quyết
  • Ubuntu 16.04
  • Quyền root

Bước 1 - Cài đặt các phụ thuộc Rocket.Chat​

Đăng nhập vào máy chủ bằng ssh (hoặc thiết bị đầu cuối) và nhập 'sudo su' để có quyền truy cập root:
Mã:
ssh [emailprotected]
sudo su
Cập nhật kho lưu trữ Ubuntu:
Mã:
apt-get update
Tiếp theo, cài đặt các gói mới cần thiết cho Rocket.Chat:
Mã:
apt-get install curl graphicsmagick build-essential

Bước 2 - Cài đặt MongoDB​

Rocket.Chat yêu cầu MongoDB để cài đặt. Ở bước này, chúng ta sẽ cài đặt MongoDB 3.2 từ kho lưu trữ MongoDB.

Thêm máy chủ khóa MongoDB để chúng ta có thể truy cập các gói:
Mã:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Sau đó thêm kho lưu trữ MongoDB bằng lệnh bên dưới:
Mã:
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Cập nhật kho lưu trữ và cài đặt MongoDB bằng lệnh apt:
Mã:
apt-get update
apt-get install mongodb-org
Thêm MongoDB để chạy khi khởi động và khởi động:
Mã:
systemctl enable mongod
systemctl start mongod
MongoDB đã được khởi động trên cổng 27017.




Bước 3 - Cấu hình MongoDB ReplicaSet​

Để cải thiện hiệu suất, Rocket.Chat sử dụng MongoDB ReplicaSet. Trong bước này, chúng ta sẽ cấu hình một MongoDB ReplicaSet đơn giản bằng cách chỉnh sửa tệp cấu hình MongoDB.

Chỉnh sửa tệp mongod.conf bằng vim:
Mã:
vim /etc/mongod.conf
Thêm "#" vào đầu dòng 24 để vô hiệu hóa MongoDB chỉ chạy trên IP localhost.
Mã:
net:
 port: 27017
 #bindIp: 127.0.0.1
Thêm cấu hình ReplicaSet bên dưới tại dòng 34.
Mã:
#replication: 
replication: 
 oplogSizeMB: 1 
 replSetName: rs0
Lưu và thoát.

Khởi động lại dịch vụ MongoDB:
Mã:
systemctl restart mongod
Tiếp theo, khởi động shell MongoDB và khởi tạo ReplicaSet:
Mã:
export LC_ALL=C
mongo
rs.initiate()
Khởi tạo kết quả:
Mã:
{
 "info2" : "không có cấu hình nào được chỉ định. Sử dụng cấu hình mặc định cho tập hợp",
 "me" : "nyanko-sensei:27017",
 "ok" : 1
}
Đảm bảo giá trị 'ok' là 1. Nếu kết quả là một số khác, thì điều này có nghĩa là có gì đó không ổn.




Bước 4 - Cài đặt npm và nodejs​

Trong bước này, chúng ta sẽ cài đặt nodejs và npm từ kho lưu trữ Ubuntu. Sau đó, chúng ta sẽ cài đặt gói n bằng lệnh thenpm để có phiên bản nodejs cụ thể. Phiên bản Rocket.Chat mới nhất cần nodejs 4.5.

Cài đặt nodejs và npm từ kho lưu trữ Ubuntu:
Mã:
apt-get install nodejs npm
Tiếp theo, cài đặt gói n toàn cục vào hệ thống bằng lệnh thenpm:
Mã:
npm install -g n
Sử dụng lệnh n để tải xuống và đặt nodejs phiên bản 4.5.
Mã:
sudo n 4.5
Cuối cùng, hãy kiểm tra phiên bản nodejs:
Mã:
node --version
npm -v



Bước 5 - Cài đặt Rocket.Chat Server​

Chúng tôi sẽ cài đặt Rocket.Chat (phiên bản mới nhất) trong thư mục /var/www/.

Tải xuống phiên bản Rocket.Chat mới nhất và giải nén:
Mã:
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar -xzvf rocket.chat.tgz
Tạo một thư mục /var/www/ mới và đổi tên thư mục bundle thành 'Rocket.Chat' rồi di chuyển thư mục đó:
Mã:
mkdir -p /var/www/
mv bundle Rocket.Chat
mv Rocket.Chat /var/www/
Đi tới thư mục Rocket.Chat, đặt một số biến môi trường cần thiết và khởi động máy chủ Rocket.Chat.
Mã:
cd /var/www/Rocket.Chat/
cd programs/server/
npm install

cd ../../
export ROOT_URL=http://192.168.1.110:3000/
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js


Rocket.Chat đã được cài đặt, hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ trên cổng 3000. - 192.168.1.110:3000.




Bước 6 - Cài đặt và cấu hình Nginx như Proxy ngược cho Rocket.Chat Trong hướng dẫn này, chúng ta sẽ chạy Rocket.Chat đằng sau máy chủ web Nginx trên kết nối https để thiết lập an toàn và nhanh chóng.​

Cài đặt Nginx bằng lệnh apt:
Mã:
apt-get install nginx
Tạo thư mục SSL mới:
Mã:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
Tạo tệp chứng chỉ SSL và thay đổi quyền của tệp khóa:
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocket-chat.crt -keyout /etc/nginx/ssl/rocket-chat.key
chmod 400 rocket-chat.key
Tiếp theo, tạo tệp máy chủ ảo rocket-chat mới trong sites-available thư mục.
Mã:
cd /etc/nginx/sites-available/
vim rocket-chat
Dán cấu hình máy chủ ảo mới bên dưới:
Mã:
# Upstreams
upstream backend {
 server 127.0.0.1:3000;
}
 
# Tùy chọn chuyển hướng
server {
 listen 80;
 server_name rocket-chat.co;
 # thực thi https
 return 301 https://$server_name$request_uri;
}
 
# Máy chủ HTTPS
server {
 listen 443;
 server_name rocket-chat.co;
 
 error_log /var/log/nginx/rocketchat.access.log;
 
 ssl on;
 ssl_certificate /etc/nginx/ssl/rocket-chat.crt;
 khóa_chứng_nhận_ssl /etc/nginx/ssl/rocket-chat.key;
 giao_thức_ssl TLSv1 TLSv1.1 TLSv1.2; # không sử dụng tham chiếu SSLv3: POODLE
 
 location / {
 proxy_pass http://192.168.1.110:3000/;
 proxy_http_version 1.1;
 proxy_set_header Nâng cấp $http_upgrade;
 proxy_set_header Kết nối "nâng cấp";
 proxy_set_header Máy chủ $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 và thoát.

Tôi sẽ chạy Rocket.Chat với tên miền mới 'rocket-chat.co'. Vui lòng sử dụng tên miền của riêng bạn và thay thế nó trong các tệp cấu hình bất cứ nơi nào nó xuất hiện.

Kích hoạt máy chủ ảo Rocket.Chat và kiểm tra tệp cấu hình:
Mã:
ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat
nginx -t
Đảm bảo không có thông báo lỗi nào.

Khởi động lại máy chủ web Nginx:
Mã:
systemctl restart nginx

Bước 7 - Kiểm tra Rocket.Chat​

Nginx đã được cấu hình làm proxy ngược cho máy chủ Rocket.Chat và chúng ta cần cập nhật các biến môi trường để chạy Rocket.Chat ngay bây giờ.

Chạy Rocket.Chat với các biến mới bên dưới:
Mã:
cd /var/www/Rocket.Chat/
export ROOT_URL=https://rocket-chat.co
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js


Trong trình duyệt web của bạn, hãy mở URL: rocket-chat.co (hoặc tên miền tùy chỉnh của bạn) - bạn sẽ được chuyển hướng đến kết nối https.

Tạo tài khoản quản trị đầu tiên của bạn bằng cách nhấp vào liên kết 'Đăng ký tài khoản mới'.



Nhập tên, email và mật khẩu của bạn, sau đó nhấp vào 'ĐĂNG KÝ TÀI KHOẢN MỚI'.



Xác nhận sử dụng 'SITE-URL' mới với tên miền. Nhấp vào ''.



Đăng ký tên người dùng, nhấp vào 'SỬ DỤNG TÊN NGƯỜI DÙNG NÀY'.



Người dùng quản trị đã được tạo và đây là Bảng điều khiển Rocket.Chat. Bạn có thể bắt đầu trò chuyện và tạo kênh riêng cho nhóm của mình.

Rocket.Chat đã được cài đặt với máy chủ web Nginx trên ubuntu 16.04.



Kết quả sau khi chúng tôi sử dụng các biến môi trường mới:




Tham khảo​

 
Back
Bên trên