这是一个功能完整的 AI API 中转站管理系统,基于 Next.js 构建,提供多用户支持、API 站点管理、模型测试和统一认证等功能。
- 双系统登录:用户系统 + 管理员系统
- 统一会话管理:管理员可无缝切换用户/管理系统
- JWT 认证:安全的令牌验证机制
- 自动跳转:智能识别用户身份并跳转到对应系统
- 多站点支持:管理多个 AI API 中转站
- 自动检测:自动检查 API 站点可用性(通过获取模型列表)
- 模型列表:自动获取支持的 AI 模型
- 额度查询:实时查询 API 使用额度(目前仅限 newapi)
- 批量测试:支持批量测试模型响应
- 可视化统计:图表展示站点状态统计
- 实时监控:显示可用/失效站点数量
- 使用情况:展示 API 调用统计数据
- 角色管理:区分普通用户和管理员
- 个人设置:支持个人信息修改
- 聊天集成:快速跳转到聊天应用
- 响应式布局:完美支持 PC 和移动端
- 现代化 UI:基于 TailwindCSS 构建
- 实时搜索:模型列表支持模糊搜索
- Toast 提示:友好的操作反馈
- 支持 Vercel 一键部署
- 支持服务器手动部署
- 支持 Docker 部署
- 抱脸docker演示
- vercel演示
- hf和vercel账户数据互通
- 体验用户账号密码:linuxdo/linuxdo
- Node.js 18+(Vercel)
- MySQL 5.7+
- 现代浏览器
# 1. 克隆项目
git clone <repository-url>
cd ai-api-gateway
# 2. 安装依赖
npm install
# 3. 配置环境变量
# 格式如下:
MYSQL_DNS=mysql://username:password@host:port/database?ssl=true
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin123
JWT_SECRET=your-jwt-secret
# 4. 启动应用
npm run devVercel 部署
- 克隆项目
- 打开 vercel.com 官网
- 创建并导入该项目
- 设置
MYSQL_DNS、ADMIN_USERNAME、ADMIN_PASSWORD、JWT_SECRET环境变量 - 部署并设置自定义域名
Docker 部署
方法 1:使用 docker run(端口 3000)
docker run -d \
--name api-gateway-manager \
-e MYSQL_DNS="mysql://username:password@host:port/database?ssl=true" \
-e ADMIN_USERNAME="admin" \
-e ADMIN_PASSWORD="admin123" \
-e JWT_SECRET="your-jwt-secret" \
-p 3000:3000 \
ghcr.io/eraycc/api-gateway-manager:latest方法 2:使用 Docker Compose(推荐)
创建 docker-compose.yml 文件:
version: '3.8'
services:
api-gateway-manager:
image: ghcr.io/eraycc/api-gateway-manager:latest
container_name: api-gateway-manager
environment:
- MYSQL_DNS=mysql://username:password@host:port/database?ssl=true
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=admin123
- JWT_SECRET=your-jwt-secret
ports:
- "3000:3000"
restart: unless-stopped运行命令:
docker-compose up -d方法 3:使用huggingface 抱脸 duplicate一键部署 访问hf抱脸样板房,点击duplicate复制空间,设置修改环境变量即可
默认账户
- 管理员账户:
admin/admin123 - 首次运行:系统会自动创建数据库表和默认管理员
🏗️ 系统架构
数据库表结构
users- 用户信息表admins- 管理员表stations- API 站点表settings- 系统设置表user_stations- 用户站点关联表
核心功能模块
- 认证系统
// 用户登录 → 用户系统
// 管理员登录 → 管理系统
// 统一会话,无缝切换- API 站点管理
- 添加/编辑/删除 API 站点
- 自动获取模型列表
- 检查站点可用性
- 查询使用额度
- 模型测试
- 支持流式/非流式响应
- 多模型批量测试
- 实时结果展示
- 统计监控
- 站点状态统计
- 使用情况分析
- 可视化图表展示
📖 使用指南
用户系统
- 注册/登录:创建账户或使用现有账户登录
- 管理 API 站点:添加和管理你的 AI API 中转站
- 测试模型:选择模型进行实时测试
- 查看统计:在仪表盘查看使用情况
管理员系统
- 管理员登录:使用管理员账户登录
- 用户管理:查看和管理所有用户
- 系统监控:查看全局统计信息
- 系统设置:配置系统参数
API 站点配置 添加 API 站点时需要提供:
- 站点名称
- API 地址
- API 密钥
- 可选参数
💻 开发特性
技术栈
- 前端:Next.js 14, React, TypeScript
- 样式:TailwindCSS
- 数据库:MySQL + Drizzle ORM
- 认证:JWT + Session
- HTTP 客户端:Axios
部分代码结构
src/
├── app/ # Next.js App Router
│ ├── admin/ # 管理员系统
│ ├── dashboard/ # 用户仪表盘
│ ├── api/ # API 路由
│ └── auth/ # 认证相关
├── components/ # React 组件
│ ├── ui/ # 通用 UI 组件
│ └── features/ # 功能组件
└── lib/ # 工具库
├── auth.ts # 认证工具
└── db.ts # 数据库配置
🔧 故障排除
常见问题
-
数据库连接失败
- 检查
MYSQL_DNS环境变量 - 确认 MySQL 服务运行正常
- 验证数据库权限
- 检查
-
登录问题
- 清除浏览器缓存
- 检查网络连接
- 确认账户密码正确
-
API 测试失败
- 检查 API 地址和密钥
- 确认网络连通性
- 验证 API 服务状态
日志查看 系统会在控制台输出详细的运行日志,包括:
- 数据库连接状态
- 认证过程
- API 调用详情
- 错误信息
🤝 贡献指南
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目