参考资料

  1. Memcached 是一个高性能、分布式的内存缓存系统
  2. Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型编程语言
  3. OnlyOffice 是一款开源办公套件
  4. Perl是一种高级、通用、解释型动态编程语言
  5. Nextcloud 是一款开源的自托管文件同步与共享平台
  6. MySQL 是一个开源的关系型数据库管理系统
  7. Elasticsearch 是一个开源的分布式搜索和分析引擎
  8. Apache Cassandra 是一个开源的分布式 NoSQL 数据库系统

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,或禁用广告拦截插件。