教程

Sub2API 源码编译部署教程:Go + Vue 3 自定义构建 AI API 中转网关开发者指南

Sub2API 源码编译完整指南:Go/Node.js/pnpm 环境搭建、前后端分别编译、-tags embed 嵌入前端、config.yaml 详细配置、开发热重载、Ent/Wire 代码生成、systemd 生产部署,面向开发者和需要自定义的用户。

2026/4/144分钟 阅读ClaudeEagle

Sub2API 是开源 AI API 网关(MIT 协议),基于 Go + Vue 3 + PostgreSQL + Redis 构建,把 Claude、OpenAI、Gemini 等订阅转成标准 API,支持拼车、计费和智能调度。

本文介绍方式三:源码编译——面向开发者,需要自定义功能或参与开发时使用。


适用场景

  • 需要修改源码、添加自定义功能
  • 参与 Sub2API 开源贡献
  • 想了解项目架构深度使用
  • 企业内网部署,需要从源码审计和构建

技术栈

组件技术版本
后端Go + Gin + EntGo 1.21+
前端Vue 3 + Vite + TailwindCSSNode.js 18+
数据库PostgreSQL15+
缓存Redis7+

前置条件安装

Go 环境

bash
# 安装 Go(推荐用官方安装包)
wget https://go.dev/dl/go1.25.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.25.7.linux-amd64.tar.gz
echo 'export PATH=/usr/local/go/bin:PATH' >> ~/.zshrc
source ~/.zshrc
go version

Node.js 和 pnpm

bash
# 用 nvm 安装 Node.js 18+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.zshrc
nvm install 22
nvm use 22

# 安装 pnpm
npm install -g pnpm
pnpm --version

PostgreSQL 和 Redis

bash
# Ubuntu/Debian
sudo apt update
sudo apt install -y postgresql-15 redis-server

# 创建数据库
sudo -u postgres psql << 'EOF'
CREATE USER sub2api WITH PASSWORD 'your_password';
CREATE DATABASE sub2api OWNER sub2api;
GRANT ALL PRIVILEGES ON DATABASE sub2api TO sub2api;
EOF

克隆仓库

bash
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api

构建前端

bash
cd frontend
pnpm install
pnpm run build
# 构建产物输出到 ../backend/internal/web/dist/

构建后端

bash
cd ../backend

# 带 embed 标签构建(将前端嵌入二进制,生产部署用这个)
go build -tags embed -o sub2api ./cmd/server

重要-tags embed 会把前端静态文件嵌入二进制。不加这个标签,二进制不会提供前端 UI,只适合前后端分离开发。


配置文件

bash
# 复制配置模板
cp ../deploy/config.example.yaml ./config.yaml

# 编辑配置
nano config.yaml

最小必要配置config.yaml):

yaml
server:
  host: "0.0.0.0"
  port: 8080
  mode: "release"   # 生产用 release,开发用 debug

database:
  host: "localhost"
  port: 5432
  user: "sub2api"
  password: "your_password"     # 你的数据库密码
  dbname: "sub2api"

redis:
  host: "localhost"
  port: 6379
  password: ""      # 如无密码留空

jwt:
  secret: "change-this-to-a-secure-random-string"   # 必须修改!
  expire_hour: 24

default:
  user_concurrency: 5
  user_balance: 0
  api_key_prefix: "sk-"
  rate_multiplier: 1.0

生成安全的 JWT Secret

bash
openssl rand -hex 32

运行

bash
./sub2api

访问 http://localhost:8080,进入安装向导完成初始化。


开发模式(热重载)

后端热重载(需要安装 air):

bash
go install github.com/air-verse/air@latest
cd backend
air   # 保存文件自动重载

或者不用 air:

bash
cd backend
go run ./cmd/server   # 改代码需手动重启

前端热重载

bash
cd frontend
pnpm run dev   # 前端在 http://localhost:5173 热重载

开发时前端请求后端 API,需要在 frontend/vite.config.ts 里配置代理到 http://localhost:8080


代码生成(修改数据模型时)

修改 backend/ent/schema 里的数据模型后,需要重新生成:

bash
cd backend

# 重新生成 Ent ORM 代码
go generate ./ent

