Commit Graph
339 Commits
Author SHA1 Message Date
attacker 61a1f32e64 feat(i18n): AlertCenter 告警中心国际化 — 38 处硬编码中文改翻译键 + alert 命名空间(58 键)
- AlertCenter.tsx: StatStrip 4 标签/5 个 Tab 标题/搜索/级别+状态筛选/表头 6 列/分页/加载空状态/toast 12 处/确认弹框 3 处/一键报警描述/规则启用禁用/联系人联系组增删 全量 t() 化
- 复用 common.* 通用键(refresh/edit/delete/status)
- 新增 alert.* 命名空间: stat/tab/severity/status/table 子组 + searchPlaceholder/quickSetup/toast 等 58 键
- zh-CN/en-US 键总数 285→343 (alert 58 键, 中英完全对齐)
- tsc -b=0, npm build=✓(19.59s), 17/17 集成测试通过
2026-06-29 13:46:20 +08:00
attacker 3e9352f690 feat(i18n): ServerManager 服务器管理页国际化 — 27 处硬编码中文改翻译键 + server 命名空间(48 键)
- ServerManager.tsx: 页面标题/按钮/搜索/状态筛选/表头/分页/toast/CSV导出/确认弹框 全量 t() 化
- 复用 common.* 通用键(refresh/export/delete/status/actions/loading/running/stopped/maintenance/offline)
- 新增 server.* 命名空间: title/subtitle/batchImport/cloudImport/csvImport/addServer/searchPlaceholder/tableHeaders/pagination/toast/csv 子组
- zh-CN/en-US 键总数 242→290 (server 48 键, 中英完全对齐)
- tsc -b=0, npm build=✓(19.13s), 17/17 集成测试通过
2026-06-29 13:25:18 +08:00
attacker eb0fef7fce feat(i18n): Dashboard 页面内容国际化迁移 — 3 组件(Dashboard/DashboardCharts/DashboardRecent)硬编码中文改翻译键 + zh-CN/en-US 新增 dashboard.* 121 键(241 total)
- Dashboard.tsx: 标题/副标题/刷新/服务器按钮/StatStrip 7 标签/概览卡片标题 全部 t() 化
- DashboardCharts.tsx: 云成本概览/Top5资源使用/费用分布/月度趋势/环比标签 i18n(computeMonthChange 用 i18n.t 避开非组件上下文)
- DashboardRecent.tsx: 告警消息/证书到期/发布历史/服务器状态/集群状态 5 卡片全量 i18n
- zh-CN.json/en-US.json: dashboard 命名空间扩展 stat/alerts/certificates/releases/serversStatus/clusters/cost/topUsage/system 9 子分组
- 翻译键总数 120→241 (zh-CN/en-US 完全对齐)
- tsc -b=0, npm build=✓(19.01s), 17/17 集成测试通过, Docker healthy
2026-06-29 13:06:38 +08:00
LoganandClaude b7780c5a5a fix(agent): 修复资产重复注册(每10s新建) + 批量删除400
agent 自动注册前按 hostname 显式查重(asset_servers.hostname 无 UNIQUE 索引,OnConflict 失效导致 Agent 每次上报都 INSERT 新记录,资产越来越多)。

批量删除 BatchDeleteServers 对齐前端 {ids} 格式(原期望裸 []uint 导致 ShouldBindJSON 解析失败 400)。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 23:43:34 +08:00
LoganandClaude f820f0271f feat(remote-exec): 新增远程执行页(执行/上传) + 移除ansible命名 + 主机监控bug修复
远程执行页 RemoteExecPage:关联主机多选 + 批量执行命令 + 批量上传文件(Go-native SSH),高危操作 useConfirm 确认;后端新增 multipart /remote-exec/upload-file 接口(接收文件→SCP 转发到多台主机)。

移除 ansible 命名:菜单 /ansible→/remote、组 id automation→task、子项 id ansible→remote-exec、种子显示名 Ansible→远程执行;删除 dead code ansibleApi。

