ZyyandCodex 70ff923033 fix(frontend): prevent pagination overflow on narrow screens
Adapt visible page buttons to the pagination container width while preserving the existing button styles. Hide the total count on narrow containers and keep the page-size selector on the left with navigation on the right. Retain the total count and full pager on wider layouts.

Validation: browser layout checks across 320–1280px widths and up to 1380 pages, pagination interactions and disabled states, frontend typecheck, targeted ESLint, and diff whitespace checks passed.

Co-authored-by: Codex <noreply@openai.com>
2026-09-09 19:26:55 +08:00
2026-09-08 17:55:36 +08:00

Codex Proxy RS

Codex Proxy RS

面向 Codex 的自托管多账号 AI 网关。

CI Release GHCR

功能 · 快速开始 · 客户端接入 · 文档

将 OpenAI、xAI 账号接入同一个服务,通过网页管理账号、分配客户端密钥和查看使用情况。 客户端使用统一的访问地址与代理密钥,上游账号凭据由服务端管理。

功能

  • 账号管理:OAuth 授权、账号导入、凭据刷新与额度查看。
  • 访问控制:通过账号分组分配密钥权限,设置并发和请求频率。
  • 客户端接入:支持 Codex CLI、桌面端与 Responses API 客户端,提供 HTTP 流式响应和 WebSocket。
  • 请求诊断:查看请求记录、用量、费用、延迟和错误详情。
  • 部署运维:Docker Compose 部署、S3/R2 数据库备份、同大版本在线更新与回滚。

图片生成、编辑和 Codex 独立搜索由 OpenAI 账号提供;模型与功能的可用性取决于上游账号权限。

Note

本项目提供 Responses API,不支持 /v1/chat/completions。接入前请确认客户端支持 Responses 协议。

快速开始

使用 Docker Compose 部署发布镜像 ghcr.io/zyycn/codex-proxy-rs:latest,同时启动 PostgreSQL 和 Redis。 以下命令适用于 Linux amd64/arm64,需要 Docker Engine、Docker Compose Plugin、curl 和 OpenSSL。已有部署请先看 升级说明,不要覆盖原配置。

1. 下载部署文件并配置

mkdir -p codex-proxy-rs/deploy
cd codex-proxy-rs

curl -fsSL https://raw.githubusercontent.com/zyycn/codex-proxy-rs/main/deploy/compose.yaml \
  -o deploy/compose.yaml
curl -fsSL https://raw.githubusercontent.com/zyycn/codex-proxy-rs/main/deploy/config.example.yaml \
  -o deploy/config.example.yaml

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
sudo chown -R "$(id -u):10001" .runtime/data .runtime/logs
chmod 0770 .runtime/data .runtime/logs

分别生成数据库和 Redis 密码:

openssl rand -hex 24
openssl rand -hex 24

编辑 deploy/config.yaml,填好以下三项:

配置项 填写内容
store.database.password 第一个生成的 48 位十六进制密码
store.redis.password 第二个生成的 48 位十六进制密码
admin.default_password 管理员初始密码,至少 12 位,不能包含 $

不需要创建 .env。管理员初始密码只在首次创建账号时使用。

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 --wait
curl -i http://127.0.0.1:8080/healthz

健康检查返回 204 No Content 后,打开 http://127.0.0.1:8080, 使用 admin@cpr.local 和刚设置的管理员密码登录。

默认地址只能在服务器本机访问。从其他设备使用时,需要配置 HTTPS 反向代理。

3. 添加账号与客户端密钥

  1. 在「账号」中添加 OpenAI 或 xAI 账号,完成授权或导入。
  2. 按需建立账号分组,再创建客户端密钥并选择可用分组。不选分组表示可使用全部账号。
  3. 打开密钥的「使用密钥」,复制客户端配置。

客户端接入

Codex CLI / 桌面端:在「使用密钥」中按操作系统复制配置,或通过 CCSwitch 导入。 合并到客户端配置后重启 Codex。完整步骤、生图配置与排障见客户端配置。

其他 Responses API 客户端:填写以下信息。

配置 值
Base URL http://127.0.0.1:8080/v1;远程接入使用服务器的 HTTPS 地址
API Key 管理端创建的 sk_... 客户端密钥

可用模型以该密钥查询到的模型列表为准:

curl http://127.0.0.1:8080/v1/models \
  -H 'Authorization: Bearer <client-api-key>'

文档

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