# 重新生成 Wire 依赖注入
go generate ./cmd/server

systemd 服务(生产部署)

构建好二进制后,用 systemd 管理:

bash
sudo nano /etc/systemd/system/sub2api.service
ini
[Unit]
Description=Sub2API AI Gateway
After=network.target postgresql.service redis.service

[Service]
Type=simple
User=sub2api
WorkingDirectory=/opt/sub2api
ExecStart=/opt/sub2api/sub2api
Restart=always
RestartSec=5
Environment=GIN_MODE=release

[Install]
WantedBy=multi-user.target
bash
# 把二进制复制到目标目录
sudo mkdir -p /opt/sub2api
sudo cp backend/sub2api /opt/sub2api/
sudo cp backend/config.yaml /opt/sub2api/
sudo useradd -r -s /sbin/nologin sub2api
sudo chown -R sub2api:sub2api /opt/sub2api

# 启动
sudo systemctl daemon-reload
sudo systemctl enable --now sub2api

配置接入 Claude Code

bash
export ANTHROPIC_BASE_URL="http://你的服务器IP:8080/anthropic"
export ANTHROPIC_AUTH_TOKEN="sk-你生成的APIKey"

安全配置要点

CORS 配置(生产环境):

yaml
cors:
  allowed_origins:
    - "https://your-domain.com"

允许 HTTP 上游(仅测试用)

yaml
security:
  url_allowlist:
    enabled: false
    allow_insecure_http: true   # 生产环境绝对不要开启!

Nginx 反向代理(必须加 underscores_in_headers):

nginx
http {
    underscores_in_headers on;
    ...
}

和其他安装方式对比

源码编译脚本安装Docker Compose
难度
自定义能力完全自定义有限
更新方式git pull + 重新编译管理后台一键docker pull
适合开发者/需定制新手生产环境

来源:github.com/Wei-Shaw/sub2api | 整理:ClaudeEagle

相关文章推荐

教程Sub2API 脚本一键安装教程:5 分钟部署 Claude OpenAI 订阅转 API 中转网关Sub2API 脚本安装完整教程:一行命令安装 Claude/OpenAI/Gemini 订阅中转网关,含 PostgreSQL/Redis 配置、安装向导、systemd 管理、Nginx 反代、一键升级和卸载,适合 Linux 新手快速部署。2026/4/14教程Sub2API Docker Compose 部署教程:生产环境最佳方案,含迁移和 Nginx 配置Sub2API Docker Compose 生产环境部署完整指南:一键脚本自动生成密钥、手动配置精细控制、本地目录版和命名卷版对比、升级、tar 一键迁移、Nginx 反代 HTTPS 配置,官方推荐方案。2026/4/14教程Anthropic Python SDK 完全指南:从安装到生产级集成的最佳实践Anthropic Python SDK 完整使用指南:安装配置、同步与异步客户端、流式输出、工具调用(Tool Use)、视觉 API、Prompt Caching、错误处理与重试、Token 用量追踪、httpx 客户端自定义,以及在 Django/FastAPI/Flask 框架中的集成最佳实践。2026/3/16教程Hermes Agent 消息网关配置完整指南:Telegram、Discord、Slack 多平台同步Hermes Agent 消息网关全面配置教程:Telegram Bot 创建和私聊话题分区、Discord Bot 权限配置、Slack App 设置、多平台同步原理、工具权限按平台管控、安全白名单配置,含常见连接问题排查。2026/4/15教程Hermes Agent Cron 定时任务完全指南:10 个开箱即用的 AI 自动化任务模板Hermes Agent 定时任务完整教程:自然语言配置 Cron、10 个实用任务模板(AI 资讯简报/GitHub 监控/代码扫描/服务器告警/周报生成等)、标准 Cron 表达式参考和时间守卫防异常补跑。2026/4/15教程Hermes Agent 六种安装路径详解:VPS、Mac、WSL2、Docker、Pinokio、ServerlessHermes Agent 六种安装方式完整指南:VPS 一键部署(推荐)、Mac 本地 + Ollama、Windows WSL2、Docker Compose、Pinokio 无命令行、Modal/Daytona Serverless,含从 OpenClaw 迁移方法和常见报错解决。2026/4/15