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

theanh

Administrator
Nhân viên
Rocket.Chat là ứng dụng trò chuyện trên web được viết bằng JavaScript, sử dụng nền tảng Meteor full-stack. Đây là nền tảng cộng tác trò chuyện nguồn mở cho phép bạn giao tiếp an toàn theo thời gian thực trên nhiều thiết bị. Nền tảng này tự lưu trữ và hỗ trợ trò chuyện thoại và video, hội nghị truyền hình, chia sẻ tệp và nhiều tính năng khác. Nền tảng này có ứng dụng khách dành cho mọi nền tảng, bao gồm Windows, macOS, Linux, Android và iOS.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Rocket.Chat trên máy chủ Ubuntu 20.04.

Điều kiện tiên quyết​

  • Máy chủ chạy Ubuntu 20.04.
  • Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Mật khẩu gốc được định cấu hình cho máy chủ.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật các gói hệ thống lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Sau khi hệ thống của bạn được cập nhật, hãy cài đặt các phụ thuộc bắt buộc khác bằng lệnh sau:
Mã:
apt-get install nginx gnupg2 git unzip build-essential curl software-properties-common graphicsmagick -y
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.

Cài đặt Node.js​

Tiếp theo, bạn sẽ cần cài đặt Node.js phiên bản 12 trong hệ thống của mình. Theo mặc định, nó không có trong kho lưu trữ chuẩn Ubuntu 20.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ chính thức của Node.js vào hệ thống của mình. Bạn có thể thêm nó bằng lệnh sau:
Mã:
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Sau khi kho lưu trữ được thêm vào, hãy cài đặt Node.js bằng lệnh sau:
Mã:
apt-get install nodejs -y
Sau khi cài đặt Node.js, hãy xác minh phiên bản Node.js đã cài đặt bằng lệnh sau:
Mã:
node -v
Bạn sẽ nhận được kết quả sau:
Mã:
v12.19.0
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình MongoDB​

Tiếp theo, bạn sẽ cần cài đặt máy chủ MongoDB trong hệ thống của mình. Theo mặc định, phiên bản mới nhất của MongoDB không có trong kho lưu trữ mặc định của Ubuntu 20.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ MongoDB vào hệ thống của mình. Trước tiên, hãy tải xuống và thêm khóa GPG bằng lệnh sau:
Mã:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Bạn sẽ nhận được kết quả sau:
Mã:
Thực thi: /tmp/apt-key-gpghome.Ku2thT4UnL/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key " đã nhậpgpg: Tổng số đã xử lý: 1gpg: đã nhập: 1
Tiếp theo, thêm kho lưu trữ chính thức của MongoDB bằng lệnh sau:
Mã:
add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Sau khi kho lưu trữ được thêm vào, hãy cài đặt MongoDB bằng lệnh sau:
Mã:
apt-get install mongodb-org -y
Sau khi cài đặt MongoDB, hãy khởi động dịch vụ MongoDB và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Mã:
systemctl start mongod
systemctl enable mongod
Tiếp theo, bạn sẽ cần chỉnh sửa tệp cấu hình mặc định của MongoDB và xác định bộ bản sao. Bạn có thể thực hiện bằng lệnh sau:
Mã:
nano /etc/mongod.conf
Thêm các dòng sau:
Mã:
replication: replSetName: "replica01"
Lưu và đóng tệp, sau đó khởi động lại dịch vụ MongoDB để áp dụng cấu hình:
Mã:
systemctl restart mongod
Tiếp theo, đăng nhập vào shell MongoDB và bật bản sao bằng lệnh sau:
Mã:
mongo
> rs.initiate()
Bạn sẽ nhận được kết quả sau:
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" : "127.0.0.1:27017", "ok" : 1, "operationTime" : Timestamp(1605081439, 1), "$clusterTime" : { "clusterTime" : Timestamp(1605081439, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }}
Tiếp theo, thoát khỏi shell MongoDB bằng lệnh sau:
Mã:
> exit
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Rocket.Chat​

Tiếp theo, bạn sẽ cần tạo một người dùng mới cho Rocket.Chat và thêm người dùng đó vào nhóm www-data. Bạn có thể thực hiện bằng lệnh sau:
Mã:
useradd -m -U -r -d /opt/rocket rocket --shell /bin/bash
usermod -a -G rocket www-data
Tiếp theo, cấp quyền thích hợp cho thư mục /opt/rocket:
Mã:
chmod 750 /opt/rocket
Tiếp theo, chuyển người dùng sang Rocket.Chat và tải xuống phiên bản Rocket.Chat mới nhất bằng lệnh sau:
Mã:
su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf rocket.chat.tgz
Tiếp theo, đổi tên thư mục đã giải nén thành Rocket.Chat bằng lệnh sau:
Mã:
mv bundle Rocket.Chat
Tiếp theo, hãy thay đổi thư mục thành máy chủ Rocket.Chat và cài đặt tất cả các phụ thuộc của Node.js bằng lệnh sau:
Mã:
cd Rocket.Chat/programs/server
npm install
Sau khi tất cả các phụ thuộc được cài đặt, bạn có thể thoát khỏi người dùng Rocket.Chat bằng lệnh sau:
Mã:
exit

Tạo tệp dịch vụ Systemd cho Rocket.Chat​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý dịch vụ Rocket.Chat. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/rocketchat.service
Thêm các dòng sau:
Mã:
[Unit]Description=Rocket.Chat serverAfter=network.target nss-lookup.target mongod.target[Service]StandardOutput=syslogStandardError=syslogSyslogIdentifier=rocketchatUser=rocketEnvironment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://rocket.yourdomain.com PORT=3000ExecStart=/usr/bin/node /opt/rocket/Rocket.Chat/main.js[Install]WantedBy=multi-user.target
Lưu và đóng tệp, tải lại daemon systemd bằng lệnh sau:
Mã:
systemctl daemon-reload
Tiếp theo, hãy khởi động dịch vụ Rocket.Chat và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start rocketchat
systemctl enable rocketchat
Bây giờ bạn có thể kiểm tra trạng thái của Rocket.Chat bằng lệnh sau:
Mã:
systemctl status rocketchat
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
Mã:
? rocketchat.service - Máy chủ Rocket.Chat Đã tải: đã tải (/etc/systemd/system/rocketchat.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 11 tháng 11 năm 2020 lúc 07:58:01 UTC; 24 giây trước PID chính: 19951 (nút) Nhiệm vụ: 11 (giới hạn: 4691) Bộ nhớ: 508,7M CGroup: /system.slice/rocketchat.service ??19951 /usr/bin/node /opt/rocket/Rocket.Chat/main.js11-11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Phiên bản MongoDB: 4.0.21 |11-11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Công cụ MongoDB: wiredTiger |11-11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Nền tảng: linux |11-11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Cổng quy trình: 3000 |11/11 07:58:21 ubuntu2004 rocketchat[19951]: ? | URL trang web: http://rocket.yourdomain.com |11/11 07:58:21 ubuntu2004 rocketchat[19951]: ? | ReplicaSet OpLog: Đã bật |11/11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Băm cam kết: e37d7ba8ed |11/11 07:58:21 ubuntu2004 rocketchat[19951]: ? | Nhánh cam kết: HEAD |11/11 07:58:21 ubuntu2004 rocketchat[19951]: ? | |Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? +----------------------------------------------------------+

Cấu hình Nginx cho Rocket.Chat​

Tiếp theo, bạn sẽ cần cấu hình Nginx làm proxy ngược cho Rocket.Chat. Để thực hiện, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/rocketchat.conf
Thêm các dòng sau:
Mã:
upstream myrocketchat { server 127.0.0.1:3000;}server { listen 80; server_name rocket.yourdomain.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; vị trí / { proxy_pass http://myrocketchat/; 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 tắt; }}
Lưu và đóng tệp, sau đó kích hoạt máy chủ ảo Nginx bằng lệnh sau:
Mã:
ln -s /etc/nginx/sites-available/rocketchat.conf /etc/nginx/sites-enabled/
Tiếp theo, xác minh Nginx xem có lỗi systex nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart nginx
Bạn cũng có thể xác minh trạng thái của dịch vụ Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau:
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 11 tháng 11 năm 2020 lúc 07:59:39 UTC; 4 giây trước Tài liệu: man:nginx(8) Quy trình: 20034 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Quy trình: 20047 ExecStart=/usr/sbin/nginx -g daemon on; master_process đang bật; (code=exited, status=0/SUCCESS) PID chính: 20051 (nginx) Nhiệm vụ: 3 (giới hạn: 4691) Bộ nhớ: 3,5M CGroup: /system.slice/nginx.service ??20051 nginx: tiến trình chính /usr/sbin/nginx -g daemon đang bật; master_process đang bật; ??20052 nginx: tiến trình công nhân ??20053 nginx: tiến trình công nhân11-11 07:59:39 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...11-11 07:59:39 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Rocket.Chat​

Lúc này, Rocket.Chat đã được cài đặt và cấu hình. Đã đến lúc truy cập giao diện web Rocket.Chat. Mở trình duyệt web của bạn và truy cập Rocket.Chat bằng URL . Bạn sẽ được chuyển hướng đến trang sau:





Cung cấp tên quản trị viên, email, mật khẩu và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:





Cung cấp loại tổ chức, tên, ngành, quy mô, quốc gia của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:





Cung cấp tên trang web, ngôn ngữ, loại máy chủ của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:



Đồng ý với các Điều khoản và Chính sách quyền riêng tư, sau đó nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau.



Nhấp vào nút Đi đến không gian làm việc của bạn. Bạn sẽ được chuyển hướng đến bảng điều khiển Rocket.Chat ở trang sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt và cấu hình thành công Rocket.Chat với Nginx như một proxy ngược. Bây giờ bạn có thể cài đặt Rocket.Chat trong môi trường sản xuất và bắt đầu trò chuyện với bạn bè và gia đình.
 
Back
Bên trên