基于 SvelteKit 2 + Svelte 5 + Tailwind CSS v4 + shadcn-svelte 的 API 代理网关管理后台(gpt-load 功能完整移植版)。
- 透明代理网关:
/proxy/<group>/*统一入口,多上游加权负载均衡、密钥轮换池(平滑轮询)、failover 状态码重试、失败黑名单自动拉黑与定时恢复 - 分组管理:标准分组 / 聚合分组(子分组加权轮询)、参数覆盖、模型重定向(严格/宽松模式)、自定义请求头规则(模板变量)、分组级配置覆盖、拖拽排序、一键复制
- 密钥管理:批量添加(文本 / .txt 上传,异步任务进度)、批量删除、密钥测试(真实上游验证)、定时校验与手动验证、恢复/清空、导出、备注、掩码显示
- 仪表盘:密钥/请求量/错误率统计卡 + 24 小时请求趋势图(分组筛选、悬浮详情)、安全配置警告、加密一致性检测
- 日志系统:多条件筛选(时间/分组/模型/状态码/IP/错误等)、列显隐配置、请求详情弹窗、CSV 导出
- 系统设置:后端元数据驱动的设置表单(热更新,分组可覆盖)
- 安全:AUTH_KEY 管理端认证(常数时间比较)、代理密钥双轨认证、API 密钥 AES-256-GCM 加密存储(可选 ENCRYPTION_KEY)
- 数据库:drizzle-orm + libsql —— 本地
sqlite.db,生产 Turso(libsql://),部署后自动建表 + 种子数据 - 多语言:简体中文 / 繁體中文 / English(661 条文案,含服务端消息)
- 多平台部署:Cloudflare Pages / Vercel / Deno Deploy 一键部署
- 主题系统:8 套组件风格预设、7 种基础色、18 种强调色、字体/圆角/菜单样式
# 1. 配置环境变量(复制模板)
cp .env.example .env
# 编辑 .env:设置 AUTH_KEY(必填)、ENCRYPTION_KEY(建议)、TURSO_DATABASE_URL
# 2. 安装依赖
npm install
# 3. 启动开发服务器
npm run dev访问 http://localhost:5173 → 输入 AUTH_KEY 登录。
| 变量 | 说明 |
|---|---|
AUTH_KEY |
管理端认证密钥(必填),保护管理界面与 API |
ENCRYPTION_KEY |
API 密钥加密密钥(建议设置);留空 = 明文存储 |
TURSO_DATABASE_URL |
数据库连接串:file:./sqlite.db(本地)或 libsql://<db>.turso.io(生产) |
TURSO_AUTH_TOKEN |
Turso 认证令牌(生产必需) |
PORT / HOST |
服务端口与主机(默认 5173 / localhost) |
# 创建分组(渠道 openai、上游 https://api.openai.com、代理密钥 proxy-key-1、密钥 sk-xxx)
# 普通请求
curl http://localhost:5173/proxy/my-group/v1/chat/completions \
-H "Authorization: Bearer proxy-key-1" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}'
# 流式
curl -N http://localhost:5173/proxy/my-group/v1/chat/completions \
-H "Authorization: Bearer proxy-key-1" -H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","stream":true}'
# 模型列表(自动应用模型重定向过滤)
curl http://localhost:5173/proxy/my-group/v1/models -H "Authorization: Bearer proxy-key-1"npm run check # 类型检查
DEPLOY_TARGET=cloudflare npm run build # Cloudflare 构建
DEPLOY_TARGET=vercel npm run build # Vercel 构建
DEPLOY_TARGET=deno npm run build # Deno 构建三种平台的完整部署方式(官方 CLI / GitHub Actions / 平台导入 Git)见 DEPLOYMENT.md。
生产部署时在平台环境变量中配置 AUTH_KEY、ENCRYPTION_KEY、TURSO_DATABASE_URL、TURSO_AUTH_TOKEN,首次请求自动建表。
# API 对照测试(需先启动原版 gpt-load 与本地 dev server)
node scripts/api-diff.mjs 3002 5175 <authKey> # 基础端点对比
node scripts/api-diff-p2.mjs 3002 5175 <authKey> # 完整 CRUD 流程对比(57 项)