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:
Logan.Li committed 2026-06-26 16:39:00 +08:00
1 parent 9f5ce249f1
commit 286decf0b0
8 files changed
+593 -487

No files matched your search

+97 -92
View File
@@ -4,17 +4,18 @@
| 工具 | 最低版本 | 说明 |
|------|---------|------|
| Go | 1.21+ | 后端编译运行(需 CGO 支持 SQLite) |
| Go | 1.24+ | 后端编译(SQLite 需 CGO_ENABLED=1) |
| Node.js | 18+ | 前端构建 |
| npm | 9+ | 包管理 |
| gcc/clang | - | CGO 编译 SQLite 需要 |
| gcc/clang | - | CGO 编译 SQLite |
| Docker | 20+ | 可选,Compose/K8s 部署 |
### 检查环境
```bash
go version # >= 1.21
node -v # >= 18
gcc --version # macOS 自带 clang
go version
node -v
./run.sh help
```
## 安装
@@ -30,134 +31,138 @@ cd aiops
```bash
make install
# 或手动安装
# 或
cd backend && go mod download && cd ..
cd frontend cd app &&cd app && npm install && cd ..
cd frontend && npm install && cd ..
```
### 3. 配置(可选)
默认使用 SQLite,无需任何额外配置即可启动。
如需使用 MySQL 等其他数据库,编辑 `backend/config.yaml`:
```yaml
database:
driver: mysql # 改为 mysql / postgres
host: localhost
port: 3306
user: root
password: your_password
dbname: aiops
```
## 启动
### 方式一:一键启动(推荐)
## 本地开发(推荐)
```bash
chmod +x run.sh
./run.sh start
./run.sh dev
```
输出示例:
```
[INFO] ========== AIOps 启动脚本 ==========
[INFO] 正在启动后端服务...
[INFO] 编译 Go 程序...
[SUCCESS] 后端服务已启动 (PID: 12345, 端口: 8080)
[INFO] 正在启动前端服务...
[SUCCESS] 前端服务已启动 (PID: 12346, 端口: 5173)
[SUCCESS] ========== 所有服务已启动 ==========
[INFO] 前端地址: http://localhost:5173
[INFO] 后端地址: http://localhost:8080
[INFO] 健康检查: http://localhost:8080/health
[OK] 后端已启动 (PID: ..., 端口: 8080)
[OK] 前端已启动 (PID: ..., 端口: 5173)
```
### 方式二:分别启动
```bash
# 仅后端
./run.sh backend
# 仅前端
./run.sh frontend
```
### 方式三:使用 Makefile
```bash
make dev # 启动
make status # 查看状态
make stop # 停止
```
## 访问
| 地址 | 说明 |
|------|------|
| http://localhost:5173 | 前端界面 |
| http://localhost:8080/health | 后端健康检查 |
| http://localhost:5173 | 前端界面(Vite 热重载) |
| http://localhost:8080 | 后端 API |
| http://localhost:8080/version | 版本信息 |
| http://localhost:8080/api/v1/auth/login | 登录接口 |
| http://localhost:8080/health | 健康检查 |
### 默认账号
- 用户名:`admin`
- 密码:`123456`
## 常用命令
```bash
./run.sh status # 查看服务状态
./run.sh stop # 停止所有服务
./run.sh restart # 重启所有服务
./run.sh help # 查看帮助
make logs # 查看实时日志
make build # 构建生产包
make clean # 清理构建产物
./run.sh dev # 启动开发环境
./run.sh stop # 停止
./run.sh restart # 重启
./run.sh status # 查看状态
./run.sh logs # 实时日志
./run.sh help # 完整帮助
```
## 独立二进制(本机试用)
```bash
./run.sh build tag v1.0.0 # 编译到 ./aiops
./aiops version
./aiops --mode local # SQLite + redka,零外部依赖
```
数据文件与二进制同级:`./sqlite3.db`、`./redka.db`。
## Docker Compose(单机演示)
```bash
./run.sh docker up
# 访问 http://localhost:8080
```
## 发版(构建 + 推送镜像)
```bash
docker login
./run.sh release v1.5.0
```
镜像:`lghost/aiops:v1.5.0`
## 日志位置
| 服务 | 日志文件 |
|------|---------|
| 后端 | `backend/logs/server.log` |
| 前端 | `frontend/logs/dev.log` |
| 数据库 | `backend/data/aiops.db`(SQLite 文件) |
| 场景 | 日志 |
|------|------|
| 本地开发后端 | `backend/logs/server.log` |
| 本地开发前端 | `frontend/logs/dev.log` |
| 独立二进制 | `logs/aiops.log` |
| Docker | `./run.sh docker logs` |
## 数据库
默认使用 SQLite,数据库文件位于 `backend/data/aiops.db`,首次启动时自动创建表结构(AutoMigrate)。
### 开发模式
### 重置数据库
默认 SQLite,数据库由后端自动迁移(AutoMigrate)。
### local 二进制模式
```bash
./run.sh stop
rm -f backend/data/aiops.db
./run.sh start
./aiops --mode local
# sqlite3.db / redka.db 在项目根目录
```
### 重置 local 数据
```bash
./run.sh binary stop
rm -f sqlite3.db redka.db
./run.sh binary upgrade
```
## 常见问题
### Q: CGO 编译失败?
SQLite 需要 CGO 支持。确保环境变量 `CGO_ENABLED=1`:
### CGO 编译失败
```bash
export CGO_ENABLED=1
```
### Q: Go 模块下载慢?
设置国内代理:
```bash
export GOPROXY=https://goproxy.cn,direct
```
### Q: 端口被占用?
### Go 模块下载慢
```bash
./run.sh stop # 先停止
./run.sh start # 再启动
# 或强制释放端口
export GOPROXY=https://goproxy.cn,direct
export GOTOOLCHAIN=local
```
### 端口被占用
```bash
./run.sh stop
# 或
lsof -ti:8080 | xargs kill -9
lsof -ti:5173 | xargs kill -9
```
### Mac 编译的二进制无法在 Linux 运行
`./run.sh build` 在 Mac 上产出 darwin 二进制。Linux 部署请使用:
- `./run.sh release v1.x`(Docker 镜像)
- 或在 Linux 服务器上执行 `./run.sh build`
## 下一步
- [部署指南](./deployment.md) — 生产环境、版本管理、K8s
- [开发规范](./development-guide.md) — 代码规范
- [API 接口](./api-reference.md) — 后端 API