Files
xiaoxia-saas/docs/本地验证检查清单.md
T

535 lines
9.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.
# 小虾 SaaS 本地验证检查清单
**验证目标**:确保前后端真实联调通过,为上线做准备
**预计时间**30 分钟 - 1 小时
**执行人**:老大
**协助**:小虾 🦐
---
## 一、环境准备(10 分钟)
### 1.1 检查系统依赖
```bash
# 检查 FFmpeg
ffmpeg -version
# 检查 Python
python --version # 需要 3.12+
# 检查 Node.js
node --version # 需要 18+
```
**预期**
- ✅ FFmpeg 已安装
- ✅ Python 3.12+
- ✅ Node.js 18+
---
### 1.2 准备环境变量
**位置**`F:\openclaw-saas\.env.development`
**必须配置的项**
```env
# 数据库
DATABASE_URL=postgresql://xiaoxia:xiaoxia123@localhost:5432/xiaoxia_saas
# Redis
REDIS_URL=redis://localhost:6379/0
# MinIO
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=xiaoxia-saas
MINIO_SECURE=false
MINIO_PUBLIC_URL=http://localhost:9000
# JWT
JWT_SECRET_KEY=your-super-secret-key-change-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
# Celery
CELERY_BROKER_URL=redis://localhost:6379/1
CELERY_RESULT_BACKEND=redis://localhost:6379/2
```
**检查方式**
```bash
cd F:\openclaw-saas
cat .env.development
```
---
### 1.3 启动基础设施
**方式 1Docker Compose(推荐)**
```bash
cd F:\openclaw-saas\infra\docker
docker-compose up -d postgres redis minio
```
**方式 2:本地服务**
- PostgreSQL 手动启动
- Redis 手动启动
- MinIO 手动启动
**验证**
```bash
# 检查 PostgreSQL
psql -h localhost -U xiaoxia -d xiaoxia_saas -c "SELECT 1;"
# 检查 Redis
redis-cli ping
# 检查 MinIO
curl http://localhost:9000/minio/health/live
```
**预期**
- ✅ PostgreSQL 连接成功
- ✅ Redis 返回 PONG
- ✅ MinIO 返回 200 OK
---
### 1.4 安装依赖
**后端依赖**
```bash
cd F:\openclaw-saas
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
**前端依赖**
```bash
cd F:\openclaw-saas\apps\web
npm install
```
**预期时间**5-10 分钟
---
### 1.5 初始化数据库
```bash
cd F:\openclaw-saas
.venv\Scripts\activate
# 运行数据库迁移
# (如果有 alembic
# alembic upgrade head
# 或者直接运行 SQL
psql -h localhost -U xiaoxia -d xiaoxia_saas -f migrations/001_initial_schema.sql
psql -h localhost -U xiaoxia -d xiaoxia_saas -f migrations/004_asset_management.sql
```
**验证**
```bash
psql -h localhost -U xiaoxia -d xiaoxia_saas -c "\dt"
```
**预期**:看到所有表(users, workspaces, assets, generation_tasks 等)
---
## 二、启动服务(5 分钟)
### 2.1 启动 API 服务
**终端 1**
```bash
cd F:\openclaw-saas
.venv\Scripts\activate
cd apps\api
python main.py
```
**预期输出**
```
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
```
**验证**
```bash
curl http://localhost:8000/api/v1/health
```
**预期响应**
```json
{"status": "healthy"}
```
---
### 2.2 启动 Worker 服务
**终端 2**
```bash
cd F:\openclaw-saas
.venv\Scripts\activate
cd apps\worker
celery -A celery_app worker --loglevel=info
```
**预期输出**
```
[tasks]
. worker.generate_video
celery@LAPTOP ready.
```
---
### 2.3 启动前端服务
**终端 3**
```bash
cd F:\openclaw-saas\apps\web
npm run dev
```
**预期输出**
```
VITE v5.x.x ready in xxx ms
➜ Local: http://localhost:5173/
```
---
## 三、功能验证(15-30 分钟)
### 3.1 用户注册/登录
**步骤**
1. 打开浏览器:`http://localhost:5173`
2. 点击"注册"
3. 填写信息:
- 邮箱:`test@example.com`
- 密码:`Test123456`
- 用户名:`测试用户`
4. 点击注册
5. 使用刚注册的账号登录
**检查点**
- [ ] 注册成功
- [ ] 登录成功
- [ ] 跳转到工作空间页面
**预期时间**2 分钟
---
### 3.2 创建工作空间和项目
**步骤**
1. 点击"创建工作空间"
2. 填写名称:`测试工作空间`
3. 创建成功后,点击进入
4. 点击"创建项目"
5. 填写项目名称:`测试项目`
**检查点**
- [ ] 工作空间创建成功
- [ ] 项目创建成功
- [ ] 能看到项目详情页
**预期时间**2 分钟
---
### 3.3 上传素材
**步骤**
1. 进入项目
2. 点击"素材管理"
3. 点击"上传素材"
4. 选择 2-3 个视频文件(MP4 格式)
5. 等待上传完成
**检查点**
- [ ] 上传进度条显示
- [ ] 上传成功提示
- [ ] 素材列表显示上传的文件
- [ ] 能看到缩略图
**预期时间**3-5 分钟(取决于文件大小)
**调试检查**(如果上传失败):
```bash
# 查看 API 日志(终端 1
# 查看 MinIO 存储
curl http://localhost:9000 # 应该能访问
```
---
### 3.4 素材分类
**步骤**
1. 在素材列表中选择一个素材
2. 点击"分类"
3. 等待分类完成
**检查点**
- [ ] 分类任务创建成功
- [ ] 分类状态显示为"处理中"
- [ ] 分类完成后显示结果(如:scenic, product, person 等)
**预期时间**1-2 分钟
**调试检查**(如果分类卡住):
```bash
# 查看 Worker 日志(终端 2)
# 应该看到分类任务执行
```
---
### 3.5 创建生成任务
**步骤**
1. 点击"视频生成"
2. 选择素材库
3. 选择生成策略(如果有)
4. 点击"开始生成"
**检查点**
- [ ] 生成任务创建成功
- [ ] 任务状态显示为"队列中"或"处理中"
- [ ] 进度条更新
**预期时间**1 分钟
---
### 3.6 等待生成完成
**步骤**
1. 刷新页面或等待自动刷新
2. 查看任务状态
**检查点**
- [ ] 任务状态变为"已完成"
- [ ] 进度条显示 100%
- [ ] 显示生成的视频数量
**预期时间**:2-5 分钟(取决于素材数量和大小)
**调试检查**(如果生成失败):
```bash
# 查看 Worker 日志(终端 2)
# 应该看到:
# - 素材下载
# - FFmpeg 执行
# - 文件上传
```
---
### 3.7 查看生成结果
**步骤**
1. 点击"生成结果"
2. 查看生成的视频列表
3. 点击某个视频
**检查点**
- [ ] 能看到视频列表
- [ ] 显示缩略图
- [ ] 显示视频元数据(时长、分辨率、大小)
**预期时间**1 分钟
---
### 3.8 下载视频
**步骤**
1. 在视频详情页点击"下载"
2. 浏览器开始下载
3. 下载完成后播放视频
**检查点**
- [ ] 下载链接正常
- [ ] 文件下载成功
- [ ] 视频能正常播放
- [ ] 视频内容是多个素材的拼接
**预期时间**2-3 分钟
**最终验证**
- 播放器能打开
- 画面流畅
- 没有黑屏或错误
---
## 四、问题记录
### 发现的问题
| 序号 | 功能点 | 问题描述 | 严重程度 |
|------|--------|----------|----------|
| 1 | | | P0/P1/P2 |
| 2 | | | |
| 3 | | | |
**严重程度定义**
- **P0**:阻断上线(如:无法登录、无法生成)
- **P1**:影响体验(如:UI 错位、加载慢)
- **P2**:小问题(如:文字错误、样式小瑕疵)
---
## 五、验收标准
### ✅ 通过标准
**核心流程必须全部通过**
- [x] 用户注册/登录
- [x] 创建工作空间/项目
- [x] 上传素材
- [x] 素材分类
- [x] 创建生成任务
- [x] 生成完成
- [x] 查看结果
- [x] 下载视频
**无 P0 问题**
---
### ⚠️ 有条件通过
**核心流程通过,但有 P1 问题**
- 可以先修复后上线
- 或者标注已知问题后上线
---
### ❌ 不通过
**任何核心流程失败,或有 P0 问题**
- 必须修复后再验证
- 不能上线
---
## 六、验证完成后
### ✅ 如果通过
**下一步**
1. 小虾准备生产部署脚本
2. 部署到服务器
3. 绑定域名
4. 开放访问
### ⚠️ 如果有问题
**下一步**
1. 老大记录问题到上面的表格
2. 小虾立刻修复 P0 问题
3. P1/P2 问题排期修复
4. 修复后再次验证
---
## 七、验证提示
### 💡 验证技巧
1. **别着急**
- 每个步骤都看清楚
- 发现问题立刻截图
2. **多试几次**
- 如果某个功能失败,试 2-3 次
- 确认是真的有问题,不是网络抖动
3. **记录详细**
- 问题描述要具体(不是"不行",而是"点击后无响应"
- 最好有截图或错误信息
4. **随时叫小虾**
- 遇到问题不确定的,立刻问我
- 我可以远程看日志帮你诊断
---
## 八、常见问题
### Q1: MinIO 连不上
**症状**:上传素材失败
**解决**
```bash
# 检查 MinIO 是否启动
docker ps | grep minio
# 重启 MinIO
docker restart minio
```
---
### Q2: Worker 没反应
**症状**:分类/生成任务一直"处理中"
**解决**
```bash
# 检查 Worker 日志(终端 2)
# 如果没有任务输出,重启 Worker
Ctrl+C
celery -A celery_app worker --loglevel=info
```
---
### Q3: 前端报错
**症状**:浏览器控制台有红色错误
**解决**
- F12 打开开发者工具
- 截图错误信息
- 发给小虾
---
### Q4: 视频生成失败
**症状**:任务状态变为"失败"
**解决**
```bash
# 查看 Worker 日志(终端 2)
# 找到错误信息
# 发给小虾
```
---
**检查清单创建完成!**
**老大,现在可以开始验证了!**
---
**小虾待命中** 🦐
**有问题随时叫我!**