sub2api 安装教程

admin 2026-06-23 12:19:30 133

Sub2API 是一个 AI API 网关平台,用于分发和管理 AI 产品订阅(如 Claude Code $200/月)的 API 配额。用户通过平台生成的 API Key 调用上游 AI 服务,平台负责鉴权、计费、负载均衡和请求转发。

核心功能

  • 多账号管理 - 支持多种上游账号类型(OAuth、API Key)
  • API Key 分发 - 为用户生成和管理 API Key
  • 精确计费 - Token 级别的用量追踪和成本计算
  • 智能调度 - 智能账号选择,支持粘性会话
  • 并发控制 - 用户级和账号级并发限制
  • 速率限制 - 可配置的请求和 Token 速率限制
  • 管理后台 - Web 界面进行监控和管理

技术栈

组件 技术
后端 Go 1.25.7, Gin, Ent
前端 Vue 3.4+, Vite 5+, TailwindCSS
数据库 PostgreSQL 15+
缓存/队列 Redis 7+

OpenAI Responses 兼容注意事项

  • 当请求包含 function_call_output 时,需要携带 previous_response_id,或在 input 中包含带 call_id  tool_call/function_call,或带非空 id 且与 function_call_output.call_id 匹配的 item_reference
  • 若依赖上游历史记录,网关会强制 store=true 并需要复用 previous_response_id,以避免出现 “No tool call found for function call output” 错误。

前置条件

  • Linux 服务器(amd64 或 arm64)
  • PostgreSQL 15+(已安装并运行)
  • Redis 7+(已安装并运行)
  • Root 权限

安装步骤

curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash

脚本会自动:

  1. 检测系统架构
  2. 下载最新版本
  3. 安装二进制文件到 /opt/sub2api
  4. 创建 systemd 服务
  5. 配置系统用户和权限

安装后配置

# 1. 启动服务
sudo systemctl start sub2api

# 2. 设置开机自启
sudo systemctl enable sub2api

# 3. 在浏览器中打开设置向导
# http://你的服务器IP:8080

设置向导将引导你完成:

  • 数据库配置
  • Redis 配置
  • 管理员账号创建

升级

可以直接在 管理后台 左上角点击 检测更新 按钮进行在线升级。

网页升级功能支持:

  • 自动检测新版本
  • 一键下载并应用更新
  • 支持回滚

常用命令

# 查看状态
sudo systemctl status sub2api

# 查看日志
sudo journalctl -u sub2api -f

# 重启服务
sudo systemctl restart sub2api

# 卸载
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash -s -- uninstall -y

原生安装(一键脚本)演示安装过程:

curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash

==============================================
  请选择语言 / Select language
==============================================\033  [0m

  1) 中文 (默认/default)
  2) English

请输入选择 (默认: 1): 1


==============================================
       Sub2API 安装脚本
==============================================

  [信息] 检测到平台: linux_amd64

==============================================
  服务器配置
