升级
升级分两类:Dash 升级和节点升级。
Dash 升级
Linux 发布包安装的 Dash 使用:
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh --check
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh -y --lang zh
更新脚本会:
- 检查当前版本和发布通道。
- 从 GitHub Release 下载新包。
- 停止
dash.service。 - 备份
/opt/Ithiltir-dash到临时目录。 - 覆盖安装文件。
- 收紧敏感文件权限。
- 执行数据库迁移。
- 启动
dash.service。
如果迁移失败,脚本会尝试恢复安装目录并重启旧服务。数据库迁移已经提交的部分不会自动反向回滚,因此升级前必须做数据库备份。
手工升级 Dash
systemctl stop dash.service
cp -a /opt/Ithiltir-dash /opt/Ithiltir-dash.bak.$(date +%Y%m%d%H%M%S)
tar -xzf Ithiltir_dash_linux_amd64.tar.gz
cp -a Ithiltir-dash/. /opt/Ithiltir-dash/
env DASH_HOME=/opt/Ithiltir-dash /opt/Ithiltir-dash/bin/dash migrate -config /opt/Ithiltir-dash/configs/config.local.yaml
systemctl start dash.service
手工升级前备份数据库:
pg_dump -Fc -d <db_name> -f ithiltir-$(date +%Y%m%d%H%M%S).dump
节点升级
Dash 发布包携带节点资产。管理台触发节点升级时:
- Dash 根据节点最后上报的平台选择对应资产。
POST /api/admin/nodes/{id}/upgrade写入易失升级任务。- 节点下一次
POST /api/node/metrics响应拿到 update manifest。 - Windows runner 模式会暂存、校验、替换并重启 node。
当前自更新只支持 Windows runner。Linux/macOS 节点应重新执行安装脚本完成升级。
Linux/macOS 节点重新安装
重新执行安装命令即可。脚本会下载新二进制,写入新的 release 目录,并更新 current 软链接。
版本通道
版本必须是严格 SemVer:
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
不使用 v 前缀。普通发布不能携带预发布段;预发布构建可以携带 -rc.1、-alpha.1 等。