Files
live-hub-py/README.md
T
yml2213 ab84355cdc 合并启动脚本到deploy.sh,支持reset重置数据
- 删除 start_web.sh,统一使用 deploy.sh(Docker部署)
- 新增子命令:reset(删除所有数据需确认)、logs、stop、restart
- 更新 README 文档
2026-06-24 16:11:00 +08:00

133 lines
4.2 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.
# 斗鱼批量登录 Web 后台
全自动登录斗鱼账号、获取 Cookie 的 Web 管理平台。
## 功能特性
- 极验 v3 滑块自动识别
- 邮箱验证码自动获取(IMAP
- 批量登录 + 实时日志推送(WebSocket
- 代理 & 白名单自动管理
- 角色权限控制(超级管理员 / 运营 / 客服)
## 项目结构
```
douyu_login_py/
├── core/ # 核心业务逻辑
│ ├── models.py # Account, ProxyConfig 数据类
│ ├── douyu/ # 斗鱼登录模块
│ │ ├── login.py # 登录流程
│ │ ├── crypto.py # 密码加密
│ │ ├── email_verifier.py # 邮箱验证码
│ │ ├── proxy.py # 代理管理
│ │ └── whitelist.py # 白名单管理
│ └── geetest/ # 极验验证码求解
│ ├── common/ # 公共工具(网络/加密/图像/轨迹)
│ └── v3_slide/ # v3 滑块求解器
├── web/ # Web 后台
│ ├── backend/ # FastAPI 后端
│ │ ├── main.py # 入口
│ │ ├── routers/ # API 路由
│ │ ├── migrations/ # Alembic 数据库迁移
│ │ └── services/ # 业务服务
│ └── frontend/ # React + Ant Design 前端
├── utils/ # 通用工具
│ └── logger.py
├── data/ # 运行时数据(gitignore
├── deploy.sh # 部署/重置工具
└── pyproject.toml
```
## 快速开始
```bash
# Docker 部署(推荐)
./deploy.sh
```
访问 `http://localhost:8000`,默认账号 `admin / admin123`
**常用命令:**
```bash
./deploy.sh # 构建并部署
./deploy.sh logs # 查看实时日志
./deploy.sh stop # 停止服务
./deploy.sh restart # 重启服务
./deploy.sh reset # 重置所有数据(需二次确认)
```
### 敏感数据加密
账号密码、邮箱密码、Cookie、代理密钥等敏感字段会以密文形式落盘。生产环境请在 `.env` 中设置稳定的 `APP_ENCRYPTION_KEY`,并长期保留;更换该密钥会导致历史密文无法解密。
```bash
python -c "import secrets; print(secrets.token_urlsafe(32))"
```
### 邮件验证码服务
验证码读取默认使用内置的 Roundcube 服务地址;如部署自己的邮件读取服务,可在 `.env` 中设置 `MAIL_ROUNDCUBE_URL` 覆盖。
## 角色权限
| 角色 | 权限 |
|---|---|
| 超级管理员 | 全部功能 + 用户管理 + 权限分配 |
| 运营 | 账号管理 + 批量登录 + 代理配置 + Cookie 导出 |
| 客服 | 仅查看分配给自己的账号(只显示用户名) |
## 登录流程
```
1. 获取极验参数 → 滑块验证 → 自动识别缺口
2. 获取邮箱验证 code → 发送验证邮件
3. IMAP 获取验证码 → 提交验证码 → 获取 Cookie
```
## 技术栈
- 后端:FastAPI + SQLAlchemy + SQLite + JWT
- 前端:React + Ant Design + Vite
- 核心:Python + OpenCV + pycryptodome
- 迁移:Alembic
## 许可证
MIT License
## 部署
### Docker 部署
```bash
# 一键部署(自动构建镜像 + 启动服务)
./deploy.sh
# 重置所有数据(删除数据库/Cookie/日志,需二次确认)
./deploy.sh reset
```
部署完成后访问 `http://服务器IP:8000`,默认账号 `admin / admin123`
**数据持久化:** 数据库和日志通过 volume 挂载到宿主机 `./data``./logs` 目录,容器重建后数据不丢失。
### 代理配置说明
在 Web 界面"代理配置"页面设置:
1. **API 代理**:填入代理 API 地址(支持返回 JSON 格式),系统自动获取并验证代理
2. **白名单**:如代理需要白名单,填入 UID 和 UKEY,系统自动同步出口 IP
3. **出口 IP 漂移**:移动网络出口 IP 频繁漂移时,系统会保留多个出口 IP 在白名单中
**代理 API JSON 格式:**
```json
// 正常返回
{"code":0,"success":"true","msg":"","data":[{"IP":"1.2.3.4","Port":8080}]}
// 白名单错误
{"code":-1,"msg":"51.请先添加白名单:1.2.3.4","data":""}
```