后端使用 Rust、Tokio 和 Axum,管理界面使用 Vue 3、TypeScript 和 Vite。SSE 数据边收边转发,上游 WebSocket 连接按账号复用;前端构建后由同一个服务直接提供。
Note
当前兼容 OpenAI Responses API,不提供
/v1/chat/completions。
功能
- 支持 Responses HTTP、SSE 和官方 WebSocket 请求。
- 提供智能调度、额度重置优先、轮询和粘滞四种账号策略。
- 某个账号遇到额度、认证、模型或传输错误时,继续尝试其他账号。
- 在网页中管理账号、客户端 Key、模型别名和运行参数。
- 按请求、模型、账号或客户端 Key 查看 Token、费用、缓存、TTFT、延迟和错误。
- 支持账号 OAuth、Token 导入以及 CPR、Sub2API、CLIProxyAPI JSON 导入。
- 可直接生成 Codex CLI 配置,或通过 deeplink 导入 CCSwitch。
快速开始
Docker Compose 是最简单的启动方式。开始前请安装 Docker Engine 和 Docker Compose Plugin。
1. 准备配置
git clone https://github.com/zyycn/codex-proxy-rs.git
cd codex-proxy-rs
mkdir -p .runtime/data .runtime/logs
cp deploy/config.example.yaml .runtime/config.yaml
cp deploy/.env.example deploy/.env
chmod 0600 deploy/.env
编辑 deploy/.env:
CPR_ADMIN_DEFAULT_PASSWORD='<至少 12 个字符的管理员密码>'
CPR_POSTGRES_PASSWORD='<PostgreSQL 密码>'
CPR_REDIS_PASSWORD='<Redis 密码>'
Important
应用容器以非 root 用户
10001:10001运行。Linux Bind Mount 会保留宿主机权限,因此需要允许容器用户组读取配置并写入数据和日志目录:sudo chown -R "$(id -u):10001" .runtime/data .runtime/logs chmod 0770 .runtime/data .runtime/logs sudo chown "$(id -u):10001" .runtime/config.yaml chmod 0640 .runtime/config.yamlmacOS 和 Windows 的 Docker Desktop 通常不需要设置这些权限。
2. 启动服务
docker compose --env-file deploy/.env -f deploy/docker-compose.yml config --quiet
docker compose --env-file deploy/.env -f deploy/docker-compose.yml pull
docker compose --env-file deploy/.env -f deploy/docker-compose.yml up -d --no-build
启动后检查:
docker compose --env-file deploy/.env -f deploy/docker-compose.yml ps
curl -i http://127.0.0.1:8080/healthz
/healthz 返回 204 No Content 即表示服务正常。管理端地址为 http://127.0.0.1:8080。
首次使用
- 使用
admin@cpr.local和CPR_ADMIN_DEFAULT_PASSWORD中设置的密码登录。 - 打开“账号”,用 OAuth、Access/Refresh Token 或 JSON 文件添加账号。
- 点一次连接测试,能看到模型和额度即可。
- 打开“API 密钥”,创建一个
sk_...客户端 Key。 - 点击“使用密钥”复制 Codex CLI 配置,或一键导入 CCSwitch。
Tip
CPR_ADMIN_DEFAULT_PASSWORD只用于首次创建管理员。已有管理员后修改该变量不会重置登录密码,但 Compose 启动时仍要求提供有效值。
客户端接入
| 配置 | 值 |
|---|---|
| Base URL | http://127.0.0.1:8080/v1 |
| API Key | 管理端创建的 sk_... 客户端 Key |
| 鉴权 | Authorization: Bearer <client-api-key> |
先查询当前可用模型:
curl http://127.0.0.1:8080/v1/models \
-H 'Authorization: Bearer <client-api-key>'
发送一个非流式 Responses 请求:
curl http://127.0.0.1:8080/v1/responses \
-H 'Authorization: Bearer <client-api-key>' \
-H 'Content-Type: application/json' \
-d '{
"model": "<model-id>",
"input": "Reply with pong.",
"stream": false
}'
查看全部客户端 API 路由
| 路由 | 说明 |
|---|---|
POST /v1/responses |
Responses 非流式或 SSE 流式请求 |
GET /v1/responses |
官方 Responses WebSocket |
POST /v1/responses/review |
Review 请求 |
GET /v1/models |
OpenAI 格式的模型列表 |
GET /v1/models/catalog |
完整模型目录 |
GET /v1/models/{model_id} |
模型详情 |
GET /v1/models/{model_id}/info |
模型运行信息 |
所有 /v1/* 路由都需要客户端 API Key。
管理端
| 页面 | 内容 |
|---|---|
| 概览 | 查看服务状态、请求趋势、Token、账号池容量、请求健康和最近调用 |
| 账号 | 添加、导入、导出、测试、启停账号,以及刷新 Token 和额度 |
| API 密钥 | 创建、复制、启停或删除 Key,生成 Codex CLI 配置并导入 CCSwitch |
| 使用统计 | 按时间、模型、账号和客户端 Key 查看用量、费用、缓存、延迟和错误 |
| 系统设置 | 配置模型别名、调度策略、单账号并发、请求间隔、刷新参数和管理员 API Key |
| 系统更新 | 查看版本和发布说明;Release 版本可以在线更新并重启 |
常用操作
升级
docker compose --env-file deploy/.env -f deploy/docker-compose.yml pull codex-proxy-rs
docker compose --env-file deploy/.env -f deploy/docker-compose.yml up -d --no-build
查看日志
docker compose --env-file deploy/.env -f deploy/docker-compose.yml logs -f codex-proxy-rs
从当前源码构建
docker compose --env-file deploy/.env -f deploy/docker-compose.yml build codex-proxy-rs
docker compose --env-file deploy/.env -f deploy/docker-compose.yml up -d
Warning
不要使用
docker compose down -v进行普通升级,它会删除 PostgreSQL 和 Redis 数据卷。请同时备份 PostgreSQL 与.runtime/data/identity_hmac_secret;数据库备份中包含客户端凭据,应按敏感数据保管。
常见问题
/healthz 返回 503
检查 PostgreSQL 和 Redis 容器是否健康:
docker compose --env-file deploy/.env -f deploy/docker-compose.yml ps
docker compose --env-file deploy/.env -f deploy/docker-compose.yml logs postgres redis
容器反复重启
检查 deploy/.env 是否填写完整,以及 .runtime/config.yaml、.runtime/data、.runtime/logs 的权限是否正确。
需要从其他设备访问
Compose 默认仅绑定 127.0.0.1。请在服务前配置 HTTPS 反向代理,并正确转发 WebSocket 升级和真实客户端 IP 请求头。不要直接暴露 PostgreSQL 或 Redis。
相关链接
Docker 镜像支持 Linux amd64/arm64。Release 压缩包另有 macOS arm64 和 Windows amd64 版本。
开源许可
Codex Proxy RS 基于 MIT License 开源。