[Docker] Cài đặt Rocket Chat bằng docker-compose

Tác giả: 13/08/2023

Rocket Chat là một nền tảng trò chuyện trực tuyến mã nguồn mở (open-source) được phát triển bởi Rocket Chat, Inc. Nền tảng này cho phép người dùng tạo các nhóm trò chuyện, gửi tin nhắn văn bản, hình ảnh, video và tệp đính kèm, và thực hiện cuộc gọi thoại và video trực tuyến.

Rocket Chat cung cấp khả năng tích hợp với các ứng dụng và dịch vụ khác như gSuite, Dropbox, GitHub và nhiều ứng dụng khác. Nó cũng có sẵn trên nhiều nền tảng, bao gồm các ứng dụng trên điện thoại di động, desktop và web.

Rocket Chat được sử dụng rộng rãi trong các doanh nghiệp, tổ chức phi lợi nhuận, cộng đồng và các tổ chức khác nhau để tăng cường giao tiếp và tương tác giữa các thành viên.

Hôm nay Nhân Hòa sẽ cùng các bạn cài đặt Rocket Chat – Phần mềm chát miễn phí mã nguồn mở phổ biến nhất cho công ty của bạn.

Điều kiện cài đặt

  • Hệ điều hành linux
  • Máy chủ của bạn cài Docker và docker-compose

Và trong phần demo này mình sử dụng ubuntu 22.04.01

I – Update hệ thống

apt update -y

apt ugrade -y

apt-get update -y

apt-get upgrade -y

reboot

II – Cài docker và docker compose

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
service docker start
systemctl enable docker
apt install docker-compose

docker compose version

apt install nginx

III – Cài đặt Rocket Chat

mkdir -p /var/www/chat/

cd /var/www/chat/

Tạo docker-compose.yml với nội dung như sau

Sau đó chạy lệnh docker-compose up

version: '2'

services:

  rocketchat:

    image: registry.rocket.chat/rocketchat/rocket.chat:4.7.0

    command: >

      bash -c

        "for i in `seq 1 30`; do

          node main.js &&

          s=$$? && break || s=$$?;

          echo \"Tried $$i times. Waiting 5 secs...\";

          sleep 5;

        done; (exit $$s)"

    restart: unless-stopped

    volumes:

      - ./uploads1:/app/uploads

    environment:

      - PORT=3000

      - ROOT_URL=http://localhost:3000

      - MONGO_URL=mongodb://mongo:27017/rocketchat

      - MONGO_OPLOG_URL=mongodb://mongo:27017/local

      - REG_TOKEN=${REG_TOKEN}

#       - MAIL_URL=smtp://smtp.email

#       - HTTP_PROXY=http://proxy.domain.com

#       - HTTPS_PROXY=http://proxy.domain.com

    depends_on:

      - mongo

    ports:

      - 3000:3000

    labels:

      - "traefik.backend=rocketchat"

      - "traefik.frontend.rule=Host: your.domain.tld"




  mongo:

    image: mongo:4.0

    restart: unless-stopped

    volumes:

     - ./data1/db:/data/db

     #- ./data/dump:/dump

    command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1

    labels:

      - "traefik.enable=false"

#    ports:

#      - 27017:27017




  # this container's job is just run the command to initialize the replica set.

  # it will run the command and remove himself (it will not stay running)

  mongo-init-replica:

    image: mongo:4.0

    command: >

      bash -c

        "for i in `seq 1 30`; do

          mongo mongo/rocketchat --eval \"

            rs.initiate({

              _id: 'rs0',

              members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&

          s=$$? && break || s=$$?;

          echo \"Tried $$i times. Waiting 5 secs...\";

          sleep 5;

        done; (exit $$s)"

    depends_on:

      - mongo

 

Hình ảnh

Cài đặt thông tin SuperAdmin

Phần này tùy bạn có tạo proxy hay không nhé

Bạn hãy kiểm tra email đăng ký cho admin để verify

Sau đó tạo thử kênh và user, add user vào nhóm

Member

Hẹn gặp lại các bạn tại các bài viết khác tại wiki.nhanhoa.com

Trả lời