chore: 隐藏.hermes目录、删除docker-compose.embed.yml、优化CLAUDE.md和README.md

- .gitignore 新增 .hermes/ 目录,git rm --cached 已追踪的 plan 文件
- 删除 docker-compose.embed.yml(embed 部署统一走 K8s 或独立二进制)
- Makefile 移除 docker-embed 目标
- CLAUDE.md 全面重写:三种部署方式详解、技术栈修正(Go1.24+MySQL/Redis)、架构完善、新增工具懒加载/凭证v2/远程执行/流水线/PTY终端等章节
- README.md 重写:三种部署快速开始、项目结构对齐实际目录、核心功能更新
This commit is contained in:
attacker committed 2026-06-22 17:19:54 +00:00
1 parent 4f1ffd1275
commit 69df073d42
6 files changed
+275 -543

No files matched your search

+110 -76
View File
@@ -9,84 +9,82 @@
- Tailwind CSS + shadcn/ui
- Zustand (状态管理) / TanStack Query (数据获取)
- Recharts (图表) / Lucide React (图标)
- xterm.js (WebSocket 终端)
### 后端
- Go 1.22+ / Gin Web Framework
- GORM (ORM) / MySQL 8.0+ / Redis
- Go 1.24 / Gin Web Framework
- GORM (ORM) / MySQL 8.0 / Redis 7
- JWT 认证 / Zap 日志 / Viper 配置
- Swagger API 文档
- WebSocket (Gorilla) / PTY 终端 (creack/pty)
## 项目结构
### Agent
- Go 1.24 静态编译 (CGO_ENABLED=0)
- /proc 指标采集 + 远程任务双通道
- 支持 linux-amd64 / linux-arm64 / darwin-arm64
```
aiops/
├── frontend/ # 前端项目 (React + TypeScript)
│ ├── src/
│ │ ├── components/ # 组件 (dashboard/server/k8s/monitor/deploy/aiops/...)
│ │ ├── lib/ # 工具函数
│ │ ├── store/ # 状态管理
│ │ ├── types/ # TypeScript 类型定义
│ │ ├── services/ # API 服务
│ │ └── hooks/ # 自定义 Hooks
│ ├── package.json
│ └── vite.config.ts
│
├── backend/ # 后端项目 (Go + Gin)
│ ├── cmd/ # 应用入口
│ ├── internal/
│ │ ├── api/ # HTTP 处理器、中间件、路由
│ │ ├── config/ # 配置管理
│ │ └── models/ # 数据模型
│ ├── pkg/ # 公共包 (database/logger)
│ ├── scripts/ # 初始化脚本
│ ├── go.mod
│ └── Makefile
│
├── agent/ # Agent 监控服务
│ ├── cmd/ # Agent 入口
│ ├── internal/ # Agent 内部逻辑
│ └── config/ # Agent 配置
│
├── docs/ # 设计文档
│ ├── PDD_PLAN.md # 产品设计文档
│ ├── ROADMAP.md # 路线图
│ ├── PROJECT_SUMMARY.md # 项目总结
│ └── BACKEND_SUMMARY.md # 后端说明
│
└── README.md
```
## 三种部署方式
| 方式 | 命令 | 架构 | 适用场景 |
|------|------|------|----------|
| **① 独立二进制** | `./run.sh build` → `./run.sh binary` | 单文件,前后端一体 | 无 Docker/K8s 环境 |
| **② Kubernetes** | `./run.sh k8s deploy` | Embed 单容器 + MySQL/Redis StatefulSet | 生产集群,devops 命名空间 |
| **③ Docker Compose** | `./run.sh docker up` | 4 容器 (MySQL+Redis+Backend+Nginx) | 单机生产,开发/测试 |
统一入口 `./run.sh`,详见 `./run.sh help`。
## 快速开始
### 前端
```bash
cd frontend
npm install
npm run dev # 开发模式 http://localhost:5173
npm run build # 生产构建
```
### 后端
```bash
cd backend
cp config.yaml.example config.yaml
go mod download
go run cmd/main.go # http://localhost:8080
```
### Docker Compose 部署
```bash
# 一键启动全部服务 (前端 + 后端 + MySQL + Redis + Agent)
docker compose up -d
# 一键启动全部服务 (MySQL + Redis + 后端 + Nginx 前端)
./run.sh docker up
# 查看服务状态
docker compose ps
# 访问
# 前端: http://localhost:80
# 后端: http://localhost:8080
# 健康检查: http://localhost:8080/health
# 停止服务
docker compose down
# 管理
./run.sh docker logs # 查看日志
./run.sh docker ps # 容器状态
./run.sh docker down # 停止
```
### 独立二进制部署
```bash
# 编译(前端自动嵌入)
./run.sh build
# 启动
./backend/aiops # 默认 SQLite, 端口 8080
./backend/aiops --port 9090 # 自定义端口
./backend/aiops --db-driver mysql --db-host ... # MySQL 模式
```
### Kubernetes 部署
```bash
# 一键部署到 devops 命名空间
./run.sh k8s deploy
# 访问: http://<NODE_IP>:30080
# 运维
./run.sh k8s status # 资源状态
./run.sh k8s logs # 应用日志
./run.sh k8s upgrade # 滚动更新
```
### 本地开发
```bash
./run.sh dev # 前端 :5173 + 后端 :8080 (热重载)
# 单独启动
cd frontend && npm run dev
cd backend && go run ./cmd/
```
### 默认账号
@@ -94,19 +92,55 @@ docker compose down
- 用户名: `admin`
- 密码: `123456`
## 项目结构
```
aiops/
├── frontend/ # 前端 (React + TypeScript)
│ ├── src/components/ # dashboard/server/k8s/monitor/deploy/aiops...
│ ├── src/services/ # API + HTTP 封装
│ ├── src/store/ # Zustand 状态管理
│ └── Dockerfile # nginx:alpine 镜像
│
├── backend/ # 后端 (Go + Gin)
│ ├── cmd/ # 入口 (main + embed + seed + static/)
│ ├── internal/api/ # handlers / middleware / routes
│ ├── internal/models/ # GORM 数据模型
│ ├── pkg/ # 公共包 (database/kubernetesclient/remoteexec/toolinstaller)
│ └── Dockerfile # 3 阶段构建 (Go build → Agent → Alpine Runtime)
│
├── agent/ # 监控 Agent
│ ├── collector/ # /proc 指标采集
│ ├── task/ # 远程任务执行
│ └── reporter/ # HTTP 上报
│
├── deploy/k8s/ # Kubernetes 部署清单
│ ├── namespace.yaml # devops 命名空间
│ ├── secret.yaml # 密钥
│ ├── configmap.yaml # 配置
│ ├── mysql.yaml # MySQL StatefulSet
│ ├── redis.yaml # Redis StatefulSet
│ ├── deployment.yaml # AIOps Deployment + NodePort Service
│ └── ingress.yaml # Ingress 路由
│
├── docker-compose.yml # Docker Compose 4 容器编排
├── Dockerfile.embed # Embed 单容器镜像 (前端→后端→Agent→Runtime)
├── run.sh # 统一入口脚本
└── Makefile # 快捷命令
```
## 核心功能
| 模块 | 说明 | 优先级 |
|------|------|--------|
| 仪表盘 | 成本统计、告警聚合、Top资源、SSL提醒 | P0 |
| 资产管理 | 服务器CRUD、批量导入、WebShell、云账号 | P0 |
| Kubernetes | 集群/节点/工作负载、拓扑可视化 | P0 |
| 应用发布 | 流水线管理、发布审批、回滚 | P0 |
| 监控中心 | 监控大屏、资源监控、链路追踪、告警中心、数据源 | P0 |
| 自动化运维 | 定时任务、脚本库、Ansible | P1 |
| AIOps智能 | AI助手、Agent监控、告警分析、脚本生成、故障诊断 | P0 |
| 资源申请 | 资源申请审批、配额管理 | P1 |
| 系统管理 | 用户权限、操作审计、系统设置 | P1 |
| 模块 | 说明 |
|------|------|
| 仪表盘 | 成本统计、告警聚合、Top 资源、SSL 提醒 |
| 资产管理 | 服务器 CRUD、批量导入、WebShell、云账号/域名/账单、K8s 集群 |
| 应用发布 | CI/CD 流水线(GitLab CI 风格可视化)、发布配置、发布权限、工具配置 |
| 监控中心 | 监控大屏、指标监控、链路追踪、告警中心、数据源 |
| 自动化运维 | 定时任务、脚本库(Shell/Python)、远程执行(Go-native SSH) |
| AIOps 智能 | AI 智能助手、告警分析、容量预测 |
| 资源申请 | 云服务器/应用部署申请审批 |
| 系统管理 | 用户管理、角色权限、操作审计、终端审计、凭证配置、系统设置 |
## License