Codex Proxy RS

Codex Proxy RS

基于 Rust 的多 Provider 透明 AI 网关

CI Release GHCR MIT

快速开始 · 客户端接入 · 运维 · 部署文档 · 架构

Note

只支持 OpenAI Responses API,不提供 /v1/chat/completions。

能力

领域 实现
协议 OpenAI Responses JSON、SSE、WebSocket 与模型目录
Provider OpenAI OAuth、xAI OAuth,多账号隔离与自动刷新
路由 Client Key 平台绑定、Provider instance、模型映射与安全 fallback
延续 OpenAI native/replay continuation;xAI 客户端完整历史
管理 Client Key、账号、模型目录、设置、观测、系统与 OAuth
计量 模型请求 Token、费用、延迟、账号与 Provider 归因

快速开始

需要 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
install -d -m 0750 .runtime/postgres .runtime/redis
cp deploy/config.example.yaml deploy/config.yaml
sudo chown "$(id -u):10001" deploy/config.yaml
chmod 0640 deploy/config.yaml

分别生成三个密码:

openssl rand -hex 24
openssl rand -hex 24
openssl rand -hex 24

把结果写入 deploy/config.yaml:

配置 约束
store.database.password 48 位十六进制
store.redis.password 48 位十六进制
admin.default_password 至少 12 位,不能包含 $

PostgreSQL、Redis 容器和应用通过同一份 config.yaml 使用这两个基础设施密码,不需要额外 导出环境变量。

Linux 需要允许容器组写入运行目录:

sudo chown -R "$(id -u):10001" .runtime/data .runtime/logs
chmod 0770 .runtime/data .runtime/logs

2. 启动

docker compose -f deploy/compose.yaml config --quiet
docker compose -f deploy/compose.yaml pull
docker compose -f deploy/compose.yaml up -d --no-build
curl -i http://127.0.0.1:8080/healthz

204 No Content 表示应用、PostgreSQL 与 Redis 均可用。管理端地址: http://127.0.0.1:8080。

3. 初始化

  1. 使用 admin@cpr.local 与初始密码登录。
  2. 创建 Provider instance,并通过 OAuth 或 JSON 导入 OpenAI、xAI 账号。
  3. 按平台配置客户端模型到上游模型的映射;未配置的模型名原样透传。
  4. 创建 sk_... 客户端 Key,绑定平台并设置模型范围、速率与并发限制。

Important

xAI 使用 OAuth session,不支持把 xAI API Key 作为上游 credential。

Note

admin.default_password 只在首次创建管理员时生效。

完整部署、权限和密码轮换规则见 deploy/README.md。

客户端接入

配置 值
Base URL http://127.0.0.1:8080/v1
API Key 管理端创建的 sk_...
鉴权 Authorization: Bearer <client-api-key>
curl http://127.0.0.1:8080/v1/models \
  -H 'Authorization: Bearer <client-api-key>'

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 JSON 或 SSE 透明代理
GET /v1/responses WebSocket 透明代理
POST /v1/responses/review OpenAI review 请求
GET /v1/models 启用的公开模型列表
GET /v1/models/{model_id} 公开模型详情

所有 /v1/* 路由都需要客户端 API Key。

运维

# 升级
docker compose -f deploy/compose.yaml pull codex-proxy-rs
docker compose -f deploy/compose.yaml up -d --no-build

# 日志
docker compose -f deploy/compose.yaml logs -f codex-proxy-rs

# 从源码构建
docker compose -f deploy/compose.yaml build codex-proxy-rs
docker compose -f deploy/compose.yaml up -d

Important

.runtime/ 保存 PostgreSQL、Redis、自更新状态和日志。删除该目录会永久清除运行状态。

Compose 默认只绑定 127.0.0.1。公网接入应使用 HTTPS 反向代理,转发 WebSocket upgrade 与真实客户端 IP;不要暴露 PostgreSQL 或 Redis。

文档

S
Description
基于 Rust 的低风控、高性能、自托管多账号透明代理网关
Readme Apache-2.0
45 MiB
Languages
Rust 90%
Vue 5.7%
TypeScript 3.7%
PLpgSQL 0.4%
Ruby 0.1%