==============================================\033  [0m

配置 Sub2API 服务监听地址

0.0.0.0 表示监听所有网卡,127.0.0.1 仅本地访问
服务器监听地址   [0.0.0.0]: 

建议使用 1024-65535 之间的端口
服务器端口   [8080]: 8823

  [信息] 服务器配置: 0.0.0.0:8823

  [信息] 正在获取最新版本...
  [信息] 最新版本: v0.1.138
  [信息] 正在下载 sub2api_0.1.138_linux_amd64.tar.gz...
  [信息] 正在校验文件...
  [成功] 校验通过
  [信息] 正在解压...
  [成功] 二进制文件已安装到 /opt/sub2api/sub2api
  [信息] 正在创建系统用户 sub2api...
  [成功] 用户已创建
  [信息] 正在设置目录...
  [成功] 目录配置完成
  [信息] 正在安装 systemd 服务...
  [成功] systemd 服务已安装
  [成功] 准备就绪,可以启动设置向导
  [信息] 正在获取公网 IP...
  [成功] Public IP: 18.11.11.11
  [信息] 正在启动服务...
  [成功] 服务已启动
  [信息] 正在设置开机自启...
  [成功] 开机自启已启用

==============================================
  [成功] Sub2API 安装完成!
==============================================

安装目录: /opt/sub2api
服务器配置: 0.0.0.0:8823

==============================================
  在浏览器中打开设置向导:
==============================================

  [信息]      http://18.11.11.11:8823

     设置向导将引导您完成:
     - 数据库配置
     - Redis 配置
     - 管理员账号创建

==============================================
  常用命令
==============================================

  查看状态:   sudo systemctl status sub2api
  查看日志:     sudo journalctl -u sub2api -f
  重启服务:  sudo systemctl restart sub2api
  停止服务:     sudo systemctl stop sub2api

==============================================

方式二:Docker Compose(推荐)

使用 Docker Compose 部署,包含 PostgreSQL 和 Redis 容器。

前置条件

  • Docker 20.10+
  • Docker Compose v2+

快速开始(一键部署)

使用自动化部署脚本快速搭建:

# 创建部署目录
mkdir -p sub2api-deploy && cd sub2api-deploy

# 下载并运行部署准备脚本
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f sub2api

脚本功能:

  • 下载 docker-compose.local.yml(本地保存为 docker-compose.yml)和 .env.example
  • 自动生成安全凭证(JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD)
  • 创建 .env 文件并填充自动生成的密钥
  • 创建数据目录(使用本地目录,便于备份和迁移)
  • 显示生成的凭证供你记录

手动部署

如果你希望手动配置:

# 1. 克隆仓库
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api/deploy

# 2. 复制环境配置文件
cp .env.example .env

# 3. 编辑配置(生成安全密码)
nano .env

.env 必须配置项:

# PostgreSQL 密码(必需)
POSTGRES_PASSWORD=your_secure_password_here

# JWT 密钥(推荐 - 重启后保持用户登录状态)
JWT_SECRET=your_jwt_secret_here

# TOTP 加密密钥(推荐 - 重启后保留双因素认证)
TOTP_ENCRYPTION_KEY=your_totp_key_here

# 可选:管理员账号
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password

# 可选:自定义端口
SERVER_PORT=8080

生成安全密钥:

# 生成 JWT_SECRET
openssl rand -hex 32

# 生成 TOTP_ENCRYPTION_KEY
openssl rand -hex 32

# 生成 POSTGRES_PASSWORD
openssl rand -hex 32


# 4. 创建数据目录(本地版)
mkdir -p data postgres_data redis_data

# 5. 启动所有服务
# 选项 A:本地目录版(推荐 - 易于迁移)
docker-compose -f docker-compose.local.yml up -d

# 选项 B:命名卷版(简单设置)
docker-compose up -d

# 6. 查看状态
docker-compose -f docker-compose.local.yml ps

# 7. 查看日志
docker-compose -f docker-compose.local.yml logs -f sub2api

部署版本对比

版本 数据存储 迁移便利性 适用场景
docker-compose.local.yml 本地目录 ✅ 简单(打包整个目录) 生产环境、频繁备份
docker-compose.yml 命名卷 ⚠️ 需要 docker 命令 简单设置

推荐: 使用 docker-compose.local.yml(脚本部署)以便更轻松地管理数据。

启用“数据管理”功能(datamanagementd)

如需启用管理后台“数据管理”,需要额外部署宿主机数据管理进程 datamanagementd

关键点:

  • 主进程固定探测:/tmp/sub2api-datamanagement.sock
  • 只有该 Socket 可连通时,数据管理功能才会开启
  • Docker 场景需将宿主机 Socket 挂载到容器同路径

详细部署步骤见:deploy/DATAMANAGEMENTD_CN.md

访问

在浏览器中打开 http://你的服务器IP:8080

如果管理员密码是自动生成的,在日志中查找:

docker-compose -f docker-compose.local.yml logs sub2api | grep "admin password"

升级

# 拉取最新镜像并重建容器
docker-compose -f docker-compose.local.yml pull
docker-compose -f docker-compose.local.yml up -d

轻松迁移(本地目录版)

使用 docker-compose.local.yml 时,可以轻松迁移到新服务器:

# 源服务器
docker-compose -f docker-compose.local.yml down
cd ..
tar czf sub2api-complete.tar.gz sub2api-deploy/

# 传输到新服务器
scp sub2api-complete.tar.gz user@new-server:/path/

# 新服务器
tar xzf sub2api-complete.tar.gz
cd sub2api-deploy/
docker-compose -f docker-compose.local.yml up -d

常用命令

# 停止所有服务
docker-compose -f docker-compose.local.yml down

# 重启
docker-compose -f docker-compose.local.yml restart

# 查看所有日志
docker-compose -f docker-compose.local.yml logs -f

# 删除所有数据(谨慎!)
docker-compose -f docker-compose.local.yml down
rm -rf data/ postgres_data/ redis_data/
 

社区声明 1、本站提供的一切软件、教程和内容信息仅限用于学习和研究目的
2、本站资源为用户分享,如有侵权请邮件与我们联系处理敬请谅解!
3、本站信息来自网络,版权争议与本站无关。您必须在下载后的24小时之内,从您的电脑或手机中彻底删除上述内容
最新回复 (0)

您可以在 登录 or 注册 后,对此帖发表评论!

返回