参考资料

  1. 与虚拟机相比,Docker的优势是什么?
  2. Docker如何设置中文界面?
  3. SurveyKing 是一款开源在线问卷调查系统
  4. Eclipse Mosquitto 是一个开源(EPL/EDL 许可证)的 MQTT 消息代理(broker)
  5. Scratch 是 MIT 媒体实验室开发的图形化编程语言
  6. io.js是Node.js的一个分支,由社区主导开发,旨在提供更快的迭代和更开放的治理模式
  7. Ubuntu-debootstrap 是一个用于在现有 Linux 系统上创建最小化 Ubuntu 根文件系统的工具
  8. Registry 是 Docker 官方提供的开源镜像仓库,用于存储和分发 Docker 镜像

Rocket.Chat 是一款开源的团队聊天平台

Rocket.Chat 简介

Rocket.Chat 是一款开源的团队聊天平台,支持实时消息、视频会议、文件共享等功能,可自托管或使用云服务。

特点

  1. 开源免费:代码公开,可自由修改和部署。

  2. 多平台支持:提供 Web、桌面(Windows/macOS/Linux)和移动端(iOS/Android)应用。

  3. 功能丰富:支持群聊、私聊、频道、视频会议、屏幕共享、文件传输等。

  4. 高度可定制:支持插件和主题扩展。

  5. 安全加密:提供端到端加密(E2EE)选项。

  6. 集成能力强:支持与 GitHub、GitLab、Jira 等第三方工具集成。

最新更新内容及时间

  • 版本 6.4.0(2023年10月):

    • 新增消息编辑历史功能。

    • 改进视频会议性能。

    • 优化移动端用户体验。

    • 修复若干安全漏洞。

镜像下载地址

官网地址

文档地址

Docker 安装示例

# 启动 MongoDB
docker run --name db -d mongo:4.4 --replSet rs0 --oplogSize 128

# 初始化 MongoDB 副本集
docker exec -it db mongo --eval "rs.initiate()"

# 启动 Rocket.Chat
docker run --name rocketchat --link db -p 3000:3000 -d rocket.chat

YAML 设置教程(以 docker-compose.yml 为例)

version: '3'

services:
  mongodb:
    image: mongo:4.4
    restart: unless-stopped
    volumes:
      - ./data/db:/data/db
    command: mongod --replSet rs0 --oplogSize 128

  rocketchat:
    image: rocket.chat:latest
    restart: unless-stopped
    ports:
      - 3000:3000
    environment:
      - MONGO_URL=mongodb://mongodb:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongodb:27017/local
    depends_on:
      - mongodb

常见错误及解决方法

  1. MongoDB 副本集未初始化

    • 错误提示:Failed to connect to MongoDB

    • 解决:执行 rs.initiate() 初始化副本集。

  2. 端口冲突

    • 错误提示:Address already in use

    • 解决:检查并关闭占用 3000 端口的进程,或修改 Rocket.Chat 的映射端口。

  3. 内存不足

    • 错误提示:MongoDB exited due to insufficient memory

    • 解决:为 MongoDB 分配至少 2GB 内存,或调整 oplogSize

  4. Docker 容器无法启动

    • 错误提示:Cannot link to a non-running container

    • 解决:确保 MongoDB 容器先启动,或使用 depends_on 配置依赖关系。

  5. 端到端加密失败

    • 错误提示:E2E key generation failed

    • 解决:检查浏览器或客户端是否支持 WebCrypto API,或禁用广告拦截插件。