Merge branch 'cnlimiter:master' into master

This commit is contained in:
pigracing
2026-03-16 16:43:44 +08:00
committed by GitHub
10 changed files with 566 additions and 335 deletions

View File

@@ -1,6 +1,9 @@
# OpenAI 自动注册系统 v2
自动化注册 OpenAI 账号的 Web UI 系统,支持多种邮箱服务、批量注册、代理管理和账号管理。
自动化注册 OpenAI 账号的 Web UI 系统,支持多种邮箱服务、并发批量注册、代理管理和账号管理。
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/)
## 功能特性
@@ -14,6 +17,12 @@
- 批量注册(可配置数量和间隔时间)
- Outlook 批量注册(指定账户逐一注册)
- **并发控制**
- 流水线模式Pipeline每隔 interval 秒启动新任务,限制最大并发数
- 并行模式Parallel所有任务同时提交Semaphore 控制最大并发
- 并发数可在 UI 自定义1-50
- 日志混合显示,带 `[任务N]` 前缀区分
- **实时监控**
- WebSocket 实时日志推送
- 跨页面导航后自动重连
@@ -28,7 +37,9 @@
- 查看、删除、批量操作
- Token 刷新与验证
- 导出JSON / CSV / CPA 格式)
- CPA 上传Codex Protocol API
- 单个账号导出为独立 `.json` 文件
- 多个账号打包为 `.zip`,每个账号一个独立文件
- CPA 上传Codex Protocol API直连不走代理
- **系统设置**
- 代理配置(静态 + 动态)
@@ -108,7 +119,8 @@ codex-register-v2/
│ └── web/ # FastAPI Web 应用
│ ├── app.py # 应用入口、路由挂载
│ ├── routes/ # API 路由
── websocket.py # WebSocket
── task_manager.py # 任务/日志/WebSocket
│ └── routes/websocket.py # WebSocket 处理
├── templates/ # Jinja2 HTML 模板
├── static/ # 静态资源CSS / JS
└── data/ # 运行时数据目录(数据库、日志)
@@ -122,7 +134,8 @@ codex-register-v2/
| 数据库 | SQLAlchemy + SQLite / PostgreSQL |
| 模板引擎 | Jinja2 |
| HTTP 客户端 | curl_cffi浏览器指纹模拟 |
| 实时通信 | WebSocketwebsockets 库) |
| 实时通信 | WebSocket |
| 并发 | asyncio Semaphore + ThreadPoolExecutor |
| 前端 | 原生 JavaScript无框架 |
| 打包 | PyInstaller |
@@ -133,7 +146,7 @@ codex-register-v2/
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/registration/start` | 启动单次注册 |
| POST | `/api/registration/batch` | 启动批量注册 |
| POST | `/api/registration/batch` | 启动批量注册(支持 `concurrency``mode` 参数) |
| GET | `/api/registration/batch/{id}` | 批量任务状态 |
| POST | `/api/registration/batch/{id}/cancel` | 取消批量任务 |
| POST | `/api/registration/outlook-batch` | 启动 Outlook 批量注册 |
@@ -156,7 +169,7 @@ codex-register-v2/
| POST | `/api/accounts/batch-delete` | 批量删除 |
| POST | `/api/accounts/export/json` | 导出 JSON |
| POST | `/api/accounts/export/csv` | 导出 CSV |
| POST | `/api/accounts/export/cpa` | 导出 CPA 格式 |
| POST | `/api/accounts/export/cpa` | 导出 CPA 格式(单文件或 ZIP |
| POST | `/api/accounts/{id}/refresh` | 刷新 Token |
| POST | `/api/accounts/batch-refresh` | 批量刷新 Token |
| POST | `/api/accounts/{id}/validate` | 验证 Token |
@@ -192,7 +205,58 @@ codex-register-v2/
| 路径 | 说明 |
|------|------|
| `ws://host/api/ws/task/{uuid}` | 单任务实时日志 |
| `ws://host/api/ws/batch/{id}` | 批量任务实时状态 |
| `ws://host/api/ws/batch/{id}` | 批量任务实时状态与日志 |
## Docker 部署
### 环境要求
- Docker
- Docker Compose
### 快速部署
```bash
# 克隆项目
git clone https://github.com/cnlimiter/codex-register.git
cd codex-register
# 启动服务
docker-compose up -d
```
服务启动后访问 http://localhost:8000
### 配置说明
**端口映射**:默认 `8000` 端口,可在 `docker-compose.yml` 中修改。
**数据持久化**
```yaml
volumes:
- ./data:/app/data
- ./logs:/app/logs
```
**代理配置**
```yaml
environment:
- HTTP_PROXY=http://your-proxy:port
- HTTPS_PROXY=http://your-proxy:port
```
### 常用命令
```bash
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建
docker-compose build --no-cache
```
## 注意事项
@@ -201,3 +265,9 @@ codex-register-v2/
- 日志文件写入 `logs/` 目录
- 代理设置优先级:动态代理 > 代理列表(随机) > 静态默认代理
- 注册时自动随机生成用户名和生日(年龄范围 18-45 岁)
- CPA 上传始终直连,不经过代理
- 批量注册并发数上限为 50线程池大小已相应调整
## License
[MIT](LICENSE)