一个用 Rust 编写的轻量级 OpenRouter API 代理服务。
- 🚀 极致轻量:Docker 镜像仅 ~10-15 MB
- 🔒 路径白名单:仅允许指定的 API 端点
- 🌐 CORS 支持:支持跨域请求
- 📝 请求日志:完整的请求/响应追踪
- ❤️ 健康检查:内置健康检查端点
- 🐳 容器化:开箱即用的 Docker 支持
POST /api/v1/chat/completions- Chat Completions APIGET /api/v1/models- 获取可用模型列表GET /health- 健康检查
注意:仅以上端点被白名单允许,其他请求将返回 403 Forbidden
docker pull ghcr.io/your-username/openrouter-proxy:latest
docker run -d \
-p 3000:3000 \
-e OPENROUTER_API_KEY=your_api_key_here \
--name openrouter-proxy \
ghcr.io/your-username/openrouter-proxy:latest- 配置环境变量
cp .env.example .env编辑 .env 文件,填入你的 OpenRouter API Key:
OPENROUTER_API_KEY=your_api_key_here
PORT=3000- 运行服务
cargo run --release服务将在 http://0.0.0.0:3000 启动。
curl -X POST http://localhost:3000/api/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'curl http://localhost:3000/api/v1/modelscurl http://localhost:3000/health# 运行开发模式
cargo run
# 构建 Release 版本
cargo build --release# 构建镜像
docker build -t openrouter-proxy .
# 运行容器
docker run -d -p 3000:3000 -e OPENROUTER_API_KEY=your_key openrouter-proxy| 变量名 | 必需 | 默认值 | 说明 |
|---|---|---|---|
OPENROUTER_API_KEY |
是 | - | OpenRouter API 密钥 |
PORT |
否 | 3000 |
服务监听端口 |
- Rust - 高性能系统编程语言
- Axum - 现代化的异步 Web 框架
- Tokio - 异步运行时
- Reqwest - HTTP 客户端
- Docker - 容器化部署
推送到 main 分支或创建 tag 时,GitHub Actions 会自动构建 Docker 镜像并推送到 GitHub Container Registry。
# 推送 tag 触发版本构建
git tag v1.0.0
git push origin v1.0.0MIT