Skip to content

axdlee/codex-auto-register

Repository files navigation

Codex Auto Register

一个围绕 OpenAI / ChatGPT 账号资产管理构建的本地控制台,提供邮箱资源管理、新号注册、授权巡检、AuthSession 获取、同步导入与 sub2api 同步等能力。

当前仓库采用前后端分离架构:FastAPI + SQLite + Alembic + Vue 3 / Ant Design Vue,并通过独立 Worker 执行注册、巡检、同步等异步任务。

项目概览

这个项目主要解决的是一套账号资产的可视化管理问题,而不只是“跑脚本”:

  • 把零散的邮箱、授权、代理、同步目标统一放到一个后台里管理
  • 把注册、巡检、刷新授权、同步导入这些高频动作收敛成任务中心
  • 把 OpenAI 账号与兼容文件、sub2api 导出/导入链路打通
  • 把 SQLite、本地文件、Worker、前端操作台串成一套可持续维护的系统

如果你之前主要依赖单文件脚本、临时文本文件和手工同步,这个项目的价值就在于把这些流程变成一套可追踪、可回看、可配置的控制台。

界面预览

以下截图来自当前真实运行中的页面,而不是静态示意图。

仪表盘总览

仪表盘总览

注册中心

注册中心

OpenAI 账号列表

OpenAI 账号列表

核心能力

  • 邮箱账号管理
    • 支持邮箱资源入库、状态管理、标签管理、失败原因追踪
    • 支持查看邮箱邮件列表与邮件详情
  • OpenAI 账号管理
    • 支持导入历史账号、巡检授权有效性、刷新授权、重新同步到 sub2api
    • 支持拉取并缓存 AuthSession 完整 JSON
  • 注册中心
    • 支持按任务下发批量注册
    • 支持代理节点、同步目标、默认配置联动
    • 支持失败分类、重试策略与任务明细追踪
  • 同步导入
    • 支持兼容历史 accounts.txt / token 文件导入
    • 支持把授权资产同步到 sub2api
  • 系统配置中心
    • 支持默认任务参数、时区、导出/导入策略等集中配置
  • 任务中心 / Worker
    • 所有注册、巡检、导入、同步类动作都走任务体系
    • 便于审计、失败排查和异步执行

适合谁使用

适合:

  • 需要长期维护一批 OpenAI 账号资产的人
  • 需要把邮箱、授权、代理、同步目标统一管理的人
  • 希望把原本脚本化流程升级为可视化后台的人

不适合:

  • 只想执行一次性临时脚本的人
  • 不需要前后端控制台、任务中心、状态回写的人
  • 不愿意维护本地 Python / Node / SQLite 环境的人

技术栈

  • 后端:FastAPI、SQLAlchemy、SQLite、Alembic
  • 前端:Vue 3、Vben Admin、Ant Design Vue、Vitest
  • 任务执行:独立 Worker 进程
  • 包管理:uvpnpm

快速开始

1. 环境要求

  • Python 3.11+
  • Node.js 20+
  • uv
  • pnpm

2. 一键启动开发环境

在项目根目录执行:

python run_dev.py

这个脚本会自动:

  • 检查并初始化后端依赖
  • 检查并初始化前端依赖
  • 同时启动后端 API、Worker、前端开发服务
  • 在你按 Ctrl+C 时一次性关闭全部进程

启动后默认访问地址:

  • 前端:http://127.0.0.1:5666
  • 后端:http://127.0.0.1:8000

默认管理员账号:

  • 用户名:admin
  • 密码:admin123456

3. 手动启动

如果你想分别控制三个进程,可以手动启动。

后端 API:

cd backend
cp .env.example .env
uv sync
uv run uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

Worker:

cd backend
uv run python -m app.worker.main

前端:

cd frontend
COREPACK_ENABLE_STRICT=0 pnpm install
COREPACK_ENABLE_STRICT=0 pnpm -F @vben/web-antd dev

典型工作流

1. 导入或维护邮箱资源

  • 在邮箱列表中维护邮箱账号、状态、标签和可用性
  • 对 Outlook Graph 类型邮箱,可通过后台查看邮件列表与详情

2. 发起注册任务

  • 在“注册中心”选择任务参数
  • 绑定代理节点、同步目标、默认配置
  • 交给 Worker 异步执行并在任务中心查看明细

