⚠️ 免责声明:本项目仅供学习与研究使用,不得用于任何商业用途。使用本项目所产生的一切后果由使用者自行承担。
中文 | English | Tiếng Việt
多平台账号自动注册与管理系统,支持插件化扩展、Web UI 管理、批量注册、状态同步,以及本地 Turnstile Solver 自动拉起。
根据当前前端代码与界面,左侧“平台管理”菜单默认显示的平台为:
感谢以下自营产品对 any-auto-register 的支持。
| Logo | 名称 | 介绍 | 官网 |
|---|---|---|---|
![]() | 阿晨小铺 | 本人经营gpt等虚拟产品,诚信稳定,有保障 | https://faka.gsyun.cloud/ |
| zc-api | zc-api | 面向 Claude Code、Codex 等模型调用场景的中转服务,10G 带宽保障首字响应更快、链路稳定。提供高可用接口、便捷接入与持续交付支持,适合开发者与团队长期使用;支持开具发票,详情可前往官网查看。 | https://api.codelife.eu.cc/ |
感谢以下朋友与伙伴对 any-auto-register 的支持。
| Logo | 名称 | 介绍 | 官网 |
|---|---|---|---|
![]() | IPWO | IPWO 住宅代理适用于浏览器自动化、多地区网络访问、数据采集及在线业务测试等场景。 对于 any-auto-register 这类涉及浏览器自动化、代理池管理和多环境运行的项目,IPWO 住宅代理可用于配置不同浏览器会话的网络环境,支持灵活的 IP 切换与地区选择,为自动化任务提供更加便捷的代理接入方式。 提供 195+ 地区动静态 IP 资源,支持 http/https/socks5 协议,免费测试。 专属优惠码:0204(优惠 10%) | https://www.ipwo.net/?ref=githubanyautoregister |


