Skip to content

升级与备份 ​

面板内升级 ​

「系统 → 系统升级」页面可检查新版本并查看更新说明。

更新检测支持双通道:

通道说明
稳定版只检测正式发布版本
开发版包含预发布版本(prerelease),可提前体验
  • 通道选择持久化保存,未设置时回退环境变量 GOPANEL_UPGRADE_CHANNEL
  • 稳定通道比较规则为语义化版本:1.3.0-beta.1 < 1.3.0-beta.2 < 1.3.0
  • 当前版本高于所选通道最新版时(如开发版切回稳定通道)会明确提示不自动降级

开发通道为何按「发布时间」判断 ​

开发通道的发布形态是固定标签 dev + 每次 push 覆盖同名附件 (见 scripts/cnb/dev-binary-publish.sh):版本号永远是 dev,只换包。 按版本号比较恒等,同一份 dev 今天下午被覆盖过一次完全检测不到。

因此开发通道改用时间作为判据:

  • 取 Release dev 下本机架构升级包附件的最后上传时间 (不是 Release 自身的更新时间——dev 线只覆盖附件、Release 不重建);
  • 与当前运行版本的构建日期比较,发布方更新则提示有新构建。

发布方构建时间优先取随附件发布的 BUILD_DATE 附件(构建脚本写入、 上传后有回读自检);面板的「更新内容」展示的是 Release 描述, dev 线那里是本次 push 的最后一条提交信息。

当前版本的构建日期来自构建期注入,三级回退保证老构建也能判断:

  1. 环境变量 GOPANEL_BUILD_DATE;
  2. ldflags 注入的 BuildDate(build-binaries.sh 已补上);
  3. 老构建未注入时,从已有的构建时间里取日期部分。

该时间戳只在 Release 详情里可得:公开仓库走站点侧 Releases 接口匿名读取, 无需任何配置;私有仓库才需要 GOPANEL_UPGRADE_TOKEN。 都取不到时会明确提示「无法判断」,不会假装已是最新。 前端在开发通道下会额外展示一行「构建时间:当前 x,最新 y」。

相关环境变量(GOPANEL_UPGRADE_*)见 环境变量。

面板内自动升级(二进制部署) ​

「检查更新」发现新版本后,点「下载」即可在线升级:

  1. 下载 Release 附件 GoPanel-linux-<arch>.tar.gz(压缩包口径,见 二进制部署);
  2. 比对同目录的 SHA256SUMS(发布方提供时),确认附件未被篡改或损坏;
  3. 解压出包内同名裸二进制并做 ELF 校验,落盘为程序同目录的 GoPanel.update;
  4. 重启面板后自动替换(旧程序备份为 GoPanel.bak,可回滚)。

⚠️ 只接受 .tar.gz 压缩包。压缩之前发布的旧 tag 附件是裸二进制, 面板内在线升级不支持(仍可用 scripts/install.sh -v <旧版本> 安装)。

命令行升级(-upgrade) ​

没有后台权限 / 在脚本与容器里,用主程序自带的 -upgrade 完成与网页端同一套检查与下载:

bash
gopanel -upgrade            # 检查更新并下载升级包(已最新则什么都不做)
gopanel -upgrade=check      # 只检查、不下载
gopanel -upgrade=cancel     # 取消待生效的升级包
gopanel -service restart    # 升级包就绪后重启,替换即生效

输出为固定顺序的 键=值 明细(当前版本 / 最新版本 / 有新版本 / 下载地址 / 提示), 退出码:0 已最新 · 10 升级包已就绪 · 20 有新版本未下载 · 1 检查或下载失败。 详细取值与输出见 命令行参数。

二进制升级 ​

bash
# 重新执行安装脚本(会替换二进制并重启服务)
curl -fsSL https://cnb.cool/liumou_site/GoPanel/-/git/raw/master/scripts/install.sh | bash -s -- -install

或手动:停服务 → 替换二进制 → 启服务。配置文件与 config/ 数据目录保持不变。

备份什么 ​

内容位置
数据库MySQL / MariaDB / PostgreSQL 用数据库自身工具;SQLite 直接备份 config/*.db
配置文件config/config.toml
主密钥data/master.key(或 GOPANEL_BASTION_KEY 的值)——必须备份,丢了旧密文与安全码要重置
证书私钥data/ssl/keys/
日志data/logs/(可选)

⚠️ 主密钥与数据库要配套备份:只恢复数据库而密钥不同,堡垒机凭据与安全码会全部失效。

自动化备份 ​

  • 用 计划任务 定时执行备份命令(任务由系统 crond 调度,面板负责落 crontab)
  • 用面板的全量备份导出做升级 / 迁移前的快照(data/ + config/config.toml 打包 ZIP,见 备份与迁移)

相关 ​

基于 AGPL-3.0 协议发布