SkillAgentSearch skills...

AIAccountPoolX

基于 Tempmail.lol 临时邮箱和 IMAP 邮箱批量注册多平台账号(如 OpenAI Codex),集中管理账号池,并支持与 NEW API 对接同步 | IMAP-based batch signup, account pool & NEW API sync

Install / Use

/learn @asasugar/AIAccountPoolX
About this skill

Quality Score

0/100

Supported Platforms

OpenAI Codex

README

AIAccountPoolX

OpenAI 账号注册与 Token 管理系统,提供 FastAPI 后端、Vue 3 控制台、实时日志、账号/Token 管理、NewAPI 同步、代理池和可选 AWS API Gateway IP 轮换能力。

⚠️ 免责声明:本项目仅供学习、研究和内部测试使用。请自行遵守相关平台条款和当地法律法规,不要用于违法或滥用场景。

功能特性

  • OpenAI 注册任务

    • HTTP/OAuth 注册流程
    • 支持单次注册和批量循环任务
    • 支持并发控制、任务停止、统计重置
  • 邮箱与验证码

    • 支持普通 IMAP 邮箱
    • 支持 Tempmail.lol 临时邮箱
    • 内置 Tempmail.lol / QQ Mail / Outlook 预设
    • Outlook 支持 OAuth2 IMAP 授权
    • IMAP 自动生成邮箱别名并轮询验证码
    • Tempmail.lol 通过 API 创建 inbox + token 拉取验证码
  • 账号与 Token 管理

    • Token 列表、搜索、导出、删除、批量删除
    • Token 刷新、占用/释放
    • 账号列表、详情、编辑、删除、统计
    • 可建立账号与 Token 的邮箱关联
  • Web 控制台

    • Vue 3 三栏面板
    • WebSocket 实时日志
    • 平台状态面板与任务控制
    • 系统配置弹窗热更新
  • 渠道同步

    • 对接 NewAPI 渠道列表
    • 一键同步 Token 到 NewAPI
    • 测试、更新、删除已有渠道
  • 代理与 IP 轮换

    • 支持静态代理池、动态代理 API
    • 轮询 / 随机 / 最少使用策略
    • 可选 AWS API Gateway 多区域出口轮换

技术栈

| 层级 | 技术 | |------|------| | 后端 | FastAPI · Uvicorn · HTTPX · SQLAlchemy · WebSocket · IMAP | | 前端 | Vue 3 · TypeScript · Vite · Element Plus · Pinia · Tailwind CSS | | 工程 | pnpm workspace monorepo | | 存储 | SQLite |

项目结构

AIAccountPoolX/
├── package.json
├── pnpm-workspace.yaml
├── docs/
│   └── screenshots/              # 无头浏览器生成的界面截图
├── packages/
│   ├── backend/
│   │   ├── app/
│   │   │   ├── main.py                # FastAPI 入口
│   │   │   ├── engine.py              # 平台引擎注册
│   │   │   ├── api/                   # REST / WebSocket 路由
│   │   │   ├── services/              # 业务服务层
│   │   │   ├── platforms/openai/      # OpenAI 注册实现
│   │   │   ├── platforms/openai/constants.py
│   │   │   ├── platforms/openai/http_helpers.py
│   │   │   ├── email_utils/           # 邮箱地址/IMAP/Tempmail
│   │   │   ├── db_models.py           # SQLAlchemy 模型
│   │   │   ├── db_runtime.py          # 数据库运行时与会话
│   │   │   ├── database.py            # 兼容导出层
│   │   │   ├── config_utils.py        # 配置归一化与路径处理
│   │   │   ├── token_manager.py       # Token 管理
│   │   │   ├── token_manager_helpers.py
│   │   │   ├── proxy_pool.py          # 代理池
│   │   │   ├── proxy_pool_helpers.py
│   │   │   └── aws_gateway.py         # AWS API Gateway 轮换
│   │   ├── config.example.json        # 安全示例配置
│   │   ├── requirements.txt
│   │   └── setup_outlook_oauth.py     # Outlook OAuth 授权脚本
│   └── frontend/
│       ├── src/components/            # Sidebar / TokenPanel / ConfigDialog / LogViewer
│       ├── src/stores/                # Pinia store
│       ├── src/api/                   # Axios API 封装
│       └── vite.config.ts
└── README.md                               # 文档

快速开始

环境要求

  • Node.js 18+
  • pnpm 8+
  • Python 3.10+

安装依赖

pnpm install:all

如果你想分步执行:

pnpm install:frontend
pnpm install:backend

说明:

  • pnpm install:frontend 会在仓库根目录安装整个 workspace 的 Node.js 依赖,其中已经包含前端包依赖,所以不需要单独进入 packages/frontend
  • pnpm install:backend 会安装 Python 后端依赖
  • pnpm install:all 会依次完成前后端依赖安装

本地配置

仓库不再保留任何可直接使用的真实凭证。

  • 示例配置:packages/backend/config.example.json
  • 本地配置文件:packages/backend/config.json
  • config.json 不再随仓库提交,缺失时后端会使用默认配置启动

推荐方式:

  1. 复制示例文件并填写你自己的值。
  2. 或直接启动项目后在 Web UI 的“系统配置”中保存,系统会自动生成本地 config.json
cp packages/backend/config.example.json packages/backend/config.json

需要开发者自行填写、不要提交到仓库的字段包括:

  • imap_user
  • imap_pass
  • proxy_pool
  • proxy_api
  • newapi_base_url
  • newapi_token
  • newapi_user_id
  • aws_access_key_id
  • aws_secret_access_key
  • outlook_client_id
  • outlook_refresh_token

启动开发环境

pnpm dev

或分别启动:

pnpm dev:backend
pnpm dev:frontend

默认地址:

  • 前端:http://localhost:3000
  • 后端:http://localhost:1455

Docker Compose 一键部署(生产)

