fix: 修复系统更新 API 路由和改进健康检查逻辑

- 修复 /api/update/execute 404 错误,改为 /api/update/update
- 增加健康检查等待时间从30秒到90秒
- 后端日志输出到文件,便于诊断问题
- 每5秒检查一次后端进程状态
- 改进错误诊断信息,区分进程退出和健康检查失败
- 记录后端启动日志的最后100行用于问题排查
This commit is contained in:
WrBug
2026-01-21 11:53:30 +08:00
parent a77b3b10ee
commit 4aa85a9c2d
+177
View File
@@ -0,0 +1,177 @@
# PolyHermes v2.0.0 Release Notes
## 🎉 重大更新
PolyHermes v2.0.0 是一个重要版本更新,带来了系统动态更新功能、优化的用户体验和多项技术改进。
---
## ✨ 新功能
### 🔄 系统动态更新(核心功能)
**无需重启 Docker 容器即可更新系统**,大幅提升部署和维护效率。
-**在线更新**:在 Web UI 中一键检查并应用更新,无需手动操作
-**零停机更新**:更新过程约 30-60 秒,系统自动处理,无需重启容器
-**自动回滚**:更新失败时自动恢复到旧版本,确保系统稳定性
-**版本管理**:清晰显示当前版本和可用更新,支持 Pre-release 版本检测
-**更新内容展示**:支持 Markdown 格式的更新说明,美观易读
**技术特性**
- 独立的 Python Flask 更新服务(端口 9090),与主应用隔离
- 单一更新包(tar.gz),包含前后端完整更新
- 自动备份和版本管理
- 管理员权限验证,确保安全性
### 📦 Release 管理工具
- **自动化发布脚本** (`create-release.sh`)
- 自动创建 Git 标签
- 发布 GitHub Release
- 支持 Pre-release 标记
- 自动拼接版本号后缀(Pre-release 自动添加 `-beta`
- 支持非交互模式,便于 CI/CD 集成
### 🎨 版本号显示优化
- **Tag 格式显示**:版本号使用 Git Tag 格式(如 `v2.0.0-beta`
- **智能颜色提示**
- 🟡 **黄色 Tag**:有新版本可用(点击可跳转到系统更新页面)
- 🟢 **绿色 Tag**:当前已是最新版本
- **镂空样式**:更小巧美观的版本号标签
- **自动检查**:系统自动检查更新,有新版本时在导航栏显示提示
---
## 🎨 UI/UX 优化
### 系统更新页面
- **美化界面**:全新的渐变背景、卡片样式和图标设计
- **Markdown 支持**:更新内容支持完整的 Markdown 渲染(标题、列表、代码块、表格等)
- **进度显示**:美观的进度条和状态提示
- **优化布局**:系统更新模块移至系统设置页面最上方,更易访问
### 版本号显示
- 使用镂空 Tag 样式,字号 8px
- 与标题垂直居中对齐
- 响应式设计,完美支持移动端和桌面端
---
## 🔧 技术改进
### 构建系统
- **修复 Docker 构建问题**
- 修复 `BUILD_IN_DOCKER=false` 时找不到前端产物的问题
- 优化 `.dockerignore` 配置,确保外部构建产物可被使用
- 修复 GitHub Actions 构建流程
- **版本号注入**
- 修复前端构建时版本号未正确传递的问题
- 支持在构建时注入 Git Tag 和版本信息
- **Gradle Wrapper**
- 修复 GitHub Actions 构建错误
- 正确配置 Gradle Wrapper JAR
### 代码质量
- 修复 TypeScript 编译错误
- 清理未使用的导入和组件
- 优化代码结构
---
## 📝 新增文档
- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术方案文档
- `docs/zh/DOCKER_VERSION.md` - Docker 版本管理说明
- `docs/zh/DYNAMIC_UPDATE_CHECK.md` - 动态更新检查机制文档
- `scripts/README_RELEASE.md` - Release 脚本使用说明
- `scripts/CHANGELOG_TEMPLATE.md` - 更新日志模板
---
## 🔄 升级指南
### 从 v1.1.16 升级到 v2.0.0
#### 方式一:使用动态更新功能(推荐)
1. 登录系统,进入 **系统设置****系统更新**
2. 点击 **检查更新**
3. 如果有新版本,点击 **立即升级**
4. 等待更新完成(约 30-60 秒)
5. 页面会自动刷新,更新完成
#### 方式二:重新部署 Docker 容器
```bash
# 1. 停止当前容器
docker-compose -f docker-compose.prod.yml down
# 2. 拉取新版本镜像
docker pull wrbug/polyhermes:v2.0.0
# 3. 更新 docker-compose.prod.yml 中的镜像标签
# image: wrbug/polyhermes:v2.0.0
# 4. 重新启动
docker-compose -f docker-compose.prod.yml up -d
```
### 注意事项
- ⚠️ **数据备份**:虽然更新不会删除数据,但建议在更新前备份数据库
- ⚠️ **权限要求**:执行动态更新需要管理员权限
-**向后兼容**v2.0.0 完全兼容 v1.1.16 的数据结构和配置
---
## 📊 变更统计
- **新增文件**17 个
- **修改文件**13 个
- **代码变更**+5251 行,-163 行
### 主要新增文件
- `docker/update-service.py` - 更新服务(Python Flask
- `frontend/src/pages/SystemUpdate.tsx` - 系统更新页面
- `create-release.sh` - Release 创建脚本
- `docs/zh/DYNAMIC_UPDATE.md` - 动态更新技术文档
---
## 🐛 修复的问题
- 修复 Docker 构建时找不到前端产物的问题
- 修复前端构建时版本号未正确传递的问题
- 修复 GitHub Actions 构建错误(Gradle Wrapper
- 修复 TypeScript 编译错误
---
## 📚 相关文档
- [动态更新技术方案](docs/zh/DYNAMIC_UPDATE.md)
- [Docker 版本管理](docs/zh/DOCKER_VERSION.md)
- [部署指南](docs/zh/DEPLOYMENT.md)
- [Release 脚本使用说明](scripts/README_RELEASE.md)
---
## 🙏 致谢
感谢所有使用 PolyHermes 的用户和贡献者!
---
**下载地址**
- Docker Hub: `wrbug/polyhermes:v2.0.0`
- GitHub Releases: [v2.0.0](https://github.com/WrBug/PolyHermes/releases/tag/v2.0.0)