Skip to content
 
 

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnyRouter

一个轻量级 API 代理服务,支持多 API 端点和多 Token 管理,基于 Cloudflare Workers 构建。

演示环境: proxyanyrouter.jhun.edu.kg 演示密码: 123456

特性

  • 多 API 端点:支持代理到任意 API 地址
  • 多 Token 管理:每个 API 可配置多个 Token
  • 双模式认证:支持 Key ID 查找或直接传递 Token
  • Web 管理界面:可视化配置管理,内置使用指南
  • 数据持久化:Supabase PostgreSQL 存储
  • 请求头过滤:自动移除 Cloudflare 特有 headers
  • CORS 支持:跨域请求友好

快速开始

方式一:一键部署(推荐)

点击下方按钮,自动 Fork 并部署到你的 Cloudflare 账户:

Deploy to Cloudflare Workers

部署后设置环境变量(可选):

  1. 进入 Cloudflare Dashboard → Workers → 你的 Worker → Settings → Variables
  2. 添加 ADMIN_PASSWORD(默认为 123456
  3. 添加 SUPABASE_URLSUPABASE_KEY(用于持久化存储)

未设置 ADMIN_PASSWORD 时,默认密码为 123456,建议生产环境修改

方式二:命令行部署

# 克隆仓库
git clone https://github.com/dext7r/anyrouter.git
cd anyrouter

# 安装 wrangler
npm install -g wrangler

# 登录
wrangler login

# 设置密钥
wrangler secret put ADMIN_PASSWORD
wrangler secret put SUPABASE_URL      # 可选
wrangler secret put SUPABASE_KEY      # 可选

# 部署
wrangler deploy

配置数据库(可选)

如需持久化存储 Token 配置:

  1. 登录 Supabase 创建项目
  2. 在 SQL Editor 中执行 schema.sql
  3. 获取 Project URL 和 Anon Key,配置到环境变量

不配置数据库时,可使用直传 Token 模式(模式二)

访问管理面板

https://your-worker.workers.dev/admin

使用方法

请求格式

Authorization: Bearer <API_URL>:<Key ID 或 Token>

模式一:使用 Key ID

从管理面板获取 6 位随机 Key ID(字母+数字),系统自动查找对应 Token:

curl -X POST 'https://your-proxy.workers.dev/v1/chat/completions' \
  -H 'Authorization: Bearer https://api.openai.com:a3x9k2' \
  -H 'Content-Type: application/json' \
  -d '{"model": "gpt-4", "messages": [{"role": "user", "content": "Hello"}]}'

模式二:直接传递 Token

无需配置数据库,直接传递 Token:

curl -X POST 'https://your-proxy.workers.dev/v1/chat/completions' \
  -H 'Authorization: Bearer https://api.openai.com:sk-your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{"model": "gpt-4", "messages": [{"role": "user", "content": "Hello"}]}'

OpenAI SDK 兼容

from openai import OpenAI

client = OpenAI(
    base_url='https://your-proxy.workers.dev/v1',
    api_key='https://api.openai.com:a3x9k2'  # 格式: api_url:key_id 或 api_url:token
)

response = client.chat.completions.create(
    model='gpt-4',
    messages=[{'role': 'user', 'content': 'Hello'}]
)

管理 API

所有管理 API 需要 Authorization header:

Authorization: Bearer <ADMIN_PASSWORD>
方法 路径 说明
GET /api/configs 获取所有配置
POST /api/configs 添加配置
PATCH /api/configs/:id 更新配置
DELETE /api/configs/:id 删除配置

添加配置示例

curl -X POST 'https://your-proxy.workers.dev/api/configs' \
  -H 'Authorization: Bearer your-admin-password' \
  -H 'Content-Type: application/json' \
  -d '{
    "api_url": "https://api.openai.com",
    "token": "sk-xxxxx",
    "enabled": true
  }'

路由说明

路由 说明
/ 状态页面
/admin 管理界面(含使用指南)
/api/* 管理 API
/* 代理请求

环境变量

变量 说明 默认值
ADMIN_PASSWORD 管理员密码 123456
SUPABASE_URL Supabase 项目 URL -
SUPABASE_KEY Supabase Anon Key -

不配置数据库时可使用直传 Token 模式

本地开发

# 复制配置
cp wrangler.toml wrangler.toml.local

# 编辑 wrangler.toml.local,取消 [vars] 注释并填入实际值

# 启动开发服务器
wrangler dev -c wrangler.toml.local

安全建议

  1. 使用强管理员密码
  2. 仅通过 HTTPS 访问
  3. 定期更换 API Token
  4. Supabase 启用 RLS 策略

许可

MIT License

About

轻量级 API 代理服务,支持多端点、多 Token 管理,基于 Cloudflare Workers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages