mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
112bd76f66b24890cc20ef0f63bc6043e9da67e9
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Zyy <No Email>
Codex Proxy RS
OpenAI 兼容的 ChatGPT / Codex 多账号代理网关
环境
- Rust ≥ 1.95
- Node ≥ 20,pnpm ≥ 9(仅开发管理端前端时需要)
快速开始
cargo run --manifest-path backend/Cargo.toml
启动后监听 http://0.0.0.0:8080,默认配置从运行目录下的 config.yaml 读取,也可以用 CPR_CONFIG_FILE=/path/to/config.yaml 显式指定。首次启动会自动创建管理端账号;admin.default_password 必须显式设置为至少 12 位的非默认密码。
Docker 部署:
cp deploy/config.example.yaml deploy/config.yaml
# 编辑 deploy/config.yaml,设置 admin.default_password
docker compose -f deploy/docker-compose.yml build
docker compose -f deploy/docker-compose.yml up -d
默认只监听宿主机 127.0.0.1:8080。挂载关系:deploy/config.yaml → /app/config.yaml,数据和日志写入 Compose 命名卷 cpr-data、cpr-logs。
API
所有接口通过 Authorization Bearer header 鉴权,API Key 在管理端创建和管理。
| 端点 | 说明 |
|---|---|
POST /v1/responses |
OpenAI responses 接口 |
POST /v1/chat/completions |
Chat completions 接口 |
GET /v1/models |
模型列表 |
GET /v1/models/catalog |
模型目录 |
/api/admin/* |
管理端 API(前端调用) |
curl http://127.0.0.1:8080/v1/responses \
-H 'Authorization: Bearer <your-api-key>' \
-H 'Content-Type: application/json' \
-d '{"model": "gpt-5.5", "input": "Say hello", "stream": true}'
管理控制台
前端是 Vue 3 单页应用,源码在 frontend/。开发时:
pnpm --dir frontend dev
生产构建后由后端直接托管:
pnpm --dir frontend build
cargo run --manifest-path backend/Cargo.toml
管理端功能包括账号管理、API Key 管理、用量仪表盘、请求记录和运行时设置。账号、Key、模型路由等运行时配置在管理端操作,不写在 YAML 里。
配置
最小 config.yaml:
server:
host: '0.0.0.0'
port: 8080
api:
base_url: 'https://chatgpt.com/backend-api'
database:
url: 'sqlite://.runtime/data/codex-proxy-rs.sqlite'
logging:
directory: .runtime/logs
retention_days: 14
admin:
default_password: '<set-a-long-random-password>'
完整配置项见 deploy/config.example.yaml,包括 TLS、WebSocket 连接池、请求指纹、账号额度策略等。
运行数据目录:
.runtime/data/ # SQLite 数据库
.runtime/logs/ # 日志文件
架构
Codex Proxy RS 是单主服务架构:Rust 后端同时承载 OpenAI 兼容代理、管理端 API、SQLite 持久化、前端静态资源托管和在线更新。详细模块边界、请求链路、发布和更新流程见 架构说明。
项目结构
backend/
src/ Rust 源码
tests/ 集成测试
build/ 构建脚本
frontend/ Vue 3 管理控制台
deploy/ Dockerfile、Compose、示例配置
docs/ 架构与维护文档
开发
cargo fmt --manifest-path backend/Cargo.toml --check
cargo clippy --manifest-path backend/Cargo.toml --all-targets --all-features --locked -- -D warnings
cargo test --manifest-path backend/Cargo.toml --test main
pnpm --dir frontend build
License
MIT
Languages
Rust
90%
Vue
5.7%
TypeScript
3.7%
PLpgSQL
0.4%
Ruby
0.1%