Logan.Li
|
7fb2236b4d
|
refactor(frontend): P0 API 层收口与 http 统一
- 统一 http.ts baseURL:get/post/download/upload 均走 resolveApiUrl
- agentUtils 下沉至 lib/agent-utils,API 层移除对 components 的依赖
- 扩展 metricsApi/snmpApi/prometheusProxyApi/zabbixProxyApi
- 扩展 pipelineApi/credentialApi 覆盖流水线与凭证场景
- 14 个组件/页面禁止直连 http,统一走 @/services/api
|
2026-06-25 23:49:46 +08:00 |
|
Logan.Li
|
bfd6431b9d
|
fix(frontend): 终端弹框适配与审计实时监控布局优化
- 修复 LiveMonitorDialog 连接中卡死:WebSocket 先连、延后挂载 xterm
- 审计实时监控弹框对齐 WebSSH 布局:92vw 宽、520px 高、支持全屏
- 修复服务器终端弹框右侧黑边:fit 后同步 PTY resize,延迟二次 fit
- 抽取 xterm-utils 公共适配逻辑,统一 ResizeObserver 处理
|
2026-06-25 23:31:44 +08:00 |
|
Logan
|
4631b02f13
|
feat: 三种部署方式 — embed单容器 + 二进制部署 + K8s
新增三种部署方式(原有 docker-compose 不受影响):
1. Docker embed 单容器 (docker-compose.embed.yml):
- go:embed 前端嵌入后端二进制
- 不需要 nginx 容器,3容器→2容器
- 镜像仅 54.8MB (vs 原来 1.16GB)
- 用法: make docker-embed
2. 二进制部署 (deploy/binary/):
- make build-binary 生成单二进制
- install.sh 自动创建 systemd 服务
- 适合无 Docker 环境
- 用法: scp aiops + install.sh, bash install.sh install
3. Kubernetes 部署 (deploy/k8s/):
- devops 命名空间全套 yaml
- MySQL StatefulSet + Redis StatefulSet + Backend Deployment
- ConfigMap + Secret + Ingress
- 用法: kubectl apply -f deploy/k8s/
核心改动:
- backend/cmd/embed.go: go:embed 前端 + SPA fallback 路由
- backend/Dockerfile.embed: 四阶段构建 (前端→后端embed→agent→runtime)
- Makefile: build-binary + docker-embed 目标
- deploy/README.md: 四种部署方式对比文档
|
2026-06-21 14:20:29 +08:00 |
|
Logan
|
2d02d63806
|
feat: 定时任务关联脚本库 + 脚本库精简为shell/python
定时任务:
- 执行类型改为 Shell脚本/Python脚本/自定义命令 三选一
- Shell/Python 类型下拉关联脚本库, 选择后预览脚本内容
- 卡片显示关联脚本名 (Preload Script 已就绪)
- 去掉 playbook 类型
脚本库:
- 去掉 powershell/yaml, 只保留 shell + python
- 后端 validation 同步 oneof=shell python
涉及文件:
- script-helpers.tsx: scriptTypes 去掉 powershell/yaml
- CronJobFormDialog.tsx: 完整重写, 脚本库下拉+预览
- CronJobManager.tsx: type 标签对齐, 脚本名展示
- automation.go: CronJob type oneof 改 shell/python/command
Script type oneof 改 shell/python
|
2026-06-19 21:46:56 +08:00 |
|
Logan
|
abf2917fad
|
fix: K8s集群编辑保存失败+凭据覆盖+去掉Kubectl死按钮
问题:
1. UpdateCluster 用 CreateK8sClusterRequest (code binding:"required"),
编辑时不传 code → 校验失败 400 → 保存不成功
2. Token/KubeConfig json:"-" 不序列化, 编辑时拿不到原值,
提交空字符串覆盖真实凭据
3. 操作菜单 Kubectl 是死按钮
修复:
- UpdateCluster 改用 map[string]interface{} 接收, 逐字段更新,
空值不覆盖 (防止凭据清空)
- 新增 GET /:id/detail 返回 has_token/has_kube_config 脱敏标记
- 编辑弹框拉取详情 API 回填, Token/KubeConfig 留空显示 '已配置' 提示
- 去掉 Kubectl 死按钮, 保留 详情/配置/删除 三项
|
2026-06-19 15:08:50 +08:00 |
|
Logan
|
2f4c0df0f2
|
fix: resolve merge conflict in ServerTableRow imports
|
2026-06-18 11:47:30 +08:00 |
|
Logan
|
d0b94d39c0
|
fix: agent install.sh 404 + 三阶段构建编译agent二进制
问题: 构建上下文 ./backend 无法访问 ../agent, 导致容器内
/app/agent/deploy/install.sh 不存在, 返回 404
修复:
- Dockerfile 改为三阶段构建 (backend go1.21 + agent go1.24 交叉编译 + alpine runtime)
- docker-compose backend build context 改为项目根
- routes.go /agent/arch 安装命令改为动态获取 URL
- 新增 .dockerignore
- agent_install.go: SSH 远程安装 handler
- AgentWizard.tsx: 复制按钮 fallback + 动态 server URL
- ServerTableRow.tsx: agent 状态判断
验证: curl|bash 安装成功, agent 上报数据到 MySQL ✅
|
2026-06-18 09:44:12 +08:00 |
|
Logan
|
d0344c2f52
|
feat: Docker部署 + 云主机导入 + 终端优化
Docker 部署:
- 新增根目录 docker-compose.yml(MySQL+Redis+前后端四容器)
- 新增 frontend/Dockerfile(多阶段构建)和 nginx.conf(SPA+API反代)
- 修复 backend/Dockerfile:GOPROXY国内加速、编译整个cmd包
云主机导入功能:
- 新增 backend/internal/cloud 包:Provider接口 + 阿里云API客户端
- 新增 cloud_sync.go:区域同步/主机发现/导入 API
- 重写 CloudServerImport.tsx:4步流程(选云→选账号→选区域→发现导入)
- 修复导入外键约束失败(region_id/cloud_id 设为 NULL)
终端优化:
- 修复双X关闭按钮重影(showCloseButton=false)
- 修复最大化→最小化不恢复(ResizeObserver + 禁用CSS过渡)
其他:
- GORM AutoMigrate 逐表迁移,避免索引冲突阻塞启动
- Makefile 更新为 AIOps + 新增 docker 命令组
- .env.example 移至 backend 目录
|
2026-06-18 09:22:13 +08:00 |
|