Codex Proxy RS # Codex Proxy RS 面向 Codex 的自托管多账号 AI 网关 [![CI](https://github.com/zyycn/codex-proxy-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/zyycn/codex-proxy-rs/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/zyycn/codex-proxy-rs?display_name=tag&sort=semver&style=flat-square)](https://github.com/zyycn/codex-proxy-rs/releases) [![GHCR](https://img.shields.io/badge/GHCR-codex--proxy--rs-2496ED?logo=docker&logoColor=white&style=flat-square)](https://github.com/zyycn/codex-proxy-rs/pkgs/container/codex-proxy-rs) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](LICENSE) [快速开始](#快速开始) · [客户端接入](#客户端接入) · [文档](#文档) · [社区](#社区) · [许可证](#许可证)
> [!NOTE] > 本项目提供 Responses API,不支持 `/v1/chat/completions`。接入前请确认客户端支持 Responses 协议。 ## 快速开始 使用 Docker Compose 部署版本固定的发布镜像,同时启动 PostgreSQL 和 Redis。 以下命令适用于 Linux amd64/arm64,需要 Docker Engine、Docker Compose Plugin、curl 和 OpenSSL。已有部署请先看 [升级说明](deploy/README.md#镜像升级与源码构建),不要覆盖原配置。 ### 一键安装 请确保当前用户能访问 Docker,并可通过 `sudo` 或 root 设置目录权限。 ```bash curl -fsSL https://raw.githubusercontent.com/zyycn/codex-proxy-rs/main/deploy/install.sh -o install.sh && bash install.sh ``` [安装脚本](deploy/install.sh) 默认安装到当前目录下的 `codex-proxy-rs/`,下载同一正式 Release 的部署文件, 自动生成密码、设置目录权限并启动服务。完成后会显示访问地址和管理员密码,请保存密码,再按下方步骤 [添加账号与客户端密钥](#添加账号与客户端密钥)。 可在执行 `bash install.sh` 时传入环境变量: | 变量 | 用途 | 默认值 | | --- | --- | --- | | `INSTALL_DIR` | 安装目录,建议使用绝对路径 | 当前目录下的 `codex-proxy-rs/` | | `CPR_RELEASE_TAG` | 指定发布标签 | 最新正式版本 | | `ADMIN_PASSWORD` | 管理员初始密码,至少 12 位,不能包含 `$`,不能使用常见弱口令 | 随机生成 | 例如,自定义安装目录: ```bash INSTALL_DIR="$HOME/services/codex-proxy-rs" bash install.sh ``` 重复运行时请使用同一安装目录。检测到 `deploy/config.yaml` 后,脚本保留现有配置和部署文件, 忽略传入的管理员密码,也不执行版本升级。 ### 手动安装 自行下载部署文件、配置密码和启动服务的完整步骤见 [部署文档](deploy/README.md#手动安装)。 ### 登录管理端 部署完成后,打开 `http://127.0.0.1:8080`,使用 `admin@cpr.local` 和管理员密码登录。 API Key 持有者可在同一登录页切换登录身份,进入 `/key-usage` 查看自己的用量、趋势、请求日志、额度与健康时间线;不能访问管理员页面。 默认地址只能在服务器本机访问。从其他设备使用时,需要配置 [HTTPS 反向代理](deploy/README.md#公网访问)。 ### 添加账号与客户端密钥 1. 在「账号」中添加账号,完成授权或导入。 2. 按需建立账号分组,再创建客户端密钥并选择可用分组。**不选分组表示可使用全部账号**。 3. 打开密钥的「使用密钥」,复制客户端配置。 账号自动冻结默认关闭,可在「系统设置 → 运行参数」中启用。启用后,账号频繁命中上游容量错误时 会暂停调度并显示为限流中;若开启恢复前探测,冷却到期后需探测成功才恢复。 ## 客户端接入 **Codex CLI / 桌面端**:在「使用密钥」中按操作系统复制配置,或通过 CCSwitch 导入。 合并到客户端配置后重启 Codex。完整步骤、生图配置与排障见[客户端配置](deploy/README.md#客户端配置)。 **其他 Responses API 客户端**:填写以下信息。 | 配置 | 值 | | --- | --- | | Base URL | `http://127.0.0.1:8080/v1`;远程接入使用服务器的 HTTPS 地址 | | API Key | 管理端创建的客户端密钥 | 可用模型以该密钥查询到的模型列表为准: ```bash curl http://127.0.0.1:8080/v1/models \ -H 'Authorization: Bearer ' ``` ## 文档 - [客户端接入与生图](deploy/README.md#客户端配置) - [部署、备份与恢复](deploy/README.md) - [API 参考](docs/api.md) - [系统架构](docs/architecture.md) - [管理端主题](docs/theme.md) - [数据库迁移](backend/migrations/README.md) - [贡献与审查](CONTRIBUTING.md) ## 社区 感谢 [LINUX DO](https://linux.do) 社区提供开放、友善的技术交流平台。 ## 许可证 本项目基于 [Apache License 2.0](LICENSE) 开源。