博主介绍✌全网粉丝24WCSDN博客专家、Java领域优质创作者掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌技术范围SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。感兴趣的可以先关注收藏起来在工作中、生活上等遇到相关问题都可以给我留言咨询希望帮助更多的人。技术扩展最近发现了一个特别好用的人工智能学习网站通俗易懂风趣幽默忍不住想分享一下给大家进入传送门https://www.captainbed.cn/no8g/。wsl2 ubuntu22.04安装部署sub2api详细教程前言0.1 技术栈0.2 Nginx 反向代理注意事项一、Docker Compose 安装方式推荐1.1 前置条件1.2 快速开始一键部署1.3 手动部署1.4 部署版本对比1.5 启用“数据管理”功能datamanagementd1.6 访问1.8 轻松迁移本地目录版1.9 常用命令二、脚本安装方式2.1 前置条件2.2 安装步骤2.3 安装后配置2.4 升级2.5 常用命令三、源码编译方式安装3.1 前置条件3.2 编译步骤Sub2API 是一款开源的 AI API 网关平台可将 Claude、OpenAI、Gemini、Antigravity 等订阅统一接入支持拼车共享、配额分发、并发控制及精确计费。它可通过生成 API Key 供下游工具调用实现原生工具无缝使用。本文推荐使用 Docker Compose 部署因为这种方式会自动拉起 Sub2API、PostgreSQL 和 Redis配置最省心也方便后续备份和迁移。前言0.1 技术栈组件技术后端Go 1.25.7, Gin, Ent前端Vue 3.4, Vite 5, TailwindCSS数据库PostgreSQL 15缓存/队列Redis 70.2 Nginx 反向代理注意事项通过 Nginx 反向代理 Sub2API或 CRS 服务并搭配 Codex CLI 使用时需要在 Nginx 配置的http块中添加underscores_in_headers on;Nginx 默认会丢弃名称中含下划线的请求头如session_id这会导致多账号环境下的粘性会话功能失效。一、Docker Compose 安装方式推荐使用 Docker Compose 部署包含 PostgreSQL 和 Redis 容器。1.1 前置条件Docker 20.10Docker Compose v21.2 快速开始一键部署使用自动化部署脚本快速搭建# 创建部署目录mkdir-psub2api-deploycdsub2api-deploy# 下载并运行部署准备脚本curl-sSLhttps://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh|bash# 启动服务dockercompose up-d# 查看日志dockercompose logs-fsub2api脚本功能下载 docker-compose.local.yml本地保存为 docker-compose.yml和 .env.example自动生成安全凭证JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD创建 .env 文件并填充自动生成的密钥创建数据目录使用本地目录便于备份和迁移显示生成的凭证供你记录1.3 手动部署如果你希望手动配置# 1. 克隆仓库gitclone https://github.com/Wei-Shaw/sub2api.gitcdsub2api/deploy# 2. 复制环境配置文件cp.env.example .env# 3. 编辑配置生成安全密码nano.env.env 必须配置项# PostgreSQL 密码必需POSTGRES_PASSWORDyour_secure_password_here# JWT 密钥推荐 - 重启后保持用户登录状态JWT_SECRETyour_jwt_secret_here# TOTP 加密密钥推荐 - 重启后保留双因素认证TOTP_ENCRYPTION_KEYyour_totp_key_here# 可选管理员账号ADMIN_EMAILadminexample.comADMIN_PASSWORDyour_admin_password# 可选自定义端口SERVER_PORT8080生成安全密钥# 生成 JWT_SECRETopenssl rand-hex32# 生成 TOTP_ENCRYPTION_KEYopenssl rand-hex32# 生成 POSTGRES_PASSWORDopenssl rand-hex32# 4. 创建数据目录本地版mkdir-pdata postgres_data redis_data# 5. 启动所有服务# 选项 A本地目录版推荐 - 易于迁移dockercompose-fdocker-compose.local.yml up-d# 选项 B命名卷版简单设置dockercompose up-d# 6. 查看状态dockercompose-fdocker-compose.local.ymlps# 7. 查看日志dockercompose-fdocker-compose.local.yml logs-fsub2api1.4 部署版本对比版本数据存储迁移便利性适用场景docker-compose.local.yml本地目录✅ 简单打包整个目录生产环境、频繁备份docker-compose.yml命名卷⚠️ 需要 docker 命令简单设置推荐使用docker-compose.local.yml脚本部署以便更轻松地管理数据。1.5 启用“数据管理”功能datamanagementd如需启用管理后台“数据管理”需要额外部署宿主机数据管理进程datamanagementd。关键点主进程固定探测/tmp/sub2api-datamanagement.sock只有该 Socket 可连通时数据管理功能才会开启Docker 场景需将宿主机 Socket 挂载到容器同路径详细部署步骤见deploy/DATAMANAGEMENTD_CN.md1.6 访问在浏览器中打开http://你的服务器IP:8080如果管理员密码是自动生成的在日志中查找dockercompose-fdocker-compose.local.yml logs sub2api|grepadmin password##1.7 升级# 拉取最新镜像并重建容器dockercompose-fdocker-compose.local.yml pulldockercompose-fdocker-compose.local.yml up-d1.8 轻松迁移本地目录版使用docker-compose.local.yml时可以轻松迁移到新服务器# 源服务器dockercompose-fdocker-compose.local.yml downcd..tarczf sub2api-complete.tar.gz sub2api-deploy/# 传输到新服务器scpsub2api-complete.tar.gz usernew-server:/path/# 新服务器tarxzf sub2api-complete.tar.gzcdsub2api-deploy/dockercompose-fdocker-compose.local.yml up-d1.9 常用命令# 停止所有服务dockercompose-fdocker-compose.local.yml down# 重启dockercompose-fdocker-compose.local.yml restart# 查看所有日志dockercompose-fdocker-compose.local.yml logs-f# 删除所有数据谨慎dockercompose-fdocker-compose.local.yml downrm-rfdata/ postgres_data/ redis_data/二、脚本安装方式一键安装脚本自动从 GitHub Releases 下载预编译的二进制文件。2.1 前置条件Linux 服务器amd64 或 arm64PostgreSQL 15已安装并运行Redis 7已安装并运行Root 权限2.2 安装步骤curl-sSLhttps://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh|sudobash脚本会自动检测系统架构下载最新版本安装二进制文件到 /opt/sub2api创建 systemd 服务配置系统用户和权限2.3 安装后配置# 1. 启动服务sudosystemctl start sub2api# 2. 设置开机自启sudosystemctlenablesub2api# 3. 在浏览器中打开设置向导# http://你的服务器IP:8080设置向导将引导你完成数据库配置Redis 配置管理员账号创建2.4 升级可以直接在 管理后台 左上角点击 检测更新 按钮进行在线升级。网页升级功能支持自动检测新版本一键下载并应用更新支持回滚2.5 常用命令# 查看状态sudosystemctl status sub2api# 查看日志sudojournalctl-usub2api-f# 重启服务sudosystemctl restart sub2api# 卸载curl-sSLhttps://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh|sudobash-s-- uninstall-y三、源码编译方式安装从源码编译安装适合开发或定制需求。3.1 前置条件Go 1.21Node.js 18PostgreSQL 15Redis 73.2 编译步骤# 1. 克隆仓库gitclone https://github.com/Wei-Shaw/sub2api.gitcdsub2api# 2. 安装 pnpm如果还没有安装npminstall-gpnpm# 3. 编译前端cdfrontendpnpminstallpnpmrun build# 构建产物输出到 ../backend/internal/web/dist/# 4. 编译后端嵌入前端cd../backend go build-tagsembed-osub2api ./cmd/server# 5. 创建配置文件cp../deploy/config.example.yaml ./config.yaml# 6. 编辑配置nanoconfig.yaml注意-tags embed参数会将前端嵌入到二进制文件中。不使用此参数编译的程序将不包含前端界面。config.yaml关键配置server:host:0.0.0.0port:8080mode:releasedatabase:host:localhostport:5432user:postgrespassword:your_passworddbname:sub2apiredis:host:localhostport:6379password:jwt:secret:change-this-to-a-secure-random-stringexpire_hour:24default:user_concurrency:5user_balance:0api_key_prefix:sk-rate_multiplier:1.0好了今天分享到这里。希望你喜欢这次的探索之旅不要忘记 “点赞” 和 “关注” 哦我们下次见本文完结祝各位大佬和小伙伴身体健康万事如意发财暴富扫下方二维码与我一起交流