mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-12 02:20:36 +08:00
- 新增 POST /api/system/update-apply,执行 docker pull + docker compose up -d - 前端系统设置页新增「一键更新(Docker)」按钮,点击后自动拉取新镜像并重启容器 - Dockerfile 安装 docker-cli + docker-cli-compose - docker-compose.yml 挂载 /var/run/docker.sock 以支持容器内操作 Docker - 自动检测是否为 Docker 环境,非 Docker 环境引导下载二进制
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package http
|
|
|
|
import (
|
|
"backupx/server/internal/service"
|
|
"backupx/server/pkg/response"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type SystemHandler struct {
|
|
systemService *service.SystemService
|
|
}
|
|
|
|
func NewSystemHandler(systemService *service.SystemService) *SystemHandler {
|
|
return &SystemHandler{systemService: systemService}
|
|
}
|
|
|
|
func (h *SystemHandler) Info(c *gin.Context) {
|
|
response.Success(c, h.systemService.GetInfo(c.Request.Context()))
|
|
}
|
|
|
|
func (h *SystemHandler) ApplyUpdate(c *gin.Context) {
|
|
var input struct {
|
|
Version string `json:"version"`
|
|
}
|
|
_ = c.ShouldBindJSON(&input)
|
|
result := h.systemService.ApplyDockerUpdate(c.Request.Context(), input.Version)
|
|
response.Success(c, result)
|
|
}
|
|
|
|
func (h *SystemHandler) CheckUpdate(c *gin.Context) {
|
|
result, err := h.systemService.CheckUpdate(c.Request.Context())
|
|
if err != nil {
|
|
// 即使检查失败也返回当前版本信息
|
|
response.Success(c, gin.H{
|
|
"currentVersion": result.CurrentVersion,
|
|
"hasUpdate": false,
|
|
"error": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
response.Success(c, result)
|
|
}
|