自动化注册 OpenAI 账号的 Web UI 系统,支持多种邮箱服务、并发批量注册、代理管理和账号管理。
-
多邮箱服务支持
- Tempmail.lol(临时邮箱,无需配置)
- Outlook(IMAP + XOAUTH2,支持批量导入)
- 自定义域名(两种子类型)
- MoeMail:标准 REST API,配置 API 地址 + API 密钥
- TempMail:自部署 Cloudflare Worker 临时邮箱,配置 Worker 地址 + Admin 密码
-
注册模式
- 单次注册
- 批量注册(可配置数量和间隔时间)
- Outlook 批量注册(指定账户逐一注册)
-
并发控制
- 流水线模式(Pipeline):每隔 interval 秒启动新任务,限制最大并发数
- 并行模式(Parallel):所有任务同时提交,Semaphore 控制最大并发
- 并发数可在 UI 自定义(1-50)
- 日志混合显示,带
[任务N]前缀区分
-
实时监控
- WebSocket 实时日志推送
- 跨页面导航后自动重连
- 降级轮询备用方案
-
代理管理
- 静态代理配置
- 动态代理(通过 API 每次获取新 IP)
- 代理列表(随机选取,记录使用时间)
-
账号管理
- 查看、删除、批量操作
- Token 刷新与验证
- 导出(JSON / CSV / CPA 格式)
- 单个账号导出为独立
.json文件 - 多个账号打包为
.zip,每个账号一个独立文件
- 单个账号导出为独立
- CPA 上传(Codex Protocol API,直连不走代理)
- 订阅状态管理(手动标记 / 自动检测 plus/team)
- Team Manager 上传(直连不走代理)
-
支付升级
- 为账号生成 ChatGPT Plus 或 Team 订阅支付链接
- 后端命令行以无痕模式自动打开 Chrome/Edge
- Team 套餐支持自定义工作区名称、座位数、计费周期
-
系统设置
- 代理配置(静态 + 动态)
- Outlook OAuth 参数
- 注册参数(超时、重试、密码长度等)
- 验证码等待配置
- CPA 上传配置
- Team Manager 配置(API URL + API Key)
- 数据库管理(备份、清理)
- 支持远程 PostgreSQL
- Python 3.10+
- uv(推荐)或 pip
# 使用 uv(推荐)
uv sync
# 或使用 pip
pip install -r requirements.txt复制 .env.example 为 .env,按需填写:
cp .env.example .env| 变量 | 说明 | 默认值 |
|---|---|---|
APP_HOST |
监听主机 | 0.0.0.0 |
APP_PORT |
监听端口 | 8000 |
APP_ACCESS_PASSWORD |
Web UI 访问密钥 | admin123 |
APP_DATABASE_URL |
数据库连接字符串 | data/database.db |
优先级:命令行参数 > 环境变量(
.env)> 数据库设置 > 默认值
# 默认启动(127.0.0.1:8000)
python webui.py
# 指定地址和端口
python webui.py --host 0.0.0.0 --port 8080
# 调试模式(热重载)
python webui.py --debug
# 设置 Web UI 访问密钥
python webui.py --access-password mypassword
# 组合参数
python webui.py --host 0.0.0.0 --port 8080 --access-password mypassword
--access-password优先级高于数据库中保存的密钥设置,每次启动时生效。打包后的 exe 同样支持此参数:codex-register.exe --access-password mypassword
通过环境变量指定数据库连接字符串:
export APP_DATABASE_URL="postgresql://user:password@host:5432/dbname"
python webui.py也支持 DATABASE_URL,优先级低于 APP_DATABASE_URL。
启动后访问 http://127.0.0.1:8000
# Windows
build.bat
# Linux/macOS
bash build.sh打包后生成 codex-register.exe(Windows)或 codex-register(Unix),双击或直接运行即可,无需安装 Python 环境。
codex-register-v2/
├── webui.py # Web UI 入口
├── build.bat # Windows 打包脚本
├── build.sh # Linux/macOS 打包脚本
├── src/
│ ├── config/ # 配置管理(Pydantic Settings)
│ ├── core/ # 核心功能(注册引擎、HTTP 客户端、CPA 上传、支付、TM 上传)
│ ├── database/ # 数据库(SQLAlchemy + SQLite)
│ ├── services/ # 邮箱服务实现
│ └── web/ # FastAPI Web 应用
│ ├── app.py # 应用入口、路由挂载
│ ├── routes/ # API 路由
│ ├── task_manager.py # 任务/日志/WebSocket 管理
│ └── routes/websocket.py # WebSocket 处理
├── templates/ # Jinja2 HTML 模板
├── static/ # 静态资源(CSS / JS)
└── data/ # 运行时数据目录(数据库、日志)
| 层级 | 技术 |
|---|---|
| Web 框架 | FastAPI + Uvicorn |
| 数据库 | SQLAlchemy + SQLite / PostgreSQL |
| 模板引擎 | Jinja2 |
| HTTP 客户端 | curl_cffi(浏览器指纹模拟) |
| 实时通信 | WebSocket |
| 并发 | asyncio Semaphore + ThreadPoolExecutor |
| 前端 | 原生 JavaScript(无框架) |
| 打包 | PyInstaller |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/registration/start |
启动单次注册 |
| POST | /api/registration/batch |
启动批量注册(支持 concurrency、mode 参数) |
| 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/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 格式(单文件或 ZIP) |
| 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 |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/payment/generate-link |
生成 Plus/Team 支付链接 |
| POST | /api/payment/open-incognito |
后端无痕模式打开浏览器 |
| POST | /api/payment/accounts/{id}/mark-subscription |
手动标记订阅类型 |
| POST | /api/payment/accounts/batch-check-subscription |
批量检测订阅状态 |
| POST | /api/payment/accounts/{id}/upload-tm |
上传单账号到 Team Manager |
| POST | /api/payment/accounts/batch-upload-tm |
批量上传到 Team Manager |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/email-services |
服务列表 |
| POST | /api/email-services |
添加服务 |
| 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/outlook/batch-import |
批量导入 Outlook |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/settings |
获取所有设置 |
| POST | /api/settings/proxy |
更新代理设置 |
| POST | /api/settings/dynamic-proxy |
更新动态代理设置 |
| POST | /api/settings/cpa |
更新 CPA 设置 |
| POST | /api/settings/cpa/test |
测试 CPA 连接 |
| GET/POST | /api/settings/team-manager |
Team Manager 设置 |
| POST | /api/settings/team-manager/test |
测试 Team Manager 连接 |
| GET | /api/settings/database |
数据库信息 |
| 路径 | 说明 |
|---|---|
ws://host/api/ws/task/{uuid} |
单任务实时日志 |
ws://host/api/ws/batch/{id} |
批量任务实时状态与日志 |
- Docker
- Docker Compose
# 克隆项目
git clone https://github.com/cnlimiter/codex-register.git
cd codex-register
# 启动服务
docker-compose up -d服务启动后访问 http://localhost:8000
端口映射:默认 8000 端口,可在 docker-compose.yml 中修改。
数据持久化:
volumes:
- ./data:/app/data
- ./logs:/app/logs代理配置:
environment:
- HTTP_PROXY=http://your-proxy:port
- HTTPS_PROXY=http://your-proxy:port# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建
docker-compose build --no-cache- 首次运行会自动创建
data/目录和 SQLite 数据库 - 所有账号和设置数据存储在
data/register.db - 日志文件写入
logs/目录 - 代理设置优先级:动态代理 > 代理列表(随机) > 静态默认代理
- 注册时自动随机生成用户名和生日(年龄范围 18-45 岁)
- CPA 上传始终直连,不经过代理
- Team Manager 上传始终直连,不经过代理
- 支付链接生成使用账号 access_token 鉴权,走全局代理配置
- 无痕浏览器优先使用 playwright(注入 cookie 直达支付页);未安装时降级为系统 Chrome/Edge 无痕模式
- 安装完整支付功能:
pip install playwright && playwright install chromium(可选) - 订阅状态自动检测调用
chatgpt.com/backend-api/me,走全局代理 - 批量注册并发数上限为 50,线程池大小已相应调整