You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

手动部署Rocket.Chat实例更新经验咨询:除重部署外的操作

手动部署Rocket.Chat升级实操经验

作为手动部署并维护Rocket.Chat快3年的老从业者,我来分享下除了拉取最新代码之外的关键实操步骤:

升级前必做准备

  • 核心数据全量备份
    • 先备份MongoDB数据库,执行命令 mongodump --db rocketchat --out /path/to/your/backup/dir,这一步绝对不能省,万一升级出问题能快速回滚
    • 备份Rocket.Chat的配置文件(比如settings.json或自定义的环境变量配置文件),还有用户上传的媒体文件目录(默认是uploads文件夹)
  • 依赖版本兼容性检查
    • node -v确认Node.js版本是否符合新版本要求,部分大版本升级会要求Node从14升到16/18,不符合的话推荐用nvm管理升级
    • mongod --version检查MongoDB版本,比如最新版通常要求4.4以上,必要时先升级MongoDB

升级过程中的关键操作

  • 彻底停止服务:如果用systemd管理就执行systemctl stop rocketchat,或者直接pkill node杀死相关进程,确保服务完全停止再操作
  • 清理旧文件与缓存
    • 进入项目目录,删除旧依赖文件夹:rm -rf node_modules
    • 删除旧构建产物:rm -rf dist
    • 清理npm缓存:npm cache clean --force
  • 安装新版依赖:拉取最新代码后,执行npm install --production,加--production跳过开发依赖,加快生产环境安装速度
  • 重新构建前端:执行npm run build,这一步会把前端代码打包成生产环境可用的文件,跳过的话启动后前端大概率会出问题
  • 执行数据库迁移:启动MongoDB后,进入项目目录执行node main.js migrate,大版本升级时这一步尤其重要,用来处理数据库结构的变更(比如新增字段、调整集合),跳过会直接导致服务启动失败
  • 同步配置项:对比备份的旧配置和新版本的默认配置,检查有没有新增的必填配置,或者被废弃的配置项,比如有些版本会把部分配置从settings.json迁移到环境变量,需要同步更新

升级后验证环节

  • 启动服务并监控日志:用systemctl start rocketchat启动服务,再用journalctl -u rocketchat -f实时查看日志,重点确认数据库连接、迁移相关的日志没有报错
  • 核心功能测试:登录后台测试发送消息、上传文件、创建频道、用户登录登出等基础功能,确保正常可用
  • 性能观测:查看服务器CPU、内存占用情况,对比升级前的数据,确认没有异常飙升的情况

额外提醒:如果是跨多个大版本升级(比如从3.x直接升到6.x),不要跳版本,最好按3.x→4.x→5.x→6.x的顺序逐步升级,每个版本都完成上述步骤,避免跨版本迁移出现兼容问题

内容的提问来源于stack exchange,提问作者Enzymes

火山引擎 最新活动