前置要求

  • Docker 24+
  • Docker Compose v2(命令为 docker compose
  • 建议启用 BuildKit(用于加速前端依赖层缓存)

启动

在仓库根目录执行:

docker compose up -d --build

启动后默认地址:

  • 前端(Nginx):http://localhost
  • 后端 API:http://localhost:1455

停止

docker compose down

如需同时删除持久化数据卷:

docker compose down -v

生产部署说明

  • frontend 使用多阶段构建,产物由 Nginx 提供静态服务
  • /api/auth 由 Nginx 反向代理到 backend:1455
  • 后端配置文件路径通过环境变量 AIACCOUNTPOOLX_CONFIG_PATH 指向容器内 /app/runtime/config.json
  • 持久化卷:
    • backend-runtime:保存 config.json
    • backend-data:保存业务数据(如 SQLite 数据)
    • backend-logs:保存日志
  • 两个服务都配置了 restart: unless-stopped,异常退出会自动重启

健康检查

  • 后端:探测 GET /api/health
  • 前端:探测 Nginx 首页可访问性

查看健康状态:

docker compose ps

界面截图

控制台总览

控制台总览

任务控制区域

任务控制区域

系统配置弹窗

系统配置弹窗

配置说明

邮箱配置

系统通过 email_presets 管理多套邮箱配置,active_email_preset 决定当前生效预设。

预设类型说明:

  • Tempmail.lol:使用 tempmail_base_url(默认 https://api.tempmail.lol/v2
  • QQ Mail / Outlook:使用 IMAP 参数 domainimap_hostimap_portimap_userimap_pass

说明:

  • tempmail_base_url 仅存在于 Tempmail.lol 预设内
  • 顶层不维护 email_type / tempmail_base_url
  • email_prefix 仅在 IMAP 邮箱别名生成时使用

参考指南:

  • QQ 邮箱 + Cloudflare 邮件路由配置指南:https://blog.cinb1314.online/other/qq-imap-cloudflare.html

NewAPI 配置

如需启用 Token 同步到 NewAPI,需要填写:

  • newapi_base_url
  • newapi_token
  • newapi_user_id

同步状态字段如 newapi_sync_last_atnewapi_sync_status 由系统自动维护,不需要手工填写。

代理配置

支持两类入口(统一走代理池):

  • proxy_pool:静态代理列表
  • proxy_api:动态代理 API
  • proxy:历史字段,已废弃(即使在旧 config.json 中存在也会被忽略)

配合以下字段控制策略:

  • proxy_selection_strategy
  • proxy_refresh_interval
  • proxy_max_uses
  • proxy_auto_switch

配置生效说明:

  • 通过 Web UI「系统配置」保存,或调用 PUT /api/config 更新时,后端会立即刷新 proxy_pool,无需重启服务。
  • 如果你是直接手动修改 packages/backend/config.json,运行中的进程不会自动重载;需要重启后端服务(Docker 场景下重启 backend 容器)后才会生效。

AWS API Gateway 轮换

如需使用 AWS 出口轮换,需要填写:

  • aws_access_key_id
  • aws_secret_access_key
  • aws_regions

未配置时该能力自动关闭。

参考指南:

  • AWS IP 轮换配置参考:https://blog.cinb1314.online/other/aws-ip-rotation.html

Outlook OAuth

Outlook IMAP OAuth2 需要先填写 outlook_client_id,然后执行:

cd packages/backend
python setup_outlook_oauth.py

脚本会引导获取并写入本地 outlook_refresh_token

参考指南:

  • Outlook OAuth2 IMAP 配置指南:https://blog.cinb1314.online/other/outlook-oauth2-imap.html

常用命令

pnpm install:frontend
pnpm install:backend
pnpm install:all
pnpm dev
pnpm dev:backend
pnpm dev:frontend
pnpm build
pnpm kill:all

根目录脚本说明:

  • pnpm dev:并行启动前后端
  • pnpm dev:frontend:仅启动前端开发服务器
  • pnpm dev:backend:仅启动后端开发服务器
  • pnpm build:构建前端产物
  • pnpm kill:backend:清理 1455 端口
  • pnpm kill:frontend:清理 3000 端口
  • pnpm kill:all:同时清理前后端端口

API 概览

平台与任务

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/platforms | 平台列表 | | GET | /api/platforms/{platform_id} | 平台状态 | | GET | /api/platforms/{platform_id}/config-fields | 平台配置字段 | | POST | /api/task/start?platform=openai | 启动任务 | | POST | /api/task/stop?platform=openai | 停止任务 | | GET | /api/task/status?platform=openai | 任务状态 | | POST | /api/task/reset?platform=openai | 重置统计 | | POST | /api/task/register-once | 单次注册 | | GET | /api/task/proxy-pool/stats | 代理池统计 |

Token

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/tokens | Token 列表 | | POST | /api/tokens/batch-delete | 批量删除 Token | | DELETE | /api/tokens/{token_id} | 删除 Token | | GET | /api/tokens/export | 导出 Token | | POST | /api/tokens/acquire | 获取可用 Token | | POST | /api/tokens/release | 释放 Token | | GET | /api/tokens/stats | Token 使用统计 | | POST | /api/tokens/{token_id}/refresh | 刷新 Token |

账号与日志

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/accounts | 账号列表 | | GET | /api/accounts/{id} | 账号详情 | | GET | /api/accounts/{id}/token | 获取关联 Token | | POST | /api/accounts | 创建账号 | | PUT | /api/accounts/{id} | 更新账号 | | DELETE | /api/accounts/{id} | 删除账号 | | GET | /api/accounts/stats/summary | 账号统计 | | GET | /api/logs | 任务日志 | | GET | /api/logs/stats | 日志统计 | | GET | /api/logs/today | 今日统计 | | WS | /api/ws/logs | 实时日志流 |

配置与 NewAPI

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/config | 获取当前配置 | | PUT | /api/config | 更新配置 | | GET | /api/newapi/channels | 获取渠道列表 | | GET | /api/newapi/channel/test/{channel_id} | 测试渠道 | | DELETE | /api/newapi/channel/{channel_id} | 删除渠道 | | POST | /api/newapi/channel/batch | 批量删除渠道 | | PUT | /api/newapi/channel | 更新渠道 | | GET | /api/newapi/sync-status | 获取同步状态 | | POST | /api/newapi/sync | 一键同步到 NewAPI |

安全建议

  • 不要提交 packages/backend/config.json
  • 不要提交 packages/backend/data/packages/backend/logs/
  • 不要在 README、脚本或截图中保留真实邮箱、授权码、Access Key、refresh token、服务地址或内网代理
  • 如果仓库历史里已经提交过敏感值,请尽快轮换对应凭证

扩展平台

后端采用平台注册表模式。新增平台时:

  1. packages/backend/app/platforms/ 下新增目录。
  2. 实现继承 BaseEngine 的引擎类。
  3. packages/backend/app/engine.py 注册到 registry

License

本项目采用 MIT License

View on GitHub
GitHub Stars29
CategoryDevelopment
Updated14h ago
Forks7

Languages

Python

Security Score

90/100

Audited on Mar 31, 2026

No findings