Files
codexautopool/backend

Codex Pool Backend

Codex Pool 后端服务 - 标准 Go 项目结构

目录结构

backend/
├── cmd/
│   └── main.go                  # 程序入口
├── internal/
│   ├── api/
│   │   └── http.go              # HTTP 工具、中间件
│   ├── auth/
│   │   ├── s2a.go               # S2A 授权逻辑
│   │   ├── rod.go               # Rod 浏览器自动化
│   │   └── chromedp.go          # Chromedp 浏览器自动化
│   ├── client/
│   │   └── tls.go               # TLS 指纹 HTTP 客户端
│   ├── config/
│   │   └── config.go            # 配置类型和加载
│   ├── database/
│   │   └── sqlite.go            # SQLite 操作
│   ├── invite/
│   │   └── team.go              # Team 邀请功能
│   ├── logger/
│   │   └── logger.go            # 日志系统
│   ├── mail/
│   │   └── service.go           # 邮箱服务
│   └── register/
│       └── chatgpt.go           # ChatGPT 注册功能
├── config.json                  # 配置文件
├── config.example.json          # 配置示例
└── go.mod

快速启动

# 编译
go build -o codex-pool.exe ./cmd

# 运行
./codex-pool.exe

配置文件

创建 config.json

{
    "port": 8088,
    "cors_origin": "*",
    "s2a_api_base": "https://your-s2a-api.com",
    "s2a_admin_key": "your-admin-key",
    "default_proxy": "",
    "accounts_path": "accounts.json",
    "concurrency": 100,
    "priority": 30,
    "group_ids": [1, 2, 3],
    "mail_services": [
        {
            "name": "主邮箱服务",
            "api_base": "https://mail.example.com",
            "api_token": "your-token",
            "domain": "example.com"
        }
    ]
}

包说明

说明
cmd 程序入口
internal/api HTTP 响应工具、CORS 中间件
internal/auth S2A 授权、浏览器自动化
internal/client TLS 指纹 HTTP 客户端
internal/config 配置类型、加载函数
internal/database SQLite 数据库操作
internal/invite Team 邀请功能
internal/logger 日志系统
internal/mail 邮箱服务
internal/register ChatGPT 注册功能

API 接口

基础

  • GET /api/health - 健康检查
  • GET /api/config - 获取配置

日志

  • GET /api/logs - 获取日志
  • POST /api/logs/clear - 清空日志

S2A 代理

  • GET /api/s2a/test - 测试连接

邮箱服务

  • GET /api/mail/services - 获取配置
  • POST /api/mail/services/test - 测试连接

Team Owner

  • GET /api/db/owners - 获取列表
  • GET /api/db/owners/stats - 获取统计
  • POST /api/db/owners/clear - 清空

清理旧文件

如果已迁移到新结构,可以删除根目录的旧文件:

# 删除旧的 .go 文件 (保留 go.mod, go.sum)
Remove-Item main.go, types.go, http.go, api_handlers.go, db_api.go, database.go, mail.go, codex-auth.go, browser-auth-rod.go, browser-auth-cdp.go, client.go, register.go, team-invite.go, log_stream.go, logger.go -ErrorAction SilentlyContinue

# 删除旧的 exe
Remove-Item codex-pool.exe -ErrorAction SilentlyContinue

开发

# 安装依赖
go mod tidy

# 运行
go run ./cmd

# 编译
go build -o codex-pool.exe ./cmd

许可

MIT License