docs: 同步 README 与 docs 至最新部署与版本方案
- 更新三种部署方式:embed 单容器、./aiops 根目录二进制 - 补充版本管理、release、lghost/aiops 镜像推送说明 - 修正过时的 docker 4 容器、backend/aiops、run.sh start 等描述 - 更新 project-structure、deployment、quick-start 等核心文档
This commit is contained in:
1 parent
9f5ce249f1
commit
286decf0b0
8 files changed
+593
-487
No files matched your search
+79
-140
@@ -4,152 +4,82 @@
|
||||
|
||||
```
|
||||
aiops/
|
||||
├── frontend/ # 前端 (React 18 + TypeScript + Vite)
|
||||
├── frontend/ # 前端 (React 19 + TypeScript + Vite)
|
||||
│ ├── src/
|
||||
│ │ ├── components/ # 业务组件(每个 <700行,超限已模块化拆分)
|
||||
│ │ ├── components/ # 业务组件(单文件 <700 行)
|
||||
│ │ │ ├── agent/ # Agent 监控
|
||||
│ │ │ ├── aiops/ # AI 智能运维(AIPredictiveAnalytics 含 PredictiveCapacityTab)
|
||||
│ │ │ ├── approval/ # 审批流程(ApprovalFlow + Process/Template Tab)
|
||||
│ │ │ ├── audit/ # SQL 审计
|
||||
│ │ │ ├── automation/ # 自动化运维(CronJob/Script/Ansible)
|
||||
│ │ │ ├── cloud/ # 云平台管理(CloudBilling + Helpers 子组件)
|
||||
│ │ │ ├── dashboard/ # 仪表盘(Charts/Recent/Stats 子组件)
|
||||
│ │ │ ├── aiops/ # AI 智能运维
|
||||
│ │ │ ├── approval/ # 审批流程
|
||||
│ │ │ ├── automation/ # 自动化运维
|
||||
│ │ │ ├── cloud/ # 云平台管理
|
||||
│ │ │ ├── dashboard/ # 仪表盘
|
||||
│ │ │ ├── deploy/ # CI/CD 部署
|
||||
│ │ │ ├── k8s/ # K8s 集群管理(Detail/Dialog/Topology 子组件)
|
||||
│ │ │ ├── layout/ # 布局组件
|
||||
│ │ │ ├── monitor/ # 监控告警(AlertManager + Events/Rules Tab + Dialog 子组件)
|
||||
│ │ │ │ ├── alert-center/ # 告警中心(AlertCenter + Detail 子组件)
|
||||
│ │ │ │ ├── dashboard/ # Grafana 仪表盘(GrafanaPanelContent 子组件)
|
||||
│ │ │ │ ├── logs/ # 日志管理
|
||||
│ │ │ │ └── trace/ # 链路追踪
|
||||
│ │ │ ├── navigation/ # 导航管理
|
||||
│ │ │ ├── server/ # 服务器管理(ServerManager + Form/BatchImport 子组件)
|
||||
│ │ │ ├── system/ # 系统管理(SystemManager + User/Settings/Logs/Roles/LDAP Tab 子组件)
|
||||
│ │ │ └── ui/ # shadcn/ui 基础组件(sidebar.tsx + sidebar-context.tsx)
|
||||
│ │ │ ├── k8s/ # K8s 集群管理
|
||||
│ │ │ ├── monitor/ # 监控告警
|
||||
│ │ │ ├── server/ # 服务器管理
|
||||
│ │ │ ├── system/ # 系统管理
|
||||
│ │ │ └── ui/ # shadcn/ui 基础组件
|
||||
│ │ ├── hooks/ # 自定义 Hooks
|
||||
│ │ ├── lib/ # 工具库
|
||||
│ │ ├── mocks/ # Mock 数据(按 domain 模块化,barrel 统一导出)
|
||||
│ │ │ ├── data.ts # Barrel re-export(统一入口)
|
||||
│ │ │ └── modules/ # 按业务域分组
|
||||
│ │ │ ├── servers.ts # 服务器/机柜
|
||||
│ │ │ ├── cloud.ts # 云平台
|
||||
│ │ │ ├── k8s.ts # K8s
|
||||
│ │ │ ├── alerts.ts # 告警
|
||||
│ │ │ ├── dashboard.ts # 仪表盘
|
||||
│ │ │ ├── cicd.ts # CI/CD
|
||||
│ │ │ ├── automation.ts # 自动化
|
||||
│ │ │ ├── system.ts # 系统
|
||||
│ │ │ ├── approval.ts # 审批
|
||||
│ │ │ ├── monitor.ts # 监控
|
||||
│ │ │ └── misc.ts # SQL审计/Ansible/导航等
|
||||
│ │ ├── services/ # API 封装
|
||||
│ │ ├── services/ # API 封装 (api.ts / http.ts)
|
||||
│ │ ├── store/ # Zustand 状态管理
|
||||
│ │ ├── types/ # TypeScript 类型定义
|
||||
│ │ ├── App.css # 全局样式
|
||||
│ │ ├── App.tsx # 根组件
|
||||
│ │ ├── index.css # 基础样式
|
||||
│ │ └── main.tsx # 应用入口
|
||||
│ │ └── types/ # TypeScript 类型
|
||||
│ ├── package.json
|
||||
│ ├── vite.config.ts # Vite 配置(含 API 代理)
|
||||
│ ├── tailwind.config.js # Tailwind CSS 配置
|
||||
│ └── tsconfig.json
|
||||
│ ├── vite.config.ts
|
||||
│ └── Dockerfile # [legacy] 独立 Nginx 镜像
|
||||
│
|
||||
├── backend/ # 后端 (Go + Gin + GORM)
|
||||
│ ├── cmd/
|
||||
│ │ └── main.go # 应用入口
|
||||
│ ├── internal/
|
||||
│ │ ├── api/
|
||||
│ │ │ ├── handlers/ # HTTP 处理器(模块化拆分)
|
||||
│ │ │ │ ├── agent.go # Agent 管理
|
||||
│ │ │ │ ├── agent_task.go # Agent 任务分发
|
||||
│ │ │ │ ├── alert.go # 告警管理
|
||||
│ │ │ │ ├── alert_engine.go # 告警引擎
|
||||
│ │ │ │ ├── ansible.go # Ansible Playbook
|
||||
│ │ │ │ ├── approval.go # 审批流程
|
||||
│ │ │ │ ├── audit.go # 审计日志
|
||||
│ │ │ │ ├── automation.go # 自动化运维(入口)
|
||||
│ │ │ │ ├── automation_cron.go # 定时任务
|
||||
│ │ │ │ ├── automation_script.go # 脚本管理
|
||||
│ │ │ │ ├── automation_playbook.go # Playbook
|
||||
│ │ │ │ ├── billing.go # 云账单
|
||||
│ │ │ │ ├── cloud_accounts.go # 云账号
|
||||
│ │ │ │ ├── cloud_domain.go # 域名
|
||||
│ │ │ │ ├── cloud_platform.go # 云平台
|
||||
│ │ │ │ ├── cloud_region.go # 区域
|
||||
│ │ │ │ ├── dashboard.go # 仪表盘
|
||||
│ │ │ │ ├── k8s.go # K8s 管理
|
||||
│ │ │ │ ├── ldap.go # LDAP(入口)
|
||||
│ │ │ │ ├── ldap_ou.go # LDAP OU 管理
|
||||
│ │ │ │ ├── ldap_users.go # LDAP 用户同步
|
||||
│ │ │ │ ├── log.go # 日志管理
|
||||
│ │ │ │ ├── navigation.go # 导航管理
|
||||
│ │ │ │ ├── pipeline.go # CI/CD 流水线
|
||||
│ │ │ │ ├── resource_model.go # 资源模型
|
||||
│ │ │ │ ├── server.go # 服务器管理(入口)
|
||||
│ │ │ │ ├── user.go # 用户认证
|
||||
│ │ │ │ ├── user_admin.go # 用户管理(管理员)
|
||||
│ │ │ │ └── webshell.go # Web 终端
|
||||
│ │ │ ├── middleware/ # 中间件
|
||||
│ │ │ │ └── auth.go # JWT 认证 + RBAC
|
||||
│ │ │ └── routes/
|
||||
│ │ │ └── routes.go # 路由注册
|
||||
│ │ ├── config/
|
||||
│ │ │ └── config.go # 配置加载 (Viper)
|
||||
│ │ └── models/ # 数据模型
|
||||
│ │ ├── alert.go # 告警模型
|
||||
│ │ ├── approval.go # 审批模型
|
||||
│ │ ├── audit.go # 审计日志模型
|
||||
│ │ ├── automation.go # 自动化运维模型
|
||||
│ │ ├── cicd.go # CI/CD 模型
|
||||
│ │ ├── common.go # 通用模型 (Response/List/Page)
|
||||
│ │ ├── k8s.go # K8s 模型
|
||||
│ │ ├── navigation.go # 导航模型
|
||||
│ │ ├── server.go # 服务器模型
|
||||
│ │ └── user.go # 用户模型
|
||||
│ ├── pkg/
|
||||
│ │ ├── database/
|
||||
│ │ │ └── database.go # 数据库连接 + AutoMigrate
|
||||
│ │ └── logger/
|
||||
│ │ └── logger.go # Zap 日志
|
||||
│ ├── scripts/
|
||||
│ │ ├── init.sql # 初始化 SQL
|
||||
│ │ └── mock.go # Mock 数据生成
|
||||
│ ├── config.yaml # 配置文件(SQLite 默认)
|
||||
│ ├── go.mod # Go 模块定义
|
||||
│ ├── Dockerfile # Docker 构建
|
||||
├── backend/ # 后端 (Go 1.24 + Gin + GORM)
|
||||
│ ├── main.go # 应用入口(CLI + HTTP 服务)
|
||||
│ ├── embed.go # go:embed 前端静态资源
|
||||
│ ├── static/ # 前端构建产物(embed 目录)
|
||||
│ ├── config/ # Viper 配置加载
|
||||
│ ├── controller/ # HTTP 处理器
|
||||
│ ├── middleware/ # JWT / 日志 / CORS
|
||||
│ ├── router/ # 路由注册
|
||||
│ ├── model/ # GORM 数据模型
|
||||
│ ├── dto/ # 请求/响应 DTO
|
||||
│ ├── service/ # 业务逻辑层
|
||||
│ ├── repository/ # 数据访问层
|
||||
│ ├── seed/ # 种子数据
|
||||
│ ├── pkg/ # 公共包
|
||||
│ │ ├── database/ # DB 连接 + AutoMigrate
|
||||
│ │ ├── kubernetesclient/ # 轻量 K8s 客户端
|
||||
│ │ ├── remoteexec/ # Go-native SSH
|
||||
│ │ └── toolinstaller/ # 工具懒加载
|
||||
│ ├── config.yaml # 默认配置
|
||||
│ └── Dockerfile # [legacy] 分离式后端镜像
|
||||
│
|
||||
├── agent/ # 监控 Agent (Go, 独立 module ezops/agent)
|
||||
│ ├── main.go # CLI 入口 (-server/-interval/-token/-hostname)
|
||||
│ ├── collector/ # CPU/mem/disk/port/system 采集器 (/proc)
|
||||
│ ├── model/model.go # 上报数据结构 (Report/CPUStat/MemStat/...)
|
||||
│ ├── model/model_ext.go # 扩展类型 (NetworkStat/DiskIOStat/SystemStat)
|
||||
│ ├── reporter/http.go # HTTP POST 上报
|
||||
│ ├── task/ # 远程任务执行 (云助手模式)
|
||||
│ ├── deploy/ # systemd service + install.sh 一键安装
|
||||
│ ├── Makefile # 交叉编译 amd64+arm64+darwin-arm64
|
||||
│ └── bin/ # 编译产物 (gitignore)
|
||||
├── agent/ # 监控 Agent(独立 Go module)
|
||||
│ ├── main.go # CLI 入口
|
||||
│ ├── collector/ # /proc 指标采集
|
||||
│ ├── task/ # 远程任务执行
|
||||
│ ├── reporter/ # HTTP 上报
|
||||
│ └── deploy/ # install.sh + systemd
|
||||
│
|
||||
├── docs/ # 开发文档
|
||||
│ ├── README.md # 文档索引
|
||||
│ ├── dev-log.md # 开发日志
|
||||
│ ├── project-structure.md # 本文件
|
||||
│ ├── quick-start.md # 快速开始
|
||||
│ ├── api-reference.md # API 接口
|
||||
│ ├── database-schema.md # 数据库设计
|
||||
│ ├── development-guide.md # 开发规范
|
||||
│ ├── deployment.md # 部署指南
|
||||
│ ├── ROADMAP.md # 项目路线图
|
||||
│ ├── PDD_PLAN.md # 产品开发计划
|
||||
│ ├── PROJECT_SUMMARY.md # 项目概述
|
||||
│ └── BACKEND_SUMMARY.md # 后端摘要
|
||||
├── deploy/kubernetes/ # K8s 清单 (devops 命名空间)
|
||||
│ ├── namespace.yaml
|
||||
│ ├── deployment.yaml # embed 单容器, lghost/aiops:<tag>
|
||||
│ ├── mysql.yaml / redis.yaml
|
||||
│ └── ...
|
||||
│
|
||||
├── run.sh # 一键启动脚本
|
||||
├── Makefile # 快捷命令
|
||||
├── .env.example # 环境变量模板
|
||||
├── .gitignore
|
||||
├── docs/ # 开发文档(本目录)
|
||||
├── docker-compose.yml # MySQL + Redis + AIOps embed
|
||||
├── docker-compose.k8s.yml # 单应用 + 外部 DB
|
||||
├── Dockerfile.embed # embed 单容器镜像(推荐)
|
||||
├── run.sh # 统一入口脚本
|
||||
├── aiops # 独立二进制产物(gitignore)
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 部署相关文件
|
||||
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `run.sh` | build / docker / kubernetes / release 统一入口 |
|
||||
| `Dockerfile.embed` | 生产推荐:前端嵌入后端单容器 |
|
||||
| `docker-compose.yml` | 3 容器:MySQL + Redis + AIOps |
|
||||
| `backend/static/` | `go:embed` 目标,由 `./run.sh build` 同步 |
|
||||
| `./aiops` | 独立二进制输出路径(项目根目录) |
|
||||
|
||||
## 技术栈
|
||||
|
||||
### 前端
|
||||
@@ -168,18 +98,27 @@ aiops/
|
||||
|
||||
| 技术 | 版本 | 用途 |
|
||||
|------|------|------|
|
||||
| Go | 1.21+ | 编程语言 |
|
||||
| Go | 1.24+ | 编程语言 |
|
||||
| Gin | v1.10+ | Web 框架 |
|
||||
| GORM | v1.25+ | ORM 框架 |
|
||||
| JWT | v5 (golang-jwt) | 认证 |
|
||||
| GORM | v1.25+ | ORM |
|
||||
| JWT | v5 | 认证 |
|
||||
| Viper | - | 配置管理 |
|
||||
| Zap | - | 结构化日志 |
|
||||
| SQLite/MySQL/PostgreSQL | - | 数据库 |
|
||||
| SQLite / MySQL / Redis | - | 存储 |
|
||||
|
||||
## 端口分配
|
||||
|
||||
| 服务 | 端口 | 说明 |
|
||||
|------|------|------|
|
||||
| 前端 (Vite dev) | 5173 | http://localhost:5173 |
|
||||
| 后端 (Gin) | 8080 | http://localhost:8080 |
|
||||
| 健康检查 | 8080 | http://localhost:8080/health |
|
||||
| 前端 (Vite dev) | 5173 | 开发模式 |
|
||||
| 后端 / embed 部署 | 8080 | API + WebSocket + SPA |
|
||||
| Docker Compose MySQL | 3306 | 可选暴露 |
|
||||
| K8s NodePort | 30080 | 集群外访问 |
|
||||
|
||||
## 版本信息注入
|
||||
|
||||
编译时通过 ldflags 注入 `main.Version` / `BuildTime` / `GitCommit`:
|
||||
|
||||
- `./run.sh build` / `./run.sh build tag v1.5.0`
|
||||
- `Dockerfile.embed` 构建参数 `VERSION` / `BUILD_TIME` / `GIT_COMMIT`
|
||||
- 运行时:`./aiops version`、`GET /version`
|
||||
Reference in new issue
Block a user