mirror of
https://github.com/Gloridust/WechatOnCloud.git
synced 2026-09-20 11:33:32 +08:00
feat(panel): 面板内「一键更新面板」(自更新 + 失败回滚)
面板本身的更新此前必须去 docker/飞牛手动 pull + 重建。现支持在「关于」里一键更新(仅在检测到 新版时出现,管理员可见): - 机制:面板先拉新镜像,再派生一个临时 helper 容器(用新镜像 + docker.sock)重建 woc-panel: 停旧 → 按旧容器配置(env 用「新镜像 baked + compose 注入」合并,保留 Labels/HostConfig/网络) 用新镜像重建 → 起来 → 稳定运行检查;失败则回滚旧镜像。helper 干完退出。 - 最坏情况(helper 也挂)用户 docker compose up -d 即可恢复(与手动一致)。 - 已本地实测:成功路径(重建后稳定、env/网络/label 保留)+ 回滚路径(坏镜像→回滚救活), 且全程不影响真 woc-panel。 - 新增 POST /api/admin/version/self-update + api.selfUpdatePanel + 「关于」按钮。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -128,6 +128,8 @@ export const api = {
|
||||
// 版本与更新检测
|
||||
getVersion: () => req<VersionInfo>('/api/version'),
|
||||
checkUpdate: () => req<VersionInfo>('/api/admin/version/check', { method: 'POST' }),
|
||||
// 一键更新面板自身:拉新镜像 + 派生 helper 容器重建 woc-panel(带回滚)。返回后面板会重启。
|
||||
selfUpdatePanel: () => req<{ ok: boolean; target: string; message: string }>('/api/admin/version/self-update', { method: 'POST' }),
|
||||
|
||||
// 子账号
|
||||
listUsers: () => req<{ users: PanelUser[] }>('/api/admin/users'),
|
||||
|
||||
Reference in New Issue
Block a user