RocketChat 从旧版本升级,无需使用 snap/docker

问题描述 投票:0回答:1

我在 Ubuntu

3.0.6
上有自托管版本的 RocketChat
18.04.5 LTS
,安装于 3 年多前。并想要升级到最新的可用 LTS 版本。


不知道它到底是如何安装的,但它肯定不是 docker/snap 方法(当时活动选项是什么?),因为该服务器上没有 snap/docker。 看起来所有 RC 代码都在这里

/opt/Rocket.Chat
,一些带有 Rocketchat 的目录位于
/var/lib/lxcfs/cgroup
,但是 MongoDB 和所有数据位于这里不同的安装存储上
/mnt/vdb/mongodb/
/lib/systemd/system/rocketchat.service
的服务如下:

[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target mongod.target mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=NODE_ENV=production
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
Environment=ROOT_URL=https://rocketchat.myexampledomain.com/
Environment=PORT=3456
[Install]
WantedBy=multi-user.target

版本:

  • 操作系统:Ubuntu 18.04.5 LTS
  • RocketChat:3.0.6
  • NodeJS:v12.14.0
  • MongoDB:4.0.28
  • Mongo 存储:mmapv1
  • RocketChat 管理员发布的操作系统:4.15.0-206-generic

所以,我的问题是:

  • 如何进行正确的备份(和恢复)?
  • 如何正确升级旧版本?官方文档仅包含 snap/docker 信息。
  • 如果更容易,我可以使用 snap 正确安装新版本。但是如何正确迁移旧版本中的数据呢?

注意事项:

  • 足够的停机时间并不重要,可以关闭几个小时没有问题。
  • 在同一台服务器上,我运行着其他使用 http/https 的应用程序。所以我之前有一个在 RocketChat 中使用的 nginx,上游到 RC 端口,带有代理通行证和 LE 证书。
  • 在根目录中
    /
    没有足够的磁盘空间来容纳我拥有的所有数据(总共20G),所以我绝对不能在那里移动40G的数据。但可以创建备份副本,因为在安装的驱动器上我有两倍以上的空间。
mongodb ubuntu-18.04 self-hosting rocket.chat snap
1个回答
0
投票

我的建议是手动升级。看起来也不是太难。

官方文档仍然包含如何手动安装,基本上只是下载项目并在其上运行 npm --install ,然后配置您的服务文件和一些权限,在您的情况下两者都已经完成。

升级指南说只需删除opt目录中的文件并复制新的即可。

我喜欢使用单独的服务对我的系统进行完整备份,这样我就不需要知道如何备份单个应用程序。以 RocketChat 为例,其背后有一个 MongoDB 实例,但还需要考虑潜在的文件存储。另外,系统上还有其他应用程序。与其试图记住如何单独备份所有这些,不如使用 Clonezilla 之类的完整系统克隆可能是更好的选择。这样您就可以轻松地将驱动器恢复到升级前的状态。如果这是虚拟机,您的虚拟机管理程序应该提供一个按钮,您可以在其中拍摄快照或备份,并在需要时使用它进行恢复。

© www.soinside.com 2019 - 2024. All rights reserved.