160 lines
4.3 KiB
Markdown
160 lines
4.3 KiB
Markdown
# 本地启动前检查清单
|
||
|
||
## ✅ 配置检查
|
||
|
||
### 1. 数据库配置
|
||
- [x] SQLite 作为默认数据库
|
||
- [x] `backend/shared/config.py` 默认值设置为 SQLite
|
||
- [x] `backend/.env.local` 配置正确
|
||
- [x] 添加 `aiosqlite` 到 requirements.txt
|
||
|
||
### 2. Redis 配置
|
||
- [x] Redis 设置为可选(`USE_REDIS=false`)
|
||
- [x] `auth_service` 支持内存存储(不依赖 Redis)
|
||
- [x] `task_scheduler` 支持内存锁(不依赖 Redis)
|
||
- [x] 启动脚本移除 Redis 检查
|
||
|
||
### 3. 端口配置
|
||
- [x] Auth Service: 8001
|
||
- [x] API Service: 8000
|
||
- [x] Frontend: 5000
|
||
- [x] 所有服务端口配置一致
|
||
|
||
### 4. 环境变量
|
||
- [x] `backend/.env.local` 创建完成
|
||
- [x] `frontend/.env` 创建完成
|
||
- [x] JWT 密钥配置
|
||
- [x] Cookie 加密密钥配置
|
||
|
||
## ✅ 文件检查
|
||
|
||
### 必需文件
|
||
- [x] `create_sqlite_db.py` - 数据库初始化脚本
|
||
- [x] `init-db-sqlite.sql` - SQLite 建表脚本
|
||
- [x] `start_all.bat` - Windows 启动脚本
|
||
- [x] `stop_all.bat` - Windows 停止脚本
|
||
- [x] `backend/.env.local` - 后端环境配置
|
||
- [x] `frontend/.env` - 前端环境配置
|
||
- [x] `LOCAL_SETUP.md` - 本地配置文档
|
||
- [x] `CHECKLIST.md` - 本检查清单
|
||
|
||
### 依赖文件
|
||
- [x] `backend/requirements.txt` - 包含 aiosqlite
|
||
- [x] `frontend/requirements.txt` - Flask 依赖
|
||
|
||
## ✅ 代码修改
|
||
|
||
### backend/shared/config.py
|
||
- [x] 默认数据库改为 SQLite
|
||
- [x] Redis 设置为可选
|
||
- [x] 添加 `USE_REDIS` 配置项
|
||
|
||
### backend/auth_service/app/utils/security.py
|
||
- [x] Refresh Token 支持内存存储
|
||
- [x] Redis 连接失败时降级到内存
|
||
- [x] 添加过期 token 清理逻辑
|
||
|
||
### backend/task_scheduler/app/tasks/signin_tasks.py
|
||
- [x] 分布式锁支持内存模式
|
||
- [x] Redis 不可用时使用内存锁
|
||
|
||
### backend/requirements.txt
|
||
- [x] 添加 `aiosqlite==0.19.0`
|
||
|
||
## ✅ 启动流程
|
||
|
||
### 自动启动(推荐)
|
||
```bash
|
||
start_all.bat
|
||
```
|
||
|
||
### 手动启动步骤
|
||
1. [x] 创建数据库: `python create_sqlite_db.py`
|
||
2. [x] 安装后端依赖: `cd backend && pip install -r requirements.txt`
|
||
3. [x] 安装前端依赖: `cd frontend && pip install -r requirements.txt`
|
||
4. [x] 启动 Auth Service (端口 8001)
|
||
5. [x] 启动 API Service (端口 8000)
|
||
6. [x] 启动 Frontend (端口 5000)
|
||
|
||
## ✅ 功能验证
|
||
|
||
### 测试账号
|
||
```
|
||
用户名: admin
|
||
邮箱: admin@example.com
|
||
密码: Admin123!
|
||
```
|
||
|
||
### 基础功能
|
||
- [ ] 访问前端页面 http://localhost:5000
|
||
- [ ] 使用测试账号登录
|
||
- [ ] Token 刷新功能
|
||
- [ ] 添加微博账号
|
||
- [ ] 查看账号列表
|
||
- [ ] 编辑账号信息
|
||
- [ ] 删除账号
|
||
- [ ] 创建签到任务
|
||
- [ ] 查看签到日志
|
||
- [ ] 用户注册功能(创建新用户)
|
||
|
||
### API 文档
|
||
- [ ] Auth Service API 文档: http://localhost:8001/docs
|
||
- [ ] API Service API 文档: http://localhost:8000/docs
|
||
|
||
## ⚠️ 已知限制
|
||
|
||
### 本地开发模式
|
||
- ✅ 不需要 Redis(使用内存存储)
|
||
- ✅ 不需要 MySQL(使用 SQLite)
|
||
- ⚠️ Task Scheduler 和 Signin Executor 需要 Celery(本地测试可跳过)
|
||
- ⚠️ 内存存储在服务重启后会丢失 Refresh Token
|
||
|
||
### 生产环境要求
|
||
- ❌ 必须使用 Redis(分布式环境)
|
||
- ❌ 建议使用 MySQL(性能和并发)
|
||
- ❌ 必须配置 Celery(任务调度)
|
||
- ❌ 必须修改所有默认密钥
|
||
|
||
## 🔧 故障排查
|
||
|
||
### 问题:找不到模块
|
||
**解决方案**: 设置 PYTHONPATH
|
||
```bash
|
||
set PYTHONPATH=%CD%
|
||
```
|
||
|
||
### 问题:端口被占用
|
||
**解决方案**:
|
||
1. 检查端口占用: `netstat -ano | findstr :8000`
|
||
2. 关闭占用进程或修改端口配置
|
||
|
||
### 问题:数据库文件损坏
|
||
**解决方案**:
|
||
1. 删除 `weibo_hotsign.db`
|
||
2. 重新运行 `python create_sqlite_db.py`
|
||
|
||
### 问题:Redis 警告
|
||
**解决方案**:
|
||
- 本地开发可以忽略,系统会自动使用内存存储
|
||
- 如需完整功能,安装并启动 Redis
|
||
|
||
## 📝 开发注意事项
|
||
|
||
1. **虚拟环境**: 每个服务使用独立的虚拟环境
|
||
2. **热重载**: 开发模式下代码修改会自动重启
|
||
3. **日志查看**: 每个服务有独立的命令行窗口显示日志
|
||
4. **数据持久化**: SQLite 数据库文件在项目根目录
|
||
5. **Session 存储**: Flask Session 使用文件系统存储
|
||
|
||
## ✨ 下一步
|
||
|
||
- [ ] 测试所有功能
|
||
- [ ] 添加测试数据
|
||
- [ ] 配置 Celery(如需任务调度)
|
||
- [ ] 部署到生产环境
|
||
|
||
---
|
||
|
||
**最后更新**: 2024
|
||
**维护者**: Weibo-HotSign Team
|