主机监控 bug:installOne 不再强制 server.Status==running(默认 stopped 导致批量安装必失败);UninstallAgent 凭据判断修正(SSH key 主机 Password 为空不应误判为无凭据而跳过远程卸载)。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 23:29:32 +08:00
LoganandClaude 0b2e43ea9e feat(llm): 大模型双协议(OpenAI+Anthropic)接入 + SSH凭证修复 + 容量预测AI解读
后端双协议: 新增 anthropic.go(Complete/Stream/工具转换) + client.go 工厂按 Protocol 路由; llm.Client 加 Stream; llm_chat 三方法收敛复用 llm.Client; resolveProtocol 按 provider 路由; Agent CLI 注入协议。编码套餐(GLM-5.2/Kimi/MiMo/Anthropic)走 Anthropic /v1/messages。

SSH凭证修复: applyCredential 正确解析凭证 JSON 的 private_key(旧实现把整个 JSON 当私钥 → ssh.ParsePrivateKey 失败 → ssh-key 登录不通); AssignCredential/批量导入/单台 CRUD 三处统一; 单台补齐 credential_id 字段(原被忽略)。

容量预测: 新增 AI 深度解读(buildCapacityInsightPrompt + PredictiveCapacityTab 按钮, 复用 aiApi.chat)。

其他: DeepSeek 模型名更新为 deepseek-v4-flash/pro; 智能助手去掉重复模型配置按钮; LLMConfig 精简生成参数(Claude Code 式)。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 22:37:46 +08:00
attackerandClaude c0ee8e4ddd refactor(frontend): api/components/pages 目录架构统一对齐菜单域 + 日志中心修复
1. 目录架构统一(API = components = 菜单域,一域一目录 + barrel)
   - log/ 提为独立顶层域(日志中心在菜单中与监控中心平级,不再塞在 monitor/)
   - task/ 拆分原 automation.ts → cron-job / script / remote-exec
   - aiops/ 合并 ai.ts + agentCli.ts → assistant + agent-cli
   - agent/ approval/ audit/ 提升为域目录
   - auth 拆分:authApi(认证自服务) + system/user.ts(userApi+ldapApi 管理端)
   - components/automation → components/task,菜单"自动化运维"→"作业任务"
   - pages/ 按域分子目录(approval/audit/monitor),删孤儿 AuditPage.tsx
   - 所有 API 符号名不变,组件经 @/api 聚合引用,运行时行为零变化

2. Loki 查询无返回修复:aiops 容器 DNS 解析外网域名失败
   (宿主机 systemd-resolved 转发链路异常),docker-compose 显式配 dns 上游

