- 更新三种部署方式:embed 单容器、./aiops 根目录二进制 - 补充版本管理、release、lghost/aiops 镜像推送说明 - 修正过时的 docker 4 容器、backend/aiops、run.sh start 等描述 - 更新 project-structure、deployment、quick-start 等核心文档
5.1 KiB
5.1 KiB
项目结构
整体结构
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.0Dockerfile.embed构建参数VERSION/BUILD_TIME/GIT_COMMIT- 运行时:
./aiops version、GET /version