mirror of
https://github.com/cnlimiter/codex-register.git
synced 2026-05-11 18:10:53 +08:00
docs(readme): 全面重构项目文档结构
This commit is contained in:
373
README.md
373
README.md
@@ -1,261 +1,120 @@
|
||||
# OpenAI/Codex CLI 自动注册系统
|
||||
# OpenAI 自动注册系统 v2
|
||||
|
||||
一个功能完整的 OpenAI/Codex CLI 自动注册系统,支持多种邮箱服务、Web UI 管理界面和命令行操作。
|
||||
自动化注册 OpenAI 账号的 Web UI 系统,支持多种邮箱服务、批量注册、代理管理和账号管理。
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 核心功能
|
||||
- **自动注册流程** - 完整的 OpenAI 账号自动注册,支持 OAuth 2.0 + PKCE 认证
|
||||
- **多种邮箱服务** - 支持 Tempmail.lol、Outlook(IMAP/Graph API)、自定义域名邮箱
|
||||
- **Web UI 界面** - 现代化的 Web 管理界面,包含实时控制台日志输出
|
||||
- **账号管理** - 批量删除、导出(JSON/CSV/CPA格式)、刷新 Token、验证 Token
|
||||
- **后台任务** - 异步执行注册任务,实时查看任务状态和日志
|
||||
- **代理管理** - 支持代理列表管理,注册时自动轮换代理
|
||||
- **CPA 上传** - 支持将账号上传到 CPA (Codex Protocol API) 管理平台
|
||||
- **SQLite 存储** - 轻量级数据库存储账号和配置信息
|
||||
- **多邮箱服务支持**
|
||||
- Tempmail.lol(临时邮箱,无需配置)
|
||||
- Outlook(IMAP + XOAUTH2,支持批量导入)
|
||||
- 自定义域名(REST API)
|
||||
|
||||
### 邮箱服务
|
||||
| 服务类型 | 描述 | 适用场景 |
|
||||
|---------|------|---------|
|
||||
| Tempmail.lol | 临时邮箱服务 | 快速测试、一次性注册 |
|
||||
| Outlook | Outlook 邮箱(IMAP / Graph API) | 长期使用,支持批量导入 |
|
||||
| 自定义域名 | 支持自定义域名邮箱 API | 企业级邮箱服务 |
|
||||
- **注册模式**
|
||||
- 单次注册
|
||||
- 批量注册(可配置数量和间隔时间)
|
||||
- Outlook 批量注册(指定账户逐一注册)
|
||||
|
||||
### Web UI 页面
|
||||
- **注册页面** - 支持单次/批量注册,嵌入式控制台实时显示日志
|
||||
- **Outlook 批量注册** - 选择 Outlook 账号批量注册,自动跳过已注册邮箱
|
||||
- **账号管理** - 表格展示、批量操作、搜索过滤、Token 刷新/验证、CPA 上传
|
||||
- **系统设置** - 代理配置、邮箱服务管理、CPA 平台配置
|
||||
- **实时监控**
|
||||
- WebSocket 实时日志推送
|
||||
- 跨页面导航后自动重连
|
||||
- 降级轮询备用方案
|
||||
|
||||
## 安装
|
||||
- **代理管理**
|
||||
- 静态代理配置
|
||||
- 动态代理(通过 API 每次获取新 IP)
|
||||
- 代理列表(随机选取,记录使用时间)
|
||||
|
||||
### 方式一:源码运行
|
||||
- **账号管理**
|
||||
- 查看、删除、批量操作
|
||||
- Token 刷新与验证
|
||||
- 导出(JSON / CSV / CPA 格式)
|
||||
- CPA 上传(Codex Protocol API)
|
||||
|
||||
#### 环境要求
|
||||
- Python >= 3.10
|
||||
- pip 或 uv 包管理器
|
||||
- **系统设置**
|
||||
- 代理配置(静态 + 动态)
|
||||
- Outlook OAuth 参数
|
||||
- 注册参数(超时、重试、密码长度等)
|
||||
- 验证码等待配置
|
||||
- 数据库管理(备份、清理)
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 环境要求
|
||||
|
||||
- Python 3.10+
|
||||
- [uv](https://github.com/astral-sh/uv)(推荐)或 pip
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
# 克隆项目
|
||||
git clone <repository-url>
|
||||
cd codex-register-v2
|
||||
|
||||
# 创建虚拟环境(推荐)
|
||||
python -m venv .venv
|
||||
|
||||
# 激活虚拟环境
|
||||
# Windows
|
||||
.venv\Scripts\activate
|
||||
# Linux/macOS
|
||||
source .venv/bin/activate
|
||||
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 或使用 uv(推荐)
|
||||
# 使用 uv(推荐)
|
||||
uv sync
|
||||
|
||||
# 或使用 pip
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 方式二:打包可执行文件(Windows)
|
||||
### 启动 Web UI
|
||||
|
||||
```bash
|
||||
# 安装打包依赖
|
||||
pip install pyinstaller
|
||||
|
||||
# 执行打包
|
||||
build.bat
|
||||
```
|
||||
|
||||
打包完成后在 `dist/` 目录生成 `codex-register-windows-<架构>.exe`,可直接分发运行,无需安装 Python 环境。
|
||||
|
||||
## 使用方法
|
||||
|
||||
### Web UI 模式(推荐)
|
||||
|
||||
**源码运行:**
|
||||
```bash
|
||||
# 默认启动(0.0.0.0:8000)
|
||||
# 默认启动(127.0.0.1:8000)
|
||||
python webui.py
|
||||
|
||||
# 指定主机和端口
|
||||
python webui.py --host 127.0.0.1 --port 9000
|
||||
# 指定地址和端口
|
||||
python webui.py --host 0.0.0.0 --port 8080
|
||||
|
||||
# 启用调试模式
|
||||
# 调试模式(热重载)
|
||||
python webui.py --debug
|
||||
```
|
||||
|
||||
**打包可执行文件:**
|
||||
```bash
|
||||
# 默认启动
|
||||
codex-register.exe
|
||||
启动后访问 http://127.0.0.1:8000
|
||||
|
||||
# 指定端口
|
||||
codex-register.exe --port 9000
|
||||
|
||||
# 指定主机和端口
|
||||
codex-register.exe --host 0.0.0.0 --port 9000
|
||||
```
|
||||
|
||||
访问 `http://localhost:8000` 即可使用 Web 界面。
|
||||
|
||||
#### Web UI 参数
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `--host` | 监听主机 | `0.0.0.0` |
|
||||
| `--port` | 监听端口 | `8000` |
|
||||
| `--debug` | 启用调试模式 | `false` |
|
||||
| `--reload` | 启用热重载 | `false` |
|
||||
| `--log-level` | 日志级别 | `INFO` |
|
||||
|
||||
### 命令行模式
|
||||
## 打包为可执行文件
|
||||
|
||||
```bash
|
||||
# 单次注册
|
||||
python cli.py --once
|
||||
# Windows
|
||||
build.bat
|
||||
|
||||
# 循环注册
|
||||
python cli.py --sleep-min 5 --sleep-max 30
|
||||
|
||||
# 使用代理
|
||||
python cli.py --proxy http://127.0.0.1:7890 --once
|
||||
# Linux/macOS
|
||||
bash build.sh
|
||||
```
|
||||
|
||||
#### CLI 参数
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `--proxy` | 代理地址 | 无 |
|
||||
| `--once` | 只运行一次 | `false` |
|
||||
| `--sleep-min` | 循环模式最短等待秒数 | `5` |
|
||||
| `--sleep-max` | 循环模式最长等待秒数 | `30` |
|
||||
| `--log-level` | 日志级别 | `INFO` |
|
||||
| `--log-file` | 日志文件路径 | 无 |
|
||||
|
||||
## 配置
|
||||
|
||||
### 配置方式
|
||||
|
||||
配置优先级:环境变量 > `.env` 文件 > 默认值
|
||||
|
||||
创建 `.env` 文件:
|
||||
|
||||
```env
|
||||
# 应用配置
|
||||
DEBUG=false
|
||||
LOG_LEVEL=INFO
|
||||
|
||||
# 数据库
|
||||
DATABASE_URL=sqlite:///data/database.db
|
||||
|
||||
# Web UI
|
||||
WEBUI_HOST=0.0.0.0
|
||||
WEBUI_PORT=8000
|
||||
|
||||
# 代理配置
|
||||
PROXY_ENABLED=false
|
||||
PROXY_URL=http://127.0.0.1:7890
|
||||
|
||||
# Tempmail 配置
|
||||
TEMPMAIL_BASE_URL=https://api.tempmail.lol/v2
|
||||
TEMPMAIL_TIMEOUT=30
|
||||
TEMPMAIL_MAX_RETRIES=3
|
||||
|
||||
# 自定义域名邮箱
|
||||
CUSTOM_DOMAIN_BASE_URL=https://mail.example.com/api
|
||||
CUSTOM_DOMAIN_API_KEY=your-api-key
|
||||
|
||||
# CPA 平台
|
||||
CPA_ENABLED=false
|
||||
CPA_API_URL=https://cpa.example.com/api
|
||||
CPA_API_TOKEN=your-token
|
||||
```
|
||||
|
||||
### 主要配置项
|
||||
|
||||
| 配置项 | 说明 | 默认值 |
|
||||
|--------|------|--------|
|
||||
| `webui_host` | Web UI 监听地址 | `0.0.0.0` |
|
||||
| `webui_port` | Web UI 监听端口 | `8000` |
|
||||
| `proxy_enabled` | 是否启用代理 | `false` |
|
||||
| `proxy_url` | 全局代理地址 | - |
|
||||
| `registration_max_retries` | 注册最大重试次数 | `3` |
|
||||
| `registration_timeout` | 注册超时时间(秒) | `120` |
|
||||
| `cpa_enabled` | 是否启用 CPA 上传 | `false` |
|
||||
| `cpa_api_url` | CPA API 地址 | - |
|
||||
| `cpa_api_token` | CPA API Token | - |
|
||||
打包后生成 `codex-register.exe`(Windows)或 `codex-register`(Unix),双击或直接运行即可,无需安装 Python 环境。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
codex-register-v2/
|
||||
├── cli.py # 命令行入口
|
||||
├── webui.py # Web UI 入口
|
||||
├── codex_register.spec # PyInstaller 打包配置
|
||||
├── build.bat # Windows 打包脚本
|
||||
├── pyproject.toml # 项目配置
|
||||
├── requirements.txt # 依赖列表
|
||||
├── webui.py # Web UI 入口
|
||||
├── build.bat # Windows 打包脚本
|
||||
├── build.sh # Linux/macOS 打包脚本
|
||||
├── src/
|
||||
│ ├── config/ # 配置模块
|
||||
│ │ ├── settings.py # Pydantic 设置模型
|
||||
│ │ └── constants.py # 常量定义(含随机用户信息生成)
|
||||
│ ├── core/ # 核心功能
|
||||
│ │ ├── oauth.py # OAuth 认证
|
||||
│ │ ├── register.py # 注册引擎
|
||||
│ │ ├── http_client.py # HTTP 客户端(curl_cffi)
|
||||
│ │ ├── cpa_upload.py # CPA 上传
|
||||
│ │ ├── token_refresh.py # Token 刷新
|
||||
│ │ └── utils.py # 工具函数
|
||||
│ ├── database/ # 数据库模块
|
||||
│ │ ├── models.py # 数据模型
|
||||
│ │ ├── crud.py # CRUD 操作
|
||||
│ │ ├── session.py # 会话管理(含自动迁移)
|
||||
│ │ └── init_db.py # 数据库初始化
|
||||
│ ├── services/ # 邮箱服务
|
||||
│ │ ├── base.py # 基类和工厂
|
||||
│ │ ├── tempmail.py # Tempmail.lol 服务
|
||||
│ │ ├── custom_domain.py # 自定义域名服务
|
||||
│ │ └── outlook/ # Outlook 服务(多 Provider)
|
||||
│ │ ├── service.py
|
||||
│ │ ├── providers/
|
||||
│ │ │ ├── graph_api.py # Graph API Provider
|
||||
│ │ │ ├── imap_new.py # 新版 IMAP
|
||||
│ │ │ └── imap_old.py # 旧版 IMAP
|
||||
│ │ └── ...
|
||||
│ └── web/ # Web 模块
|
||||
│ ├── app.py # FastAPI 应用
|
||||
│ ├── task_manager.py # 任务管理器
|
||||
│ └── routes/ # API 路由
|
||||
│ ├── accounts.py # 账号管理
|
||||
│ ├── registration.py # 注册任务
|
||||
│ ├── settings.py # 系统设置
|
||||
│ ├── email_services.py # 邮箱服务
|
||||
│ └── websocket.py # WebSocket
|
||||
├── templates/ # Jinja2 模板
|
||||
└── static/ # 静态文件
|
||||
├── css/
|
||||
└── js/
|
||||
│ ├── config/ # 配置管理(Pydantic Settings)
|
||||
│ ├── core/ # 核心功能(注册引擎、HTTP 客户端、CPA 上传)
|
||||
│ ├── database/ # 数据库(SQLAlchemy + SQLite)
|
||||
│ ├── services/ # 邮箱服务实现
|
||||
│ └── web/ # FastAPI Web 应用
|
||||
│ ├── app.py # 应用入口、路由挂载
|
||||
│ ├── routes/ # API 路由
|
||||
│ └── websocket.py # WebSocket 处理
|
||||
├── templates/ # Jinja2 HTML 模板
|
||||
├── static/ # 静态资源(CSS / JS)
|
||||
└── data/ # 运行时数据目录(数据库、日志)
|
||||
```
|
||||
|
||||
## API 文档
|
||||
## 技术栈
|
||||
|
||||
### 账号管理
|
||||
| 层级 | 技术 |
|
||||
|------|------|
|
||||
| Web 框架 | FastAPI + Uvicorn |
|
||||
| 数据库 | SQLAlchemy + SQLite |
|
||||
| 模板引擎 | Jinja2 |
|
||||
| HTTP 客户端 | curl_cffi(浏览器指纹模拟) |
|
||||
| 实时通信 | WebSocket(websockets 库) |
|
||||
| 前端 | 原生 JavaScript(无框架) |
|
||||
| 打包 | PyInstaller |
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/api/accounts` | 获取账号列表 |
|
||||
| GET | `/api/accounts/{id}` | 获取单个账号 |
|
||||
| DELETE | `/api/accounts/{id}` | 删除账号 |
|
||||
| POST | `/api/accounts/batch-delete` | 批量删除 |
|
||||
| POST | `/api/accounts/export/json` | 导出为 JSON |
|
||||
| POST | `/api/accounts/export/csv` | 导出为 CSV |
|
||||
| POST | `/api/accounts/export/cpa` | 导出为 CPA Token 格式 |
|
||||
| POST | `/api/accounts/{id}/refresh` | 刷新 Token |
|
||||
| POST | `/api/accounts/{id}/validate` | 验证 Token |
|
||||
| POST | `/api/accounts/batch-refresh` | 批量刷新 Token |
|
||||
| POST | `/api/accounts/batch-validate` | 批量验证 Token |
|
||||
| POST | `/api/accounts/{id}/upload-cpa` | 上传到 CPA |
|
||||
| POST | `/api/accounts/batch-upload-cpa` | 批量上传到 CPA |
|
||||
## API 端点
|
||||
|
||||
### 注册任务
|
||||
|
||||
@@ -263,64 +122,70 @@ codex-register-v2/
|
||||
|------|------|------|
|
||||
| POST | `/api/registration/start` | 启动单次注册 |
|
||||
| POST | `/api/registration/batch` | 启动批量注册 |
|
||||
| GET | `/api/registration/batch/{id}` | 批量任务状态 |
|
||||
| POST | `/api/registration/batch/{id}/cancel` | 取消批量任务 |
|
||||
| POST | `/api/registration/outlook-batch` | 启动 Outlook 批量注册 |
|
||||
| GET | `/api/registration/outlook-batch/{id}` | Outlook 批量状态 |
|
||||
| GET | `/api/registration/tasks` | 任务列表 |
|
||||
| GET | `/api/registration/tasks/{uuid}` | 任务详情 |
|
||||
| GET | `/api/registration/tasks/{uuid}/logs` | 任务日志 |
|
||||
| POST | `/api/registration/tasks/{uuid}/cancel` | 取消任务 |
|
||||
| DELETE | `/api/registration/tasks/{uuid}` | 删除任务 |
|
||||
| GET | `/api/registration/stats` | 注册统计 |
|
||||
| GET | `/api/registration/outlook-accounts` | Outlook 账号列表(含注册状态) |
|
||||
| POST | `/api/registration/outlook-batch` | 启动 Outlook 批量注册 |
|
||||
| GET | `/api/registration/outlook-batch/{id}` | Outlook 批量任务状态 |
|
||||
| POST | `/api/registration/outlook-batch/{id}/cancel` | 取消 Outlook 批量任务 |
|
||||
| GET | `/api/registration/available-services` | 可用邮箱服务 |
|
||||
| GET | `/api/registration/outlook-accounts` | 可用 Outlook 账户 |
|
||||
|
||||
### 账号管理
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/api/accounts` | 账号列表 |
|
||||
| GET | `/api/accounts/{id}` | 账号详情 |
|
||||
| DELETE | `/api/accounts/{id}` | 删除账号 |
|
||||
| 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/{id}/refresh` | 刷新 Token |
|
||||
| POST | `/api/accounts/batch-refresh` | 批量刷新 Token |
|
||||
| POST | `/api/accounts/{id}/validate` | 验证 Token |
|
||||
| POST | `/api/accounts/batch-validate` | 批量验证 Token |
|
||||
| POST | `/api/accounts/{id}/upload-cpa` | 上传到 CPA |
|
||||
| POST | `/api/accounts/batch-upload-cpa` | 批量上传到 CPA |
|
||||
|
||||
### 邮箱服务
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/api/email-services` | 服务列表(支持 `service_type` 筛选) |
|
||||
| GET | `/api/email-services` | 服务列表 |
|
||||
| POST | `/api/email-services` | 添加服务 |
|
||||
| GET | `/api/email-services/{id}` | 获取服务详情 |
|
||||
| GET | `/api/email-services/{id}` | 服务详情 |
|
||||
| PATCH | `/api/email-services/{id}` | 更新服务 |
|
||||
| DELETE | `/api/email-services/{id}` | 删除服务 |
|
||||
| POST | `/api/email-services/{id}/test` | 测试服务 |
|
||||
| POST | `/api/email-services/{id}/enable` | 启用服务 |
|
||||
| POST | `/api/email-services/{id}/disable` | 禁用服务 |
|
||||
| POST | `/api/email-services/outlook/batch-import` | 批量导入 Outlook 账号 |
|
||||
| DELETE | `/api/email-services/outlook/batch` | 批量删除 Outlook |
|
||||
| GET | `/api/email-services/stats` | 服务统计 |
|
||||
| POST | `/api/email-services/outlook/batch-import` | 批量导入 Outlook |
|
||||
|
||||
### 系统设置
|
||||
### 设置
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | `/api/settings` | 获取所有设置 |
|
||||
| POST | `/api/settings/proxy` | 更新代理设置 |
|
||||
| GET | `/api/settings/tempmail` | 获取临时邮箱设置 |
|
||||
| POST | `/api/settings/tempmail` | 更新临时邮箱设置 |
|
||||
| GET | `/api/settings/cpa` | 获取 CPA 设置 |
|
||||
| POST | `/api/settings/dynamic-proxy` | 更新动态代理设置 |
|
||||
| POST | `/api/settings/cpa` | 更新 CPA 设置 |
|
||||
| POST | `/api/settings/cpa/test` | 测试 CPA 连接 |
|
||||
| GET | `/api/settings/database` | 数据库信息 |
|
||||
|
||||
## 技术栈
|
||||
### WebSocket
|
||||
|
||||
- **Web 框架**: FastAPI + Uvicorn
|
||||
- **模板引擎**: Jinja2
|
||||
- **数据库**: SQLAlchemy + SQLite(含自动迁移)
|
||||
- **HTTP 客户端**: curl_cffi(支持浏览器指纹模拟)
|
||||
- **数据验证**: Pydantic v2
|
||||
- **认证**: OAuth 2.0 + PKCE
|
||||
- **打包**: PyInstaller(单文件 exe)
|
||||
| 路径 | 说明 |
|
||||
|------|------|
|
||||
| `ws://host/api/ws/task/{uuid}` | 单任务实时日志 |
|
||||
| `ws://host/api/ws/batch/{id}` | 批量任务实时状态 |
|
||||
|
||||
## 许可证
|
||||
## 注意事项
|
||||
|
||||
MIT License
|
||||
|
||||
## 作者
|
||||
|
||||
Yasal
|
||||
|
||||
---
|
||||
|
||||
**注意**: 本工具仅供学习和研究目的,请勿用于违反 OpenAI 服务条款的活动。
|
||||
- 首次运行会自动创建 `data/` 目录和 SQLite 数据库
|
||||
- 所有账号和设置数据存储在 `data/register.db`
|
||||
- 日志文件写入 `logs/` 目录
|
||||
- 代理设置优先级:动态代理 > 代理列表(随机) > 静态默认代理
|
||||
- 注册时自动随机生成用户名和生日(年龄范围 18-45 岁)
|
||||
|
||||
Reference in New Issue
Block a user