English | 中文
Codex2API 把 Codex 账号池变成可观测、可调度的 OpenAI / Anthropic 兼容网关。 它提供 Chat Completions、Responses、Messages、Images、Models 和管理接口,并负责账号调度、Token 刷新、健康状态、限流恢复和用量记录。
本仓库是在上游项目基础上的持续维护版本,增加了计费、上游状态监控和移动端用量展示能力。上游功能继续保留,除非与下面列出的自定义行为发生冲突。
- 上游倍率探查: 接入 Sub2API 的账号可以选择开启倍率探查,支持手动探查和定时探查,并对响应协议进行严格校验。临时探查失败时保留最后一次有效倍率。
- 倍率计费: 普通账号按照官方模型价格计算。探查到有效上游倍率后,用户费用和上游成本估算以官方基础价格为依据,再单独应用倍率。账号、API Key 和使用统计页面会显示倍率及对应费用信息。
- 渠道健康监控: 管理后台可以主动检查渠道可用性、探查状态、响应时间和近期失败记录,不需要等到用户请求发生后才发现问题。
- 移动端用量展示: 费用明细、提示信息和账号信息在小屏幕上保持清晰可读,移动端点击提示也能正常使用。
- 模型价格覆盖: 维护版本补齐当前上游模型别名、标准价格、长上下文边界,以及上游价格探查不可用时的回退路径。
完整部署说明请参考:docs/DEPLOYMENT.md
| 模式 | 文件 | 适用场景 |
|---|---|---|
| Docker 镜像 | docker-compose.yml |
服务器和测试环境,推荐使用 |
| 本地源码构建 | docker-compose.local.yml |
构建并验证当前源码 |
| SQLite 镜像 | docker-compose.sqlite.yml |
不依赖 PostgreSQL / Redis 的单机部署 |
| SQLite 源码构建 | docker-compose.sqlite.local.yml |
验证轻量 SQLite 模式 |
| 本地开发 | go run . + npm run dev |
前后端开发调试 |
git clone --branch codex2api-custom https://github.com/JayHome137/codex2api.git
cd codex2api
cp .env.example .env
docker compose pull
docker compose up -d
docker compose logs -f codex2apicp .env.example .env
docker compose -f docker-compose.local.yml up -d --build
docker compose -f docker-compose.local.yml logs -f codex2apicp .env.sqlite.example .env
docker compose -f docker-compose.sqlite.yml pull
docker compose -f docker-compose.sqlite.yml up -d
docker compose -f docker-compose.sqlite.yml logs -f codex2apiSQLite compose 文件默认绑定 127.0.0.1。需要外部访问时,在 .env 中设置 BIND_HOST=0.0.0.0。标准 compose 文件默认监听所有网络接口。
启动后访问:
docker compose down 默认会保留命名卷。只有在明确需要删除持久化数据时,才使用 docker compose down -v。
升级正在运行的镜像部署:
git pull
docker compose pull
docker compose up -d升级前备份 PostgreSQL:
docker exec codex2api-postgres pg_dump -U codex2api codex2api > backup_$(date +%Y%m%d_%H%M%S).sql首次运行后端前,需要先构建前端,因为 Go 会通过 go:embed 嵌入 frontend/dist:
cp .env.example .env
cd frontend && npm ci && npm run build && cd ..
go run .前端开发服务器:
cd frontend && npm ci && npm run dev前端开发时访问 http://localhost:5173/admin/。
标准 .env.example 使用 PostgreSQL 和 Redis,SQLite 模式使用 .env.sqlite.example。
| 变量 | 说明 |
|---|---|
CODEX_PORT |
HTTP 端口,默认 8080 |
BIND_HOST |
监听地址,例如 127.0.0.1 或 0.0.0.0 |
ADMIN_SECRET |
管理后台登录密钥 |
DATABASE_DRIVER |
postgres 或 sqlite |
DATABASE_PATH |
DATABASE_DRIVER=sqlite 时的数据库路径 |
DATABASE_HOST / DATABASE_PORT |
PostgreSQL 连接地址 |
DATABASE_USER / DATABASE_PASSWORD / DATABASE_NAME |
PostgreSQL 凭据和数据库名称 |
CACHE_DRIVER |
redis 或 memory |
REDIS_ADDR |
Redis 地址或 URL |
TZ |
IANA 时区,例如 Asia/Shanghai |
调度模式、请求限制和计费选项等业务设置保存在数据库中,可从管理后台修改。完整配置参考:docs/CONFIGURATION.md
| 接口 | 说明 |
|---|---|
POST /v1/chat/completions |
OpenAI 兼容 Chat Completions |
POST /v1/responses |
Responses API |
POST /v1/messages |
Anthropic Messages API |
POST /v1/images/generations |
图片生成 |
GET /v1/models |
可用模型列表 |
GET /health |
健康检查 |
主要管理页面包括 /admin/accounts、/admin/api-keys、/admin/usage、/admin/channel-monitor、/admin/settings 和 /admin/ops。API Key 和管理密钥都在管理后台配置。
费用统计使用模型价格表和自定义维护内容中的倍率状态。倍率探查失败或没有可用倍率时,回退到官方模型价格。
本项目用于学习、研究和技术交流。请只在你有权访问的上游服务中使用,并自行承担部署和使用责任。本项目采用 MIT 协议发布,不提供任何明示或默示担保。