Files
aiops/docs/project-structure.md
T
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

124 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目结构
## 整体结构
```
aiops/
├── frontend/ # 前端 (React 19 + TypeScript + Vite)
│ ├── src/
│ │ ├── components/ # 业务组件(单文件 <700 行)
│ │ │ ├── agent/ # Agent 监控
│ │ │ ├── aiops/ # AI 智能运维
│ │ │ ├── approval/ # 审批流程
│ │ │ ├── automation/ # 自动化运维
│ │ │ ├── cloud/ # 云平台管理
│ │ │ ├── dashboard/ # 仪表盘
│ │ │ ├── deploy/ # CI/CD 部署
│ │ │ ├── k8s/ # K8s 集群管理
│ │ │ ├── monitor/ # 监控告警
│ │ │ ├── server/ # 服务器管理
│ │ │ ├── system/ # 系统管理
│ │ │ └── ui/ # shadcn/ui 基础组件
│ │ ├── hooks/ # 自定义 Hooks
│ │ ├── services/ # API 封装 (api.ts / http.ts)
│ │ ├── store/ # Zustand 状态管理
│ │ └── types/ # TypeScript 类型
│ ├── package.json
│ ├── vite.config.ts
│ └── Dockerfile # [legacy] 独立 Nginx 镜像
│
├── 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)
│ ├── main.go # CLI 入口
│ ├── collector/ # /proc 指标采集
│ ├── task/ # 远程任务执行
│ ├── reporter/ # HTTP 上报
│ └── deploy/ # install.sh + systemd
│
├── deploy/kubernetes/ # K8s 清单 (devops 命名空间)
│ ├── namespace.yaml
│ ├── deployment.yaml # embed 单容器, lghost/aiops:<tag>
│ ├── mysql.yaml / redis.yaml
│ └── ...
│
├── 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` | 独立二进制输出路径(项目根目录) |
## 技术栈
### 前端
| 技术 | 版本 | 用途 |
|------|------|------|
| React | 19+ | 前端框架 |
| TypeScript | 5+ | 类型安全 |
| Vite | 7+ | 构建工具 |
| Tailwind CSS | 3+ | 样式框架 |
| shadcn/ui | - | UI 组件库 |
| Zustand | - | 状态管理 |
| TanStack Query | - | 数据请求 |
### 后端
| 技术 | 版本 | 用途 |
|------|------|------|
| Go | 1.24+ | 编程语言 |
| Gin | v1.10+ | Web 框架 |
| GORM | v1.25+ | ORM |
| JWT | v5 | 认证 |
| Viper | - | 配置管理 |
| Zap | - | 结构化日志 |
| SQLite / MySQL / Redis | - | 存储 |
## 端口分配
| 服务 | 端口 | 说明 |
|------|------|------|
| 前端 (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`