3. ES 查询框布局:工具栏单行挤 7 控件(ES 多 150px 索引框),拆两行——
   查询输入独占一行(+查询按钮),次级控件换行 flex-wrap

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 06:06:48 +00:00
attacker da01cbb119 refactor(run.sh): optimize build artifact cleanup
- clean_frontend_artifacts: add .vite/.cache/.tmp/*.tsbuildinfo cleanup
- clean_embed_static: rm -rf + mkdir handles dotfiles (was rm static/*)
- new clean_all_artifacts: unified cleanup for all deployment modes
- docker up/build/clean now call clean_all_artifacts before building
- .dockerignore: exclude .vite/*.tsbuildinfo/node cache dirs
- add ./run.sh clean standalone command
2026-06-28 03:35:36 +00:00
attacker 7ed4ce8d3a fix(log): log-datasources List 返回 {list,total} 格式对齐前端期望
前端 logCenterApi.listDatasources 期望 res.list 数组,但后端 List handler
返回裸数组导致前端取 res?.list 为 undefined。改为 model.ListResponse 对齐
项目其他列表端点的惯例格式。
2026-06-28 10:11:23 +08:00
attacker 5fb74a787a fix(log): F6 polish — log datasource create error log + schema patches for auth_type/token/headers + ES default index sync on datasource select 2026-06-28 06:04:18 +08:00
attacker 6bba6144f3 feat(monitor): F6 日志告警引擎 — AlertEngine 支持 type=log 规则查询Loki/ES+触发/恢复 + 数据源认证升级(none/basic/bearer/custom) + 从查询创建告警真实API对接 2026-06-28 04:00:38 +08:00
attacker 894cb16a05 feat(monitor): F5 链路追踪后端对接 — traceApi mock桩改真实Jaeger/Tempo代理+demo兜底
- 后端新增 monitor_trace_datasources 表 + TraceDataSource 模型 (Jaeger/Tempo)
- controller/trace_datasource.go — CRUD + TestConnection + SetDefault (7 路由)
- controller/trace_proxy.go — Jaeger API 代理 + 响应格式转换 (Trace/服务/Span)
  - GET /traces — Trace 列表 (代理 Jaeger /api/traces)
  - GET /traces/services — 服务列表 + P95/P99/errorRate 聚合
  - GET /traces/:traceId — Trace 详情 (Span 树转换)
- Demo 数据兜底: 无数据源时返回模拟数据 (6 Trace + 5 服务 + 5 Span)
- 前端 traceApi 从 mock 改真实 HTTP 调用
- 前端新增 trace-datasource.ts 数据源管理 API
- ROADMAP/TDD_PLAN/PROJECT_EVALUATION 文档同步更新
- 综合评分 90→91, 功能完整性 92→94 (mock API 清零)
2026-06-28 01:51:00 +08:00
attacker 0c2c0adaaf refactor(log-center): 清理重复/死代码组件 — 移除 DatasourceCard/DatasourceDialog/DeleteConfirmDialog/EsQueryPanel/LokiQueryPanel/LogResultsTable/LogLibraryPage/StatusDot/useLogQuery/logLibraryTypes 10 个冗余组件 (1752 行删除) 2026-06-28 01:32:25 +08:00
attacker 0c1964aa85 docs: sync CLAUDE.md + AGENTS.md with actual project state
- 分支名 main→master(仓库实际使用 master)
- Docker Compose: 4容器→3容器,aiops-backend/frontend→aiops embed
- 访问地址: localhost:80→localhost:8080, /health→/version
- 后端目录: cmd/internal→controller/model 扁平结构
- 移除 --dirty 版本后缀引用
- 新增日志中心(log_proxy/log_datasource/UnifiedQueryPanel等)
- 新增 i18n 国际化(i18next, 120+翻译键)
- Dockerfile.embed 说明更正为 K8s 专用
2026-06-27 17:18:35 +00:00
attacker f725ca7cac feat(monitor): F4 自定义监控仪表盘 — mock 桩改真实 CRUD + PromQL 查询渲染
后端:
- 新增 model/custom_dashboard.go (monitor_custom_dashboards 表)
- 新增 controller/custom_dashboard.go (CRUD + 设默认, 6 路由)
- routes.go 注册 /custom-dashboards 路由组
- database.go AutoMigrate 注册 CustomDashboard

前端:
- grafana.ts: dashboardApi 从 mock 返回空改为真实 HTTP 调用
- metrics.ts: prometheusProxyApi 新增 query/queryRange 方法
- GrafanaPanelContent.tsx: 从随机 mock 数据改为执行 PromQL 查询
  + Recharts LineChart 渲染 graph 类型
  + SVG gauge 渲染 gauge 类型
  + 数值卡片渲染 stat 类型
  + 表格渲染 table 类型
  + 30s 自动刷新 + loading/error 状态
  + 自动发现默认 Prometheus 数据源
- GrafanaDashboard.tsx: 传递 datasourceUrl 到 GrafanaPanelContent

验证: go build✅ npm build✅ 17/17 集成测试通过 E2E CRUD 全通过
2026-06-27 23:28:04 +08:00
attacker 7af10097c9 fix(log): input text visibility + space-in-date 502
- UnifiedQueryPanel: fix JS operator precedence — .replace(' ','T') was
  called on '.000Z' suffix instead of concatenated string, resulting in
  '2026-06-27 12:46:28.000Z' (space not replaced) → ES 502
- normalizeTime: add space→T fallback for backward compat
- SyntaxHighlightInput: fix z-index layering (textarea z=2 was covering
  pre z=1, making highlighted text invisible). Move bg/border to parent,
  textarea bg→transparent, pre above textarea
2026-06-27 12:54:31 +00:00
attacker d40042d86e fix(build): kubectl download add --max-time 120 + aliyun mirror fallback 2026-06-27 10:34:31 +00:00
attacker 17059bff98 fix(log): normalizeTime — auto-append .000ms for ES 7.2.0 date_time compat
Frontend may send dates without milliseconds (e.g. 2026-06-27T09:09:17Z),
which ES 7.2.0 strict_date_optional_time rejects. Backend now detects missing
milliseconds and inserts .000 before timezone suffix.
2026-06-27 10:28:41 +00:00
attacker a04d815efe fix(log): ES 7.2.0 time format .SSSZ + index dropdown + demo always visible
- ES query 502 fix: remove +00:00 conversion, use native .SSSZ format
  (ES 7.2.0 date_time = strict_date_optional_time only, rejects +00:00/epoch)
- parseLogTime: use time.RFC3339Nano for fractional seconds
- new API GET /log-datasources/indices to list ES indices via proxy
- LogDatasourceDialog: add '获取索引' button + Select dropdown for ES
- LogDatasourcePage: always show demo sources alongside real ones
2026-06-27 09:45:21 +00:00
attacker 2e179ef7f4 feat(i18n): U3 国际化 — react-i18next 双语框架 + 侧边栏/Header/Login 全量翻译 + 语言切换器
- 安装 i18next + react-i18next,创建 src/i18n/ 配置实例
- 创建 zh-CN.json (120+ 键) + en-US.json 全量英文翻译
- 侧边栏 42+ 菜单项全量 labelKey 国际化
- Header 通知/主题/用户菜单全量翻译
- Login 页面表单/按钮/主题+语言切换器
- zustand useLanguageStore 持久化语言选择
- HTML lang 属性自动同步
- tsc -b=0, npm build=✅, 17/17 测试通过
2026-06-27 16:54:07 +08:00
attacker 084a3be2cf fix(log-center): ES 时间戳双字段兼容 + AI助手按钮去重清理 2026-06-27 16:31:06 +08:00
attacker 36bd0a6155 fix(log-center): 修复 demo 数据源、ES 502、查询页关联 2026-06-27 07:14:54 +00:00
attacker c624ca5b4a feat(ops): U4 后端镜像瘦身 282MB→107MB (62%降幅)
- 移除 git/docker-cli/docker-cli-buildx (~100MB) 改为懒加载
- PipelineHandler 注入 ToolInstaller, runCheckout/runImageBuild 调 EnsureAvailable
- UpgradeTools 自动升级 DB 中 git/docker-cli preinstall→lazy
- 仅内置 linux-amd64 agent (~12MB节省), arm64/darwin 通过下载API
- kubectl 改用 install-kubectl.sh 下载 stripped 版本
- .dockerignore 排除 backend/kubectl 60MB 二进制
- Dockerfile.embed + backend/Dockerfile 同步更新
- 17/17 集成测试通过
2026-06-27 14:28:09 +08:00
attacker 8dd5a07b70 feat(log-center): v0.96 日志库/查询页数据源打通 + AgentCLI 输入修复 + AI助手按钮去重 2026-06-27 14:07:11 +08:00
attacker ba8a4b5f19 feat(ux): U2 统一 DataTable 组件 — 封装排序/搜索/分页/导出/选择/列可见性通用表格 + 迁移 RegionManager/LoginLogsTab/LogDatasourcePage 3 个页面 2026-06-27 12:02:34 +08:00
attacker bdf3c2daf4 feat(log-center): 日志中心 v4 全量组件 — 统一查询面板/时间选择器/统计图表/聚类/数据源管理 2026-06-27 11:41:50 +08:00
attacker 880cf050fe perf: kubectl 本地复制替代网络下载 (去 install-kubectl.sh 卡点)
- 运行时 kubectl 从 backend/kubectl COPY 进镜像 (58MB 预打包)
- 去除 install-kubectl.sh 网络下载 (~10-30s 耗时)
- go build 已从 77s → 24s (CGO_ENABLED=0 + cache mount)
2026-06-27 02:37:50 +00:00
attacker 5f83d6e650 perf: Docker build 提速 — 去 gcc/musl-dev + CGO_ENABLED=0 + cache mount
- 移除 gcc musl-dev (纯 Go SQLite 不需要 CGO)
- CGO_ENABLED=1 → 0 (编译提速 ~2-3x)
- go mod download/go build 加 --mount=type=cache 跨构建复用
2026-06-27 02:03:34 +00:00
attackerandClaude 92a2247390 feat: 新增 Agent CLI — Web 版 AI 运维 Agent(参考 opsxcli 移植)
后端引擎 backend/pkg/agentcli/(纯引擎库,零业务依赖,剥离 CLI/TUI 外壳):
- llm: OpenAI 兼容客户端,复用 model.LLMConfig
- tools: ssh_execute(复用 pkg/remoteexec)+ analyze_output + 风险评估黑名单
- safety: 三级安全模式 + 五级风险 + WebSocket 异步确认
- prompt: 五层 System Prompt
- core: ReAct 16 轮循环 + 自适应检查点 + 循环检测
- evolver: 四层记忆 + 进化循环,data/agentcli/ 文件存储

集成层:
- controller/agent_cli.go: WebSocket 控制器(事件流推流 + 高危确认 + 会话持久化)
- model/agent_cli.go: agent_cli_sessions/messages 表 + AutoMigrate
- 路由 /ws/agent-cli + /api/v1/aiops/agent-cli/sessions
- seed 权限 aiops:agent-cli / aiops:llm-config

前端:
- AgentCLI.tsx: 对话流 + 工具块 + 高危确认 + 四模块 tips 面板
- LLMConfig.tsx: 大模型设置独立页
- api/agentCli.ts + Sidebar/App 菜单路由

文档:
- docs/agent/ 11 篇(opsxcli 同名文档适配改写 + 00-README 映射总览)

其他:
- CLAUDE.md 补充 agent-cli 模块说明
- 修正 .gitignore 根级二进制规则(前导 /,避免误伤 frontend/src/components/aiops/)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 09:55:17 +08:00
attacker f2069fe3f0 feat(ux): U1 虚拟滚动 — Pod/事件/审计/命令列表大数据量渲染优化
- 安装 @tanstack/react-virtual@3.14.4
- 新增 hooks/useVirtualRows.ts 可复用虚拟滚动 Hook
- PodsTab: 全量渲染→虚拟滚动, 支持 1000+ Pod + 动态行高(展开行)
- EventTable: 移除 maxRows=200 截断, 万级事件流畅渲染
- AuditOperationsTab: shadcn Table→虚拟滚动 CSS Grid 布局
- SessionCommandsPanel: 虚拟滚动, page_size 200→500
- npm run build ✅, tsc --noEmit ✅, 17/17 集成测试通过
2026-06-27 09:36:17 +08:00
attacker e4f1018ca1 feat(ws): A3 WebSocket 统一连接管理 — 心跳/注册表/监控/优雅关闭
- 新增 pkg/wshub/manager.go 统一 WebSocket 连接管理器 (WSManager)
- 6 个 WebSocket handler 全部迁移: WebShell/kubectl/PodExec/Audit/Metrics/Pipeline
- 心跳机制: ping(30s) + pong handler + read deadline(60s) 自动检测死连接
- 连接注册表: 元数据(类型/用户/远程地址/连接时间/最后活跃)
- 每用户连接限制 MaxConnsPerUser=15 防资源耗尽
- 监控端点: GET /api/v1/ws/stats + GET /api/v1/ws/connections
- 优雅关闭: CloseAll() 发送 CloseGoingAway 帧并关闭所有连接
- 消除 3 个重复 websocket.Upgrader 变量统一为 WSManager 内部 upgrader
- 6/6 A3 测试通过, 17/17 回归测试通过
2026-06-27 07:20:11 +08:00
attacker 00a98e210d feat(k8s): A1 K8s 双路由体系统一 — code 路由为主, ID 路由标记 deprecated
后端:
- 新增 4 条 all-NS code 路由: services/ingresses/cronjobs/nodes
- ListNodes 改用 getK8sClientByCode (兼容 ID+code)
- ID 域资源路由标记 // Deprecated

前端:
- clusterApi/nodeApi/workloadApi 资源方法迁移到 code 路由
- KubernetesClusterDetail/TopologyView/KubernetesNodes 组件从 cluster.id 迁移到 cluster.code
- 修复潜在 bug: ClusterOverviewPage 曾将 code 传给 ID-based getNodes

验证: 16/16 API 测试通过 (7 新 code 路由 + 3 旧 ID 兼容 + 6 回归)
go build=✅ tsc -b=✅ npm build=✅
2026-06-27 04:50:58 +08:00
attacker bb2b91ebe0 feat(q1): 前端类型安全治理完成 — any 83→40, P0 全部 done
- types/monitor.ts: 新增 6 个运行时记录类型(AlertEventRecord/AlertRuleRecord/
  AgentHostRecord/CronJobRecord/CertExpiryRecord/ApprovalWorkflowStepRecord)
- types/common.ts: 新增 OptionItem 通用下拉类型
- 组件级 any 清理 43 处:
  - AlertEventsTab/AlertRulesTab/AlertChannelDialog/alertShared (19处)
  - AuditOperationsTab normalizeLog + 筛选器 (8处)
  - CronJobManager 任务列表/编辑/操作 (6处)
  - AgentMonitor 主机列表/命令执行 (5处)
  - DashboardRecent 5 张卡片组件 (5处)
  - AlertManager 状态类型对齐 (联动修复)
  - Dashboard.tsx 调用端类型对齐 (联动修复)
- AlertChannel 接口新增 test_status 字段
- ESLint any: 83→40 (<50 目标达成)
- tsc -b / tsc --noEmit: 零错误
- npm run build: ✓ built in 17.11s
- 9/9 核心 API 回归通过
2026-06-27 02:31:26 +08:00
attacker 0535f30c87 chore: 同步前端组件更新 (K8s/Agent/Monitor 相关) 2026-06-26 15:49:31 +00:00
attacker 09d3f5b6e8 chore: 排除前端构建产物,不再追踪 backend/static 生成文件 2026-06-26 23:48:44 +08:00
attacker 310196a791 chore: gitignore 排除前端构建产物 backend/static/ (111 hash 文件) 2026-06-26 15:31:34 +00:00
attacker 83e1978ab0 chore: gitignore 排除二进制构建产物 (.aiops.args, aiops.bak.*) 2026-06-26 15:31:08 +00:00
attacker 4e384ca401 chore: 重新编译前端产物(补装CodeMirror依赖) 2026-06-26 23:29:08 +08:00
Logan 23e9e3da62 merge: 合并远程 A2 告警引擎分布式安全更新,保留本地日志中心等最新改动 2026-06-26 23:19:42 +08:00
Logan 8d46e8f352 feat: 新增日志中心、功能优化与代码重构
- 新增 log_datasource.go / log_proxy.go / user_api_token.go 后端控制器
- 新增 log_datasource.go model
- 新增 monitor/log-center.ts API 模块
- 新增 LogCenter 前端组件及页面
- 重构 deployment 相关组件 (HPDA/UpdateImageModal/bundle-yaml 等)
- 新增 ResetPasswordDialog / code-snippet-block / copy-button 等 UI 组件
- 重构多个 k8s 相关组件 (TopologyView/ResourceVisualEditor/PodFileBrowser 等)
- 更新多个 API 和工具函数 (auth.ts/monitor/index.ts/request.ts 等)
- 更新静态资源 (index.html + 新 JS/CSS bundle)
- 删除废弃静态资源文件
2026-06-26 23:18:05 +08:00
attacker c68aef4444 feat(alert): A2 告警引擎分布式安全 — Redis 分布式锁(SetNX)
- Cache 接口新增 SetNX 方法(go-redis 原子 / redka check-then-set 单副本安全)
- AlertEngine 改造为支持分布式锁: tryAcquireLock/releaseLock/GetEngineStatus
- 多副本部署时仅 Leader 执行告警检查, 60s TTL 防死锁, fail-open 容错
- 新增 GET /alerts/engine/status 监控端点(is_leader/instance_id/lock_holder)
- 修复 GrafanaDashboard.tsx Panel.options 类型不匹配导致构建中断
- 同步未提交的前端类型安全迁移(140+ 文件)
- ROADMAP/TDD_PLAN/PROJECT_EVALUATION 三文档同步更新

验证: go build 零错误, Docker 部署 healthy, 引擎状态端点正常,
锁竞争测试通过(非 Leader 跳过检查), 5/5 核心 API 回归通过
2026-06-26 21:13:15 +08:00
Logan.Li 5ca0e6d83a fix(docker): Alpine apk 镜像源 403 时自动回退阿里云/官方
- 新增 scripts/setup-alpine-mirrors.sh 探测可用镜像
- 移除硬编码清华源,runtime 固定 alpine:3.20 避免 latest 漂移
2026-06-26 19:12:38 +08:00
Logan.Li aac15122e5 chore(deploy): 删除废弃 nginx 配置并更新部署文档
- 移除 deploy/nginx/(旧前后端分离方案已无引用)
- 重写 deploy/README.md 对齐 embed 三种部署方式
- 更新 deploy/kubernetes/README.md(lghost/aiops 镜像与 release 命令)
2026-06-26 19:08:10 +08:00
Logan.Li 9215cd9b8c fix(docker): 构建时按 TARGETARCH 下载 kubectl,移除 backend/kubectl 依赖
- 新增 scripts/install-kubectl.sh,支持 linux amd64/arm64
- Dockerfile.embed 后端 CGO 编译跟随 TARGETARCH,修复 Mac ARM 构建失败
- backend/Dockerfile 同步改为构建时下载 kubectl
2026-06-26 19:06:57 +08:00
Logan.Li e8d79e409f chore(gitignore): 明确忽略 SQLite WAL 附属文件与根目录 config.yaml
sqlite3.db-shm/wal、redka.db-shm/wal 为 WAL 模式临时文件,非独立数据库。
2026-06-26 18:53:55 +08:00
Logan.Li 73fb8578bc chore(gitignore): 忽略 deb/rpm 安装包与 aiops-* 编译产物
防止 zabbix-release 等 .deb 及 aiops-mac 等二进制再次误提交。
2026-06-26 18:52:02 +08:00
Logan e5590b76c9 update 2026-06-26 18:50:46 +08:00
Logan.Li 286decf0b0 docs: 同步 README 与 docs 至最新部署与版本方案
- 更新三种部署方式:embed 单容器、./aiops 根目录二进制
- 补充版本管理、release、lghost/aiops 镜像推送说明
- 修正过时的 docker 4 容器、backend/aiops、run.sh start 等描述
- 更新 project-structure、deployment、quick-start 等核心文档
2026-06-26 16:39:00 +08:00
Logan.Li 9f5ce249f1 feat(release): 统一版本与 embed 部署,推送 lghost/aiops 镜像
- resolve_version 统一二进制/Docker/K8s 版本解析
- docker-compose 简化为 mysql+redis+aiops 单应用容器
- 新增 release/docker push/kubernetes push 构建并推送 Docker Hub
- K8s deployment 镜像改为 lghost/aiops:<tag> 语义版本
2026-06-26 16:37:15 +08:00
Logan.Li 8be51ac514 feat(build): 支持 build tag 版本注入并清理历史二进制
- ./run.sh build 仅输出项目根目录 ./aiops,构建前清理 backend/aiops-*
- 新增 ./run.sh build tag v1.0.1,通过 ldflags 注入 Version/BuildTime/GitCommit
- 支持 ./aiops version 子命令查看编译版本
- 删除误提交的 backend/aiops-cgo,gitignore 忽略 backend/aiops-*
2026-06-26 16:27:08 +08:00