| 层级 | 技术 |
|---|---|
| 后端 | FastAPI + SQLite(SQLModel) |
| 前端 | React + TypeScript + Vite |
| HTTP | curl_cffi |
| 浏览器自动化 | Playwright / Camoufox |
| ChatGPT 注册协议 | 纯协议实现,Sentinel PoW 走 Node 沙箱 |
当前版本里,ChatGPT 是功能最完整的平台之一,不仅支持注册,还支持 Token 生命周期管理、状态探测和外部系统同步。
ChatGPT 的整条注册链路位于 platforms/chatgpt/protocol/,是纯协议实现,不需要浏览器:
http_client.py —— 基于 curl_cffi 的 TLS 指纹会话auth_flow.py —— 驱动 OpenAI authorize 状态机(注册、OTP、add-phone、Codex OAuth)sentinel_quickjs.py + openai_sentinel_quickjs.js —— 在 Node 沙箱里跑 OpenAI 真实的 sdk.js 求解 Sentinel PoW⚠️ Sentinel 需要 Node 运行时。 自己合成的 PoW token 能骗过
/sentinel/req的表层校验,但发码服务会在服务端复核,结果是验证码邮件被静默丢弃——链路看着一切正常却永远收不到码。所以必须有可执行的node(>= 18),如果不在PATH里可用OPENAI_SENTINEL_NODE_PATH指定绝对路径。
协议层之上只有三个注入点:邮箱池适配器(protocol/mailbox_adapter.py)、手机接码控制器(services/sms_service.py)、密码生效回调。任务级配置通过实例参数下传,不写进程环境变量,因此多个注册任务并发时互不干扰。
前端当前提供两种 ChatGPT 注册模式:
这项切换在以下位置都能看到:
同样两个位置还能选注册用什么身份,和上面的 Token 方案可以任意组合:
后两种都要先在「设置 → 手机接码」里启用接码并填好 API Key,否则任务会直接报错。绑定邮箱这一步只在 OpenAI 把 add-email 摆进当前 authorize 流程时才会被接受;被拒时账号照常保留,失败原因记在账号详情里,可以稍后单独补绑。
注册任务页和 ChatGPT 注册弹窗上还有一个「绑定 2FA」开关,默认关闭。打开后注册成功的号会顺手绑上一个 TOTP 双因素:
密钥随号落库(写进账号 extra 的 totp_secret),三个地方都能复制导入验证器 App:账号列表里点「2FA 已绑」标签、账号操作菜单里的「复制 2FA 密钥」、账号详情里的密钥栏。补绑动作跑完的弹窗也会把密钥单独列出来带复制按钮,任务日志里同样打一遍。批量拿密钥用导出里的 邮箱----密码----2FA 之类的格式。
库里的老号可以在账号操作菜单里点「绑定 2FA」单独补绑,同样先试复用会话、会话失效再走重新登录。这个动作和「补 RT」一样跑成后台任务:点完立刻弹出日志窗口,实时看到走的是哪条路、是不是在等验证码,也能中途停掉;绑成功那一刻密钥会打在日志里,弹窗顶部再单独列一份带复制按钮。
⚠️ 密钥只在绑定那一刻由服务端下发一次,任何接口都取不回。绑定即生效,之后该号每次登录都要动态码 —— 补 RT、重新登录这些链路会自动用库里的密钥算码通过,但密钥丢了这个号就再也登不进去。
OpenAI 会对部分注册请求要求绑定手机号。命中 add-phone 时,系统会自动租号、等短信、提交验证码,全程无人值守。在「设置 → 手机接码」里配置:
| 配置项 | 说明 |
|---|---|
| 启用手机接码 | 关闭时命中 add-phone 会回退到手工号码路径(OPENAI_PHONE_NUMBER) |
| 接码平台 | SmsBower / HeroSMS,两家共用 sms-activate 的 handler_api.php 协议 |
| API Key | 平台密钥,可用页面上的「测试余额」直接自检 |
| 服务代码 | 平台按服务码分库存,OpenAI 对应 dr |
| 默认国家 ID | 默认 52(泰国) |
| 自动选最优国家 | 按价格升序 + 库存挑号;也可用「允许的国家」限定候选范围 |
| 复用同一号码 | 在号码 20 分钟租期内复用,直到达到单号成功次数上限 |
| 单号等待秒数 / 最多换号次数 / 单号内验证重试次数 | 收码失败时的重试策略 |
「查询国家排名」会列出该服务码下各国的价格与库存,绿色标签是 OpenAI 走纯短信的国家。
⚠️ OpenAI 自 2025 年起对大部分国家改用 WhatsApp 验证,纯 SMS 路径实测只有**泰国(country_id=52)**稳定可用。选其它国家可能抽到 WhatsApp 号从而收不到短信,自动选号时会打告警但不阻止。
国家 ID、单号等待秒数、最多换号次数还可以在注册任务页按任务覆盖,平台与 API Key 只在全局配置里维护。
在 ChatGPT 平台列表顶部,当前还有两类批量能力:
账号列表右上角的「导出」打开导出弹窗:先选范围(勾选的账号 / 当前筛选出的全部账号,翻页不影响),再选格式,右边直接出预览,然后一键复制或下载。
| 格式 | 一行长什么样 |
|---|---|
email_pw | 邮箱----密码 |
email_pw_2fa | 邮箱----密码----2FA 密钥 |
email_pw_2fa_at | 再接 ----AccessToken |
email_pw_2fa_rt | 再接 ----RefreshToken |
email_pw_2fa_at_rt | 登录与调用凭证一次带齐 |
email_pw_2fa_phone | 再接 ----手机号 |
email_pw_rt | 邮箱----密码----RefreshToken |
email_2fa | 邮箱----2FA 密钥 |
at / rt / totp | 一行一个 token,没有该字段的账号自动跳过 |
csv / json | 全字段,给 Excel 或脚本用 |
空字段照样占位(a@b.com----pw---- 结尾那个分隔符不会省),按 ---- 切列的脚本不会错位。格式清单由后端 services/account_export.py 的 EXPORT_FORMATS 统一定义,加一个新格式只改这一处,前端下拉框自动跟上。
根据当前注册页实际配置项,项目支持以下邮箱服务:
| 服务名称 | 标识 | 说明 |
|---|---|---|
| LuckMail | luckmail | 可免费领取用于测试,且每天签到还能继续领取邮箱 |
| MoeMail | moemail | 默认常用方案,自动注册账号并生成邮箱 |
| TempMail.lol | tempmail_lol | 临时邮箱方案,部分地区可能需要代理 |
| SkyMail (CloudMail) | skymail | 通过 API / Token / 域名使用 |
| YYDS Mail / MaliAPI | maliapi | 支持域名与自动域名策略 |
| GPTMail | gptmail | 基于 GPTMail API 生成临时邮箱并轮询邮件,支持已知域名时本地拼装随机地址 |
| DuckMail | duckmail | 临时邮箱方案 |
| Freemail | freemail | 自建邮箱服务 |
| Laoudo | laoudo | 固定邮箱方案 |
| CF Worker | cfworker | Cloudflare Worker 自建邮箱 |
iCloud 平台不消耗上表中的临时邮箱池,而是使用 Apple 自带的 Hide My Email 地址:
加密密钥取自环境变量 CREDENTIAL_ENCRYPTION_KEY;未设置时会在 .secrets/credential_key 自动生成一份本地密钥。
conda create -n any-auto-register python=3.12 -y
conda activate any-auto-register
pip install -r requirements.txt
python -m playwright install chromium
python -m camoufox fetch
cd frontend
npm install
npm run build
cd ..
构建完成后,静态资源输出到:
./static
PowerShell:
.\start_backend.ps1
CMD:
start_backend.bat
conda activate any-auto-register
python main.py
启动后默认访问:
http://localhost:8000
如果你已经执行过
npm run build,前端会由 FastAPI 直接托管,因此访问的是8000,不是5173。
仓库内已提供以下脚本:
start_backend.batstart_backend.ps1stop_backend.batstop_backend.ps1这些脚本会强制使用 any-auto-register 环境启动/停止后端,可避免以下常见问题:
ModuleNotFoundError: quart停止服务时可执行:
PowerShell:
.\stop_backend.ps1
CMD:
stop_backend.bat
默认会停止:
80008889适合调试 React 页面时使用。
.\start_backend.ps1
cd frontend
npm run dev
访问地址:
http://localhost:5173
Vite 会将 /api 请求代理到本地后端 http://localhost:8000。
本地 Turnstile Solver 会在 FastAPI 后端启动时自动拉起,默认地址:
http://localhost:8889
前端“全局配置 → 验证码 → Turnstile Solver”显示的是后端检测结果,因此:
conda activate any-auto-register
python services/turnstile_solver/start.py --browser_type camoufox --port 8889
如启动失败,可查看:
services/turnstile_solver/solver.log
仓库根目录已提供两套:
| 用途 | 文件 | 镜像体积 | 说明 |
|---|---|---|---|
| 完整版(含浏览器) | Dockerfile + docker-compose.yml | 约 5GB | 带 Playwright / Camoufox / Turnstile Solver |
| 无头服务器 | Dockerfile.server + docker-compose.server.yml | 约 1.1GB | 只跑 Web UI 与 ChatGPT/iCloud 注册,不装浏览器栈 |
ChatGPT 切到纯协议后两个平台都不用浏览器,服务器部署推荐用无头版,详见 docs/SERVER_DEPLOY.md(含反向代理配置和必须先设登录密码的说明)。
以下是完整版的部署内容:
./datadocker compose up -d --build
首次构建会额外下载 Python 依赖、Playwright Chromium 和 Camoufox,因此耗时会明显更长。
当前 Dockerfile 已改为通过固定直链安装 Camoufox,以避免构建时访问 GitHub Releases API 触发匿名限流。
http://localhost:8000
docker compose down
docker compose logs -f app
容器默认使用:
DATABASE_URL=sqlite:////app/data/account_manager.db
宿主机会挂载到:
./data
| 变量名 | 默认值 | 说明 |
|---|---|---|
HOST | 0.0.0.0 | FastAPI 监听地址 |
PORT | 8000 | FastAPI 监听端口 |
DATABASE_URL | sqlite:////app/data/account_manager.db | SQLite 数据库地址 |
APP_ENABLE_SOLVER | 1 | 是否自动启动本地 Solver,设为 0 可禁用 |
SOLVER_PORT | 8889 | Solver 监听端口 |
LOCAL_SOLVER_URL | http://127.0.0.1:8889 | 后端访问 Solver 的地址 |
OPENAI_SENTINEL_NODE_PATH | node | Sentinel PoW 求解器使用的 Node 可执行文件,node 不在 PATH 时填绝对路径 |
如需传入 OPENAI_* 等配置,可直接写入仓库根目录 .env 文件,docker compose 会自动注入到容器环境中。
如需覆盖上游版本,可在构建时指定:
CAMOUFOX_VERSION=135.0.1 CAMOUFOX_RELEASE=beta.24 docker compose build app
CLIProxyAPI 的自动安装/拉起逻辑仍偏向宿主机环境conda、Go 或 Windows 可执行文件,不建议直接在当前 Linux 容器中启动这些插件项目支持 Cloudflare Worker 自建临时邮箱,当前使用方案来源于:
项目当前支持按需安装/启动以下外部组件:
| 项目 | 用途 | Git 地址 |
|---|---|---|
| CLIProxyAPI | CPA / 代理池管理服务 | https://github.com/router-for-me/CLIProxyAPI.git |
插件页中的 “安装最新版 / 更新到最新版” 会同步仓库最新代码,且已支持 卸载(会先停止服务,再删除本地插件目录)。 默认按 最新 semver tag 更新;你也可以在“设置 → 插件 → 安装/更新策略”切回 分支 HEAD 模式。
如果你后续要改成 ghproxy、gitclone、企业 Git 镜像或其他代理地址,需要同步修改:
services/external_apps.py
先检查后端是否正常启动:
curl http://localhost:8000/api/solver/status
正常返回示例:
{"running":true}
如果 8000 端口都访问不到,说明问题在后端,而不是 Solver 本身。
ModuleNotFoundError: quart说明当前启动后端的 Python 不是 any-auto-register 环境,请改用:
.\start_backend.ps1
或:
start_backend.bat
python -c "import sys; print(sys.executable)"
输出应类似:
D:\miniconda\conda3\envs\any-auto-register\python.exe
检查以下两个地址:
http://localhost:8000/api/solver/status
http://localhost:8889/
如果第二个能打开、但第一个不通,问题就在后端,不在 Solver。
如果启动时报 WinError 10048,先执行:
.\stop_backend.ps1
然后重新启动:
.\start_backend.ps1
先确认 node 可执行:
node --version
Sentinel PoW 求解器要在 Node 沙箱里跑 OpenAI 的 sdk.js,没有 Node 时算出来的 token 过不了服务端复核,验证码邮件会被静默丢弃——日志上看不到明显报错,但码永远收不到。若 node 不在 PATH 里,用 OPENAI_SENTINEL_NODE_PATH 指定绝对路径。
host:port:user:pass 格式的兼容性,代理检测与浏览器执行器会使用一致的规范化代理配置。完整历史请查看 docs/releases/release-notes.md。
any-auto-register/
├── api/
├── core/
├── docs/
├── electron/
├── frontend/
├── platforms/
├── services/
│ ├── solver_manager.py
│ └── turnstile_solver/
├── static/
├── tests/
├── main.py
├── requirements.txt
├── docker-compose.yml
├── Dockerfile
├── start_backend.bat
├── start_backend.ps1
├── stop_backend.bat
└── stop_backend.ps1
Electron 开发模式不会自动启动 Python 后端。
请先在项目根目录启动:
.\start_backend.ps1
然后再运行 Electron。
如果这个项目对你有帮助,欢迎赞助支持项目继续维护与更新。
MIT License — 仅供学习研究,禁止商业使用。
1,033 followers · starred Apr 2026
137 followers · starred May 2026
42 followers · starred Mar 2026
117 followers · starred Apr 2026
⚠️ 免责声明:本项目仅供学习与研究使用,不得用于任何商业用途。使用本项目所产生的一切后果由使用者自行承担。
中文 | English | Tiếng Việt
多平台账号自动注册与管理系统,支持插件化扩展、Web UI 管理、批量注册、状态同步,以及本地 Turnstile Solver 自动拉起。
根据当前前端代码与界面,左侧“平台管理”菜单默认显示的平台为:
感谢以下自营产品对 any-auto-register 的支持。
| Logo | 名称 | 介绍 | 官网 |
|---|---|---|---|
![]() | 阿晨小铺 | 本人经营gpt等虚拟产品,诚信稳定,有保障 | https://faka.gsyun.cloud/ |
| zc-api | zc-api | 面向 Claude Code、Codex 等模型调用场景的中转服务,10G 带宽保障首字响应更快、链路稳定。提供高可用接口、便捷接入与持续交付支持,适合开发者与团队长期使用;支持开具发票,详情可前往官网查看。 | https://api.codelife.eu.cc/ |
感谢以下朋友与伙伴对 any-auto-register 的支持。
| Logo | 名称 | 介绍 | 官网 |
|---|---|---|---|
![]() | IPWO | IPWO 住宅代理适用于浏览器自动化、多地区网络访问、数据采集及在线业务测试等场景。 对于 any-auto-register 这类涉及浏览器自动化、代理池管理和多环境运行的项目,IPWO 住宅代理可用于配置不同浏览器会话的网络环境,支持灵活的 IP 切换与地区选择,为自动化任务提供更加便捷的代理接入方式。 提供 195+ 地区动静态 IP 资源,支持 http/https/socks5 协议,免费测试。 专属优惠码:0204(优惠 10%) | https://www.ipwo.net/?ref=githubanyautoregister |


| 层级 | 技术 |
|---|---|
| 后端 | FastAPI + SQLite(SQLModel) |
| 前端 | React + TypeScript + Vite |
| HTTP | curl_cffi |
| 浏览器自动化 | Playwright / Camoufox |
| ChatGPT 注册协议 | 纯协议实现,Sentinel PoW 走 Node 沙箱 |
当前版本里,ChatGPT 是功能最完整的平台之一,不仅支持注册,还支持 Token 生命周期管理、状态探测和外部系统同步。
ChatGPT 的整条注册链路位于 platforms/chatgpt/protocol/,是纯协议实现,不需要浏览器:
http_client.py —— 基于 curl_cffi 的 TLS 指纹会话auth_flow.py —— 驱动 OpenAI authorize 状态机(注册、OTP、add-phone、Codex OAuth)sentinel_quickjs.py + openai_sentinel_quickjs.js —— 在 Node 沙箱里跑 OpenAI 真实的 sdk.js 求解 Sentinel PoW⚠️ Sentinel 需要 Node 运行时。 自己合成的 PoW token 能骗过
/sentinel/req的表层校验,但发码服务会在服务端复核,结果是验证码邮件被静默丢弃——链路看着一切正常却永远收不到码。所以必须有可执行的node(>= 18),如果不在PATH里可用OPENAI_SENTINEL_NODE_PATH指定绝对路径。
协议层之上只有三个注入点:邮箱池适配器(protocol/mailbox_adapter.py)、手机接码控制器(services/sms_service.py)、密码生效回调。任务级配置通过实例参数下传,不写进程环境变量,因此多个注册任务并发时互不干扰。
前端当前提供两种 ChatGPT 注册模式:
这项切换在以下位置都能看到:
同样两个位置还能选注册用什么身份,和上面的 Token 方案可以任意组合:
后两种都要先在「设置 → 手机接码」里启用接码并填好 API Key,否则任务会直接报错。绑定邮箱这一步只在 OpenAI 把 add-email 摆进当前 authorize 流程时才会被接受;被拒时账号照常保留,失败原因记在账号详情里,可以稍后单独补绑。
注册任务页和 ChatGPT 注册弹窗上还有一个「绑定 2FA」开关,默认关闭。打开后注册成功的号会顺手绑上一个 TOTP 双因素:
密钥随号落库(写进账号 extra 的 totp_secret),三个地方都能复制导入验证器 App:账号列表里点「2FA 已绑」标签、账号操作菜单里的「复制 2FA 密钥」、账号详情里的密钥栏。补绑动作跑完的弹窗也会把密钥单独列出来带复制按钮,任务日志里同样打一遍。批量拿密钥用导出里的 邮箱----密码----2FA 之类的格式。
库里的老号可以在账号操作菜单里点「绑定 2FA」单独补绑,同样先试复用会话、会话失效再走重新登录。这个动作和「补 RT」一样跑成后台任务:点完立刻弹出日志窗口,实时看到走的是哪条路、是不是在等验证码,也能中途停掉;绑成功那一刻密钥会打在日志里,弹窗顶部再单独列一份带复制按钮。
⚠️ 密钥只在绑定那一刻由服务端下发一次,任何接口都取不回。绑定即生效,之后该号每次登录都要动态码 —— 补 RT、重新登录这些链路会自动用库里的密钥算码通过,但密钥丢了这个号就再也登不进去。
OpenAI 会对部分注册请求要求绑定手机号。命中 add-phone 时,系统会自动租号、等短信、提交验证码,全程无人值守。在「设置 → 手机接码」里配置:
| 配置项 | 说明 |
|---|---|
| 启用手机接码 | 关闭时命中 add-phone 会回退到手工号码路径(OPENAI_PHONE_NUMBER) |
| 接码平台 | SmsBower / HeroSMS,两家共用 sms-activate 的 handler_api.php 协议 |
| API Key | 平台密钥,可用页面上的「测试余额」直接自检 |
| 服务代码 | 平台按服务码分库存,OpenAI 对应 dr |
| 默认国家 ID | 默认 52(泰国) |
| 自动选最优国家 | 按价格升序 + 库存挑号;也可用「允许的国家」限定候选范围 |
| 复用同一号码 | 在号码 20 分钟租期内复用,直到达到单号成功次数上限 |
| 单号等待秒数 / 最多换号次数 / 单号内验证重试次数 | 收码失败时的重试策略 |
「查询国家排名」会列出该服务码下各国的价格与库存,绿色标签是 OpenAI 走纯短信的国家。
⚠️ OpenAI 自 2025 年起对大部分国家改用 WhatsApp 验证,纯 SMS 路径实测只有**泰国(country_id=52)**稳定可用。选其它国家可能抽到 WhatsApp 号从而收不到短信,自动选号时会打告警但不阻止。
国家 ID、单号等待秒数、最多换号次数还可以在注册任务页按任务覆盖,平台与 API Key 只在全局配置里维护。
在 ChatGPT 平台列表顶部,当前还有两类批量能力:
账号列表右上角的「导出」打开导出弹窗:先选范围(勾选的账号 / 当前筛选出的全部账号,翻页不影响),再选格式,右边直接出预览,然后一键复制或下载。
| 格式 | 一行长什么样 |
|---|---|
email_pw | 邮箱----密码 |
email_pw_2fa | 邮箱----密码----2FA 密钥 |
email_pw_2fa_at | 再接 ----AccessToken |
email_pw_2fa_rt | 再接 ----RefreshToken |
email_pw_2fa_at_rt | 登录与调用凭证一次带齐 |
email_pw_2fa_phone | 再接 ----手机号 |
email_pw_rt | 邮箱----密码----RefreshToken |
email_2fa | 邮箱----2FA 密钥 |
at / rt / totp | 一行一个 token,没有该字段的账号自动跳过 |
csv / json | 全字段,给 Excel 或脚本用 |
空字段照样占位(a@b.com----pw---- 结尾那个分隔符不会省),按 ---- 切列的脚本不会错位。格式清单由后端 services/account_export.py 的 EXPORT_FORMATS 统一定义,加一个新格式只改这一处,前端下拉框自动跟上。
根据当前注册页实际配置项,项目支持以下邮箱服务:
| 服务名称 | 标识 | 说明 |
|---|---|---|
| LuckMail | luckmail | 可免费领取用于测试,且每天签到还能继续领取邮箱 |
| MoeMail | moemail | 默认常用方案,自动注册账号并生成邮箱 |
| TempMail.lol | tempmail_lol | 临时邮箱方案,部分地区可能需要代理 |
| SkyMail (CloudMail) | skymail | 通过 API / Token / 域名使用 |
| YYDS Mail / MaliAPI | maliapi | 支持域名与自动域名策略 |
| GPTMail | gptmail | 基于 GPTMail API 生成临时邮箱并轮询邮件,支持已知域名时本地拼装随机地址 |
| DuckMail | duckmail | 临时邮箱方案 |
| Freemail | freemail | 自建邮箱服务 |
| Laoudo | laoudo | 固定邮箱方案 |
| CF Worker | cfworker | Cloudflare Worker 自建邮箱 |
iCloud 平台不消耗上表中的临时邮箱池,而是使用 Apple 自带的 Hide My Email 地址:
加密密钥取自环境变量 CREDENTIAL_ENCRYPTION_KEY;未设置时会在 .secrets/credential_key 自动生成一份本地密钥。
conda create -n any-auto-register python=3.12 -y
conda activate any-auto-register
pip install -r requirements.txt
python -m playwright install chromium
python -m camoufox fetch
cd frontend
npm install
npm run build
cd ..
构建完成后,静态资源输出到:
./static
PowerShell:
.\start_backend.ps1
CMD:
start_backend.bat
conda activate any-auto-register
python main.py
启动后默认访问:
http://localhost:8000
如果你已经执行过
npm run build,前端会由 FastAPI 直接托管,因此访问的是8000,不是5173。
仓库内已提供以下脚本:
start_backend.batstart_backend.ps1stop_backend.batstop_backend.ps1这些脚本会强制使用 any-auto-register 环境启动/停止后端,可避免以下常见问题:
ModuleNotFoundError: quart停止服务时可执行:
PowerShell:
.\stop_backend.ps1
CMD:
stop_backend.bat
默认会停止:
80008889适合调试 React 页面时使用。
.\start_backend.ps1
cd frontend
npm run dev
访问地址:
http://localhost:5173
Vite 会将 /api 请求代理到本地后端 http://localhost:8000。
本地 Turnstile Solver 会在 FastAPI 后端启动时自动拉起,默认地址:
http://localhost:8889
前端“全局配置 → 验证码 → Turnstile Solver”显示的是后端检测结果,因此:
conda activate any-auto-register
python services/turnstile_solver/start.py --browser_type camoufox --port 8889
如启动失败,可查看:
services/turnstile_solver/solver.log
仓库根目录已提供两套:
| 用途 | 文件 | 镜像体积 | 说明 |
|---|---|---|---|
| 完整版(含浏览器) | Dockerfile + docker-compose.yml | 约 5GB | 带 Playwright / Camoufox / Turnstile Solver |
| 无头服务器 | Dockerfile.server + docker-compose.server.yml | 约 1.1GB | 只跑 Web UI 与 ChatGPT/iCloud 注册,不装浏览器栈 |
ChatGPT 切到纯协议后两个平台都不用浏览器,服务器部署推荐用无头版,详见 docs/SERVER_DEPLOY.md(含反向代理配置和必须先设登录密码的说明)。
以下是完整版的部署内容:
./datadocker compose up -d --build
首次构建会额外下载 Python 依赖、Playwright Chromium 和 Camoufox,因此耗时会明显更长。
当前 Dockerfile 已改为通过固定直链安装 Camoufox,以避免构建时访问 GitHub Releases API 触发匿名限流。
http://localhost:8000
docker compose down
docker compose logs -f app
容器默认使用:
DATABASE_URL=sqlite:////app/data/account_manager.db
宿主机会挂载到:
./data
| 变量名 | 默认值 | 说明 |
|---|---|---|
HOST | 0.0.0.0 | FastAPI 监听地址 |
PORT | 8000 | FastAPI 监听端口 |
DATABASE_URL | sqlite:////app/data/account_manager.db | SQLite 数据库地址 |
APP_ENABLE_SOLVER | 1 | 是否自动启动本地 Solver,设为 0 可禁用 |
SOLVER_PORT | 8889 | Solver 监听端口 |
LOCAL_SOLVER_URL | http://127.0.0.1:8889 | 后端访问 Solver 的地址 |
OPENAI_SENTINEL_NODE_PATH | node | Sentinel PoW 求解器使用的 Node 可执行文件,node 不在 PATH 时填绝对路径 |
如需传入 OPENAI_* 等配置,可直接写入仓库根目录 .env 文件,docker compose 会自动注入到容器环境中。
如需覆盖上游版本,可在构建时指定:
CAMOUFOX_VERSION=135.0.1 CAMOUFOX_RELEASE=beta.24 docker compose build app
CLIProxyAPI 的自动安装/拉起逻辑仍偏向宿主机环境conda、Go 或 Windows 可执行文件,不建议直接在当前 Linux 容器中启动这些插件项目支持 Cloudflare Worker 自建临时邮箱,当前使用方案来源于:
项目当前支持按需安装/启动以下外部组件:
| 项目 | 用途 | Git 地址 |
|---|---|---|
| CLIProxyAPI | CPA / 代理池管理服务 | https://github.com/router-for-me/CLIProxyAPI.git |
插件页中的 “安装最新版 / 更新到最新版” 会同步仓库最新代码,且已支持 卸载(会先停止服务,再删除本地插件目录)。 默认按 最新 semver tag 更新;你也可以在“设置 → 插件 → 安装/更新策略”切回 分支 HEAD 模式。
如果你后续要改成 ghproxy、gitclone、企业 Git 镜像或其他代理地址,需要同步修改:
services/external_apps.py
先检查后端是否正常启动:
curl http://localhost:8000/api/solver/status
正常返回示例:
{"running":true}
如果 8000 端口都访问不到,说明问题在后端,而不是 Solver 本身。
ModuleNotFoundError: quart说明当前启动后端的 Python 不是 any-auto-register 环境,请改用:
.\start_backend.ps1
或:
start_backend.bat
python -c "import sys; print(sys.executable)"
输出应类似:
D:\miniconda\conda3\envs\any-auto-register\python.exe
检查以下两个地址:
http://localhost:8000/api/solver/status
http://localhost:8889/
如果第二个能打开、但第一个不通,问题就在后端,不在 Solver。
如果启动时报 WinError 10048,先执行:
.\stop_backend.ps1
然后重新启动:
.\start_backend.ps1
先确认 node 可执行:
node --version
Sentinel PoW 求解器要在 Node 沙箱里跑 OpenAI 的 sdk.js,没有 Node 时算出来的 token 过不了服务端复核,验证码邮件会被静默丢弃——日志上看不到明显报错,但码永远收不到。若 node 不在 PATH 里,用 OPENAI_SENTINEL_NODE_PATH 指定绝对路径。
host:port:user:pass 格式的兼容性,代理检测与浏览器执行器会使用一致的规范化代理配置。完整历史请查看 docs/releases/release-notes.md。
any-auto-register/
├── api/
├── core/
├── docs/
├── electron/
├── frontend/
├── platforms/
├── services/
│ ├── solver_manager.py
│ └── turnstile_solver/
├── static/
├── tests/
├── main.py
├── requirements.txt
├── docker-compose.yml
├── Dockerfile
├── start_backend.bat
├── start_backend.ps1
├── stop_backend.bat
└── stop_backend.ps1
Electron 开发模式不会自动启动 Python 后端。
请先在项目根目录启动:
.\start_backend.ps1
然后再运行 Electron。
如果这个项目对你有帮助,欢迎赞助支持项目继续维护与更新。
MIT License — 仅供学习研究,禁止商业使用。
1,033 followers · starred Apr 2026
137 followers · starred May 2026
42 followers · starred Mar 2026
117 followers · starred Apr 2026