3. 巡检或刷新授权

  • 在 OpenAI 账号列表发起授权巡检
  • 对失效授权标记状态
  • 对仍有效账号回填实际套餐信息,例如 free / plus

4. 获取 AuthSession

  • 在 OpenAI 账号列表点击“获取 AuthSession”
  • 成功后会展示完整 JSON,并缓存到数据库
  • 再次查看时可直接读取缓存,也可以强制重新获取并覆盖

5. 同步到 sub2api

  • 使用系统配置中的 sub2api 导出与自动导入设置
  • 可以本地导出 bundle,也可以直接调用远端 sub2api 导入接口

项目结构

.
├── backend/                  # FastAPI 后端、数据库、Worker、业务模块
├── frontend/                 # Vue 3 / Vben Admin 前端
├── .github/assets/           # README 使用的截图等静态资源
├── data/                     # 本地运行数据(示例、导入源等)
├── tokens/                   # 兼容历史 token / accounts 输出目录
├── run_dev.py                # 一键启动前后端 + Worker
├── start.py                  # 旧式交互启动助手 / CLI 辅助入口
└── README.md

补充说明:

  • backend/app/ 是当前主业务代码目录
  • 根目录历史脚本已逐步收敛,后台主逻辑不再继续堆积到单文件脚本里
  • start.py 更偏向辅助入口;日常开发建议直接使用 run_dev.py

配置说明

推荐优先使用以下配置文件:

关键配置包括:

  • SQLite 数据库路径
  • 前端源地址
  • 默认管理员账号
  • token 输出目录
  • sub2api 导出与自动导入配置

数据库初始化与迁移

当前数据库管理方式已经不是“直接带一个现成的 app.db 发布”,而是基于 Alembic 自动初始化。

首次启动后端时:

  • 如果 backend/data/app.db 不存在,会自动执行 Alembic upgrade head 创建数据库
  • 如果数据库已存在且已经纳入 Alembic 管理,会自动执行迁移检查
  • 如果数据库已存在但没有 alembic_version,系统会先对比当前 ORM 与现有表结构
    • 结构一致:自动 stamp head,把旧库纳入 Alembic 管理
    • 结构不一致:拒绝强行接管,并抛出明确错误,避免误损数据

相关文件:

其中 backend/schema.sql 是当前迁移头版本导出的 DDL 快照,不是手写 SQL。重新导出命令:

cd backend
uv run python -m app.db.schema_export schema.sql

开源发布建议

如果你打算把项目开源,推荐这样处理:

  • 不提交本地 SQLite 数据文件
    • 例如 backend/data/app.db
    • 以及对应的 -wal-shm 文件
  • 保留 Alembic 迁移与 backend/schema.sql
  • 保留 .env.examplebackend/.env.example
  • 让使用者首次启动时自动初始化数据库

这样做的好处是:

  • 不会把你的本地数据、账号资产、历史任务一并公开出去
  • 新用户拿到仓库后仍然能按当前表结构正常初始化

常见问题

Worker 不启动会怎样?

大部分注册、巡检、同步、刷新授权等动作都依赖 Worker 执行。
如果 Worker 没启动,任务会卡住,或者在部分页面里被前置拦截并提示 Worker 不在线。

为什么推荐用代理节点?

项目里涉及 OpenAI / ChatGPT 相关链路时,通常需要稳定代理。当前系统已经逐步把“手填代理 URL”收敛为“选择已有代理节点”的方式,更适合长期维护。

为什么仓库里还有 start.py 或历史兼容配置?

这是为了兼容旧流程和旧资产格式,方便从脚本时代平滑迁移到后台化管理。
但日常开发和使用,优先看当前的前后端控制台与 backend/app/ 新架构。

app.db 不提交到仓库,还能正常跑吗?

可以。只要迁移文件和配置模板还在,首次启动后端时会自动初始化数据库。

后端专用文档

如果你主要关注后端运行、迁移、CLI 与接口细节,请继续看:

使用与合规说明

请你在自己的环境中评估并遵守以下约束:

  • OpenAI / ChatGPT 相关服务条款
  • 邮箱服务商和代理服务商的使用规则
  • 你所在地区的法律法规与数据合规要求

这个仓库更适合作为本地自管系统、研发工具和流程管理后台来理解与使用。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors