Cách cài đặt Rocket.Chat Server trên Rocky Linux 8

theanh

Administrator
Nhân viên
Rocket.Chat là một máy chủ trò chuyện mã nguồn mở được phát triển bằng JavaScript sử dụng nền tảng Meteor.js. Nó 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ó cho phép các công ty và tổ chức xây dựng máy chủ trò chuyện của họ để giao tiếp nội bộ với nhân viên của họ. Nó tích hợp với các kênh xã hội, chatbot, phương tiện truyền thông xã hội và ứng dụng năng suất. Nó cho phép giám sát quy trình làm việc DevOps với các tích hợp thông qua Bitbucket, Jira, GitLab, Confluence, Bamboo, v.v. Nó có sẵn trên nhiều nền tảng máy tính để bàn và thiết bị di động. Có hai phiên bản Rocket.Chat, một là phiên bản cộng đồng miễn phí và phiên bản còn lại là phiên bản doanh nghiệp.

Trong hướng dẫn này, chúng tôi sẽ cài đặt phiên bản Cộng đồng miễn phí của máy chủ Rocket.Chat trên máy Rocky Linux.

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


  • Máy chủ chạy Rocky Linux với tối thiểu 1GB RAM cho máy chủ có tối đa 200 người dùng và tối đa 50 người dùng hoạt động đồng thời. Nếu bạn muốn hỗ trợ hơn 200 người dùng, bạn nên chọn máy chủ có tối thiểu 2GB RAM.

  • Tên miền trỏ đến máy chủ. Đối với hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng tên miền rocketchat.example.com.

  • Người dùng không phải sudo có quyền root.

  • SELinux đã bị vô hiệu hóa.

  • Mọi thứ đã được cập nhật.
Mã:
$ sudo dnf update
[*]
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
Mã:
$ sudo dnf install wget curl nano unzip yum-utils -y

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --staterunning
Tường lửa hoạt động với nhiều vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị đầu ra sau.
Mã:
cockpit dhcpv6-client ssh
Moodle cần có cổng HTTP và HTTPS để hoạt động. Mở chúng ra.
Mã:
$ sudo firewall-cmd --add-service=http --permanent$ sudo firewall-cmd --add-service=https --permanent
Tải lại tường lửa để áp dụng các thay đổi.
Mã:
$ sudo firewall-cmd --reload

Bước 2 - Cài đặt Docker và Docker Compose​

Rocky Linux đi kèm với phiên bản Docker cũ hơn. Để cài đặt phiên bản mới nhất, trước tiên, hãy cài đặt kho lưu trữ Docker chính thức.
Mã:
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Cài đặt phiên bản Docker mới nhất.
Mã:
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Bật và chạy daemon Docker.
Mã:
$ sudo systemctl enable docker --now
Xác minh rằng nó đang chạy.
Mã:
docker.service - Docker Application Container Engine Đã tải: đã tải (/usr/lib/systemd/system/docker.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-08-20 22:35:19 UTC; 1 giây trước Tài liệu: https://docs.docker.com PID chính: 82575 (dockerd) Nhiệm vụ: 7 Bộ nhớ: 31,1M CGroup: /system.slice/docker.service ??82575 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock...
Theo mặc định, Docker yêu cầu quyền root. Nếu bạn muốn tránh sử dụng sudo mỗi khi chạy lệnh docker, hãy thêm tên người dùng của bạn vào nhóm docker.
Mã:
$ sudo usermod -aG docker $(whoami)
Bạn sẽ cần đăng xuất khỏi máy chủ và đăng nhập lại với cùng một người dùng để bật thay đổi này hoặc sử dụng lệnh sau.
Mã:
$ su - ${USER}
Xác nhận rằng người dùng của bạn đã được thêm vào nhóm Docker.
Mã:
$ groupsnavjot wheel docker

Bước 3 - Cài đặt Docker Compose​

Docker Compose có sẵn dưới dạng plugin. Kiểm tra phiên bản Docker Compose mới nhất có sẵn từ trang phát hành Github. Tại thời điểm viết hướng dẫn này, phiên bản mới nhất hiện có là 2.10.0.

Tạo thư mục cho các plugin Docker.
Mã:
$ mkdir ~/.docker/cli-plugins -p
Tải plugin Docker compose xuống thư mục.
Mã:
$ curl -SL https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
Đặt quyền để plugin có thể thực thi được.
Mã:
$ chmod +x ~/.docker/cli-plugins/docker-compose
Xác minh cài đặt.
Mã:
$ docker compose version
Bạn sẽ nhận được kết quả sau.
Mã:
Docker Compose version v2.10.0

Bước 4 - Cài đặt RocketChat​

Tạo thư mục để lưu trữ các tệp Docker.
Mã:
$ mkdir ~/rocketchat
Chuyển đến thư mục.
Mã:
$ cd ~/rocketchat
Tạo và mở tệp Rocketchat Docker compose để chỉnh sửa.
Mã:
$ nano docker-compose.yml
Dán mã sau vào đó.
Mã:
volumes: mongodb_data: rocketchat-uploads:dịch vụ: rocketchat: hình ảnh: registry.rocket.chat/rocketchat/rocket.chat:5.0.4 khởi động lại: khi xảy ra lỗi khối lượng: - rocketchat-uploads:/ứng dụng/tải lên môi trường: MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0 MONGO_OPLOG_URL: mongodb://mongodb:27017/local?replicaSet=rs0 ROOT_URL: https://rocketchat.example.com CỔNG: 3000 PHƯƠNG THỨC TRIỂN KHAI: docker Accounts_UseDNSDomainCheck: 'false' MAIL_URL: 'smtps://AmazonSESuser:[emailprotected]:587' phụ thuộc vào: - mongodb expose: - 3000 cổng: - 3000:3000 kiểm tra tình trạng: kiểm tra: > /usr/local/bin/node -e ' const http = require("http"); const options = { host: "localhost", cổng: 3000, đường dẫn: "/api/info", thời gian chờ: 2000 }; const healthCheck = http.request(tùy chọn, (res) => { console.log(`TRẠNG THÁI KIỂM TRA SỨC KHỎE: $${res.statusCode}`); if (res.statusCode == 200) { process.exit(0); } else { process.exit(1); } }); healthCheck.on("lỗi", hàm (err) { console.error("LỖI"); process.exit(1); }); healthCheck.end();' khoảng thời gian: 10 giây thời gian chờ: 5 giây thử lại: 3 start_period: 60 giây mongodb: hình ảnh: bitnami/mongodb:4.4 khởi động lại: khi lỗi khối lượng: - mongodb_data:/bitnami/mongodb môi trường: MONGODB_REPLICA_SET_MODE: chính MONGODB_REPLICA_SET_NAME: rs0 MONGODB_PORT_NUMBER: 27017 MONGODB_INITIAL_PRIMARY_HOST: mongodb MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 27017 MONGODB_ADVERTISED_HOSTNAME: mongodb MONGODB_ENABLE_JOURNAL: 'true' ALLOW_EMPTY_PASSWORD: 'yes' kiểm tra tình trạng: kiểm tra: echo 'db.runCommand("ping").ok' | mongo mongodb:27017/test --quiet interval: 10s timeout: 5s retries: 3 start_period: 60s
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi chạy vùng chứa Docker.
Mã:
$ docker compose up -d
Kiểm tra trạng thái của vùng chứa để đảm bảo chúng đang chạy đúng cách.
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES59cd748e684f registry.rocket.chat/rocketchat/rocket.chat:5.0.4 "docker-entrypoint.s…" 2 phút trước Đã hoạt động 2 phút (ổn định) 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp rocketchat-rocketchat-11fdabedf8681 bitnami/mongodb:4.4 "/opt/bitnami/script…" 2 phút trước Đã hoạt động 2 phút (ổn định) 27017/tcp rocketchat-mongodb-1
Bạn cũng có thể sử dụng lệnh sau để kiểm tra trạng thái.
Mã:
$ docker compose psNAME COMMAND SERVICE STATUS PORTSrocketchat-mongodb-1 "/opt/bitnami/script…" mongodb đang chạy (ổn định) 27017/tcprocketchat-rocketchat-1 "docker-entrypoint.s…" rocketchat đang chạy (ổn định) 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
Tại thời điểm này, bạn có thể kiểm tra cài đặt của mình bằng cách khởi chạy URL http://rocketchat.example.com:3000 hoặc http://<serverIPaddress>:3000 trong trình duyệt. Bước tiếp theo là cấu hình SSL và đặt cài đặt sau máy chủ proxy.

Bước 5 - Cài đặt SSL​

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần cài đặt công cụ Certbot.

Trước tiên, bạn cần tải xuống và cài đặt kho lưu trữ EPEL.
Mã:
$ sudo dnf install epel-release
Chạy các lệnh sau để cài đặt Certbot.
Mã:
$ sudo dnf install certbot
Tạo chứng chỉ SSL.
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d rocketchat.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào /etc/letsencrypt/live/rocketchat.example.com thư mục trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Dán đoạn mã sau.
Mã:
#!/bin/shcertbot renew --cert-name rocketchat.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 6 - Cài đặt và cấu hình Nginx​

Chúng tôi sẽ cài đặt phiên bản Nginx mới nhất. Tạo và mở tệp /etc/yum.repos.d/nginx.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/nginx.repo
Dán các dòng sau vào đó.
Mã:
[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt Nginx.
Mã:
$ sudo dnf install nginx
Xác minh cài đặt.
Mã:
$ nginx -vphiên bản nginx: nginx/1.22.0
Bật và khởi động dịch vụ Nginx.
Mã:
$ sudo systemctl enable nginx --now
Tạo và mở tệp /etc/nginx/conf.d/rocket.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/rocket.conf
Dán mã sau vào đó.
Mã:
# Chuyển hướng tất cả các tệp không được mã hóa sang máy chủ được mã hóa { listen 80; listen [::]:80; server_name rocketchat.example.com; return 301 https://$host$request_uri; }# Máy chủ HTTPS server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name rocketchat.example.com; access_log /var/log/nginx/rocketchat_access.log main; error_log /var/log/nginx/rocketchat_error.log; chứng chỉ ssl /etc/letsencrypt/live/rocketchat.example.com/fullchain.pem; khóa chứng chỉ ssl /etc/letsencrypt/live/rocketchat.example.com/privkey.pem; chứng chỉ ssl đáng tin cậy /etc/letsencrypt/live/rocketchat.example.com/chain.pem; ssl_dhparam /etc/ssl/certs/dhparam.pem; giao thức ssl TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers bật; ssl_session_cache chia sẻ:SSL:20 phút; ssl_session_tickets tắt; ssl_session_timeout 180 phút; ssl_stapling on; ssl_stapling_verify on; location / { proxy_pass http://rocketchat.example.com: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-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Cấu hình trên cho phép Nginx hoạt động như một máy chủ proxy và liên kết với cổng 3000 trên máy chủ cục bộ.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -tnginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: configuration file /etc/nginx/nginx.conf test thành công
Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.
Mã:
$ sudo systemctl restart nginx

Bước 7 - Truy cập và cấu hình RocketChat​

Khởi chạy URL https://rocketchat.example.com trong trình duyệt của bạn và bạn sẽ được chào đón bằng màn hình thiết lập sau.



Điền thông tin quản trị viên của bạn và nhấp vào nút Tiếp theo để tiếp tục. Tiếp theo, bạn sẽ được yêu cầu điền thông tin tổ chức.



Điền thông tin tổ chức của bạn và nhấp vào nút Tiếp theo để tiếp tục. Bạn sẽ được yêu cầu đăng ký máy chủ trò chuyện của mình với Rocket Cloud nếu bạn muốn truy cập vào các ứng dụng thị trường và nhiều tính năng hơn.



Điền thông tin chi tiết và nhấp vào đăng ký nếu bạn quan tâm. Nếu không, hãy nhấp vào liên kết Tiếp tục dưới dạng độc lập để tiếp tục. Nếu bạn đã đăng ký với Cloud, một email xác minh sẽ được gửi đến.



Nhấp vào liên kết trong email xác minh để xác minh việc đăng ký của bạn.



Sau khi xác minh, bạn sẽ được đưa đến bảng điều khiển Rocket Chat.


Cấu hình Cài đặt SMTP​

Truy cập trang quản trị bằng cách nhấp vào ảnh hồ sơ của bạn bằng cách nhấp vào góc trên bên trái của trang và nhấp vào liên kết Quản trị.



Nhấp vào liên kết Cài đặt từ thanh bên trái.



Trên trang cài đặt, nhập Email vào hộp tìm kiếm để hiển thị nút Email.



Nhấp vào nút Mở bên dưới phần Email để mở trang cài đặt email. Ở trang tiếp theo, hãy mở rộng phần SMTP của trang.



Điền thông tin chi tiết về SMTP và nhấp vào nút Lưu thay đổi ở trên cùng bên phải để bật nút Gửi thư thử nghiệm tới người dùng của tôi. Bạn sẽ được nhắc nhập mật khẩu để lưu cài đặt SMTP.

Đối với hướng dẫn của chúng tôi, chúng tôi sử dụng Amazon SES làm trình gửi thư với cổng 587. Bỏ chọn nút phía trên nút Pool. Chức năng của nút là bỏ qua TLS nhưng không được gắn nhãn chính xác.

Bạn sẽ nhận được một thư thử nghiệm tương tự nếu mọi thứ được thiết lập chính xác.


Đăng nhập vào Rocket.Chat Cloud​

Để sử dụng các tính năng của Rocket.Chat Cloud, bạn cần phải đăng nhập. Truy cập trang Quản trị >> Menu Dịch vụ kết nối và bạn sẽ được chào đón bằng trang sau.



Nhấp vào nút Đăng nhập vào Rocket.Chat Cloud để bắt đầu quá trình. Bạn sẽ được đưa đến trang đăng nhập, tại đó bạn sẽ được yêu cầu điền ID email mà bạn đã đăng ký trong quá trình thiết lập.



Nhấp vào Gửi liên kết đăng nhập để tiếp tục. Bạn sẽ nhận được email có liên kết đăng nhập.



Nhấp vào liên kết đăng nhập để hoàn tất quá trình. Bạn sẽ được yêu cầu ủy quyền cho máy chủ của mình để đăng nhập bằng tài khoản Đám mây.



Nhấp vào nút Ủy quyền để tiếp tục đưa bạn trở lại trang Dịch vụ kết nối. Bây giờ bạn đã đăng nhập vào đám mây.


Cài đặt và sử dụng ứng dụng Rocket.Chat Cloud​

Bây giờ bạn có thể cài đặt ứng dụng Đám mây thông qua trang Quản trị >> Ứng dụng. Chúng tôi đang cài đặt ứng dụng GIPHY trên máy chủ của mình. Nhấp vào nút Nhận để tiếp tục cài đặt.



Để định cấu hình ứng dụng, hãy nhấp vào tên ứng dụng từ trang Ứng dụng và bạn sẽ nhận được trang thông tin chi tiết về ứng dụng. Từ đó, bạn có thể định cấu hình cài đặt và bắt đầu sử dụng ứng dụng.



Điền vào cài đặt và nhấp vào nút Lưu thay đổi để hoàn tất thiết lập ứng dụng.

Quay lại bảng điều khiển Rocket Chat và truy cập bảng tin. Để sử dụng ứng dụng GIPHY, hãy nhập /giphy <search term> và bạn sẽ thấy rất nhiều ảnh GIF liên quan đến truy vấn của mình.



Nhấn nút Enter để gửi ảnh GIF đến màn hình tin nhắn.


Bước 8 - Sao lưu và khôi phục Rocket Chat​

Để sao lưu Rocket Chat, bạn cần sao lưu cơ sở dữ liệu MongoDB.

Dừng vùng chứa Docker.
Mã:
$ docker compose down
Chạy lệnh sau để liệt kê nhãn của ảnh docker MongoDB.
Mã:
$ docker ps -a
Trong hướng dẫn của chúng tôi, nhãn của ảnh MongoDB là rocketchat_mongo_1. Chạy lệnh sau để xuất cơ sở dữ liệu vào một tệp.
Mã:
$ docker exec rocketchat_mongo_1 sh -c 'mongodump --archive' > db.dump
Để khôi phục cơ sở dữ liệu, hãy sử dụng lệnh sau.
Mã:
$ docker exec -i  sh -c 'mongorestore --archive' < db.dump

Bước 9 - Nâng cấp Rocket Chat​

Việc nâng cấp Rocket Chat yêu cầu bạn phải làm theo một số lệnh. Dữ liệu không bị ảnh hưởng trong quá trình nâng cấp. Kéo phiên bản mới nhất của hình ảnh Rocket Chat.
Mã:
$ docker pull registry.rocket.chat/rocketchat/rocket.chat:latest
Dừng thùng hiện tại.
Mã:
$ docker compose stop rocketchat
Xóa vùng chứa hiện tại.
Mã:
$ docker compose rm rocketchat
Khởi động Rocket Chat bằng cách tạo vùng chứa mới.
Mã:
$ docker compose up -d rocketchat

Kết luận​

Đây là phần kết thúc hướng dẫn của chúng tôi về cách cài đặt máy chủ Rocket.Chat trên máy Rocky Linux 8. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên