教程

Sub2API Docker Compose 部署教程:生产环境最佳方案,含迁移和 Nginx 配置

Sub2API Docker Compose 生产环境部署完整指南:一键脚本自动生成密钥、手动配置精细控制、本地目录版和命名卷版对比、升级、tar 一键迁移、Nginx 反代 HTTPS 配置,官方推荐方案。

2026/4/144分钟 阅读ClaudeEagle

Sub2API 是开源 AI API 网关,把 Claude、OpenAI、Gemini 等订阅统一转成标准 API 接口,支持拼车共享、Token 计费、智能调度。

本文介绍方式二:Docker Compose 部署——官方推荐的生产环境方案,包含 PostgreSQL 和 Redis 容器,一键启动全套服务。


为什么选 Docker Compose

  • 环境完全隔离,不污染主机
  • 含 PostgreSQL + Redis,无需单独安装
  • 数据目录在本地,迁移只需 tar 打包
  • 适合生产环境,稳定可靠

前置条件

bash
# 检查 Docker 版本(需要 20.10+)
docker --version

# 检查 Docker Compose 版本(需要 v2+)
docker compose version

如果还没安装:

bash
# 一键安装 Docker(Linux)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker YOUR_USERNAME
newgrp docker

方式 A:一键脚本部署(推荐)

bash
# 创建部署目录
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 文件
  • 创建数据目录(本地目录模式,便于备份迁移)

方式 B:手动部署(精细控制)

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

# 复制环境配置
cp .env.example .env

# 编辑配置
nano .env

必须修改的 .env 配置

bash
# 数据库密码(必须修改)
POSTGRES_PASSWORD=your_secure_password_here

# JWT Secret(推荐设置,避免重启后用户登出)
JWT_SECRET=your_jwt_secret_here

# TOTP 加密 Key(推荐设置,保留重启后的 2FA 配置)
TOTP_ENCRYPTION_KEY=your_totp_key_here

# 管理员账号(可选,也可在安装向导里设置)
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password

# 服务端口(默认 8080)
SERVER_PORT=8080

生成安全的随机密钥

bash
# JWT_SECRET
openssl rand -hex 32

# TOTP_ENCRYPTION_KEY
openssl rand -hex 32

# POSTGRES_PASSWORD
openssl rand -hex 32
bash
# 创建数据目录(本地模式)
mkdir -p data postgres_data redis_data

# 启动(推荐:本地目录版本,便于迁移)
docker compose -f docker-compose.local.yml up -d

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

两种部署版本对比

版本数据存储迁移推荐场景
docker-compose.local.yml本地目录简单(tar 打包)生产环境、频繁备份
docker-compose.ymlDocker 命名卷需要 Docker 命令简单测试

推荐:生产环境用 docker-compose.local.yml(脚本自动选择这个)。


首次访问

bash
# 如果管理员密码是自动生成的,在日志里找
docker compose -f docker-compose.local.yml logs sub2api | grep "admin password"

访问 http://你的服务器IP:8080,如果没有预设管理员账号,会进入安装向导完成初始化。


配置接入 Claude Code

管理后台 → 添加 Claude 账号 → 生成 API Key,然后:

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

Antigravity 账号(如果使用):

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

日常运维

bash
# 查看所有服务状态
docker compose -f docker-compose.local.yml ps

# 查看实时日志
docker compose -f docker-compose.local.yml logs -f

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

# 停止(不删数据)
docker compose -f docker-compose.local.yml down

升级

bash
# 拉取最新镜像并重启
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d

也可以在管理后台点「检查更新」通过 Web 界面升级。


迁移到新服务器

本地目录版本迁移极其简单:

bash
# 源服务器:打包
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

Nginx 反向代理配置

生产环境建议用 Nginx 做反代 + HTTPS:

nginx
http {
    underscores_in_headers on;  # 必须,否则 Codex sticky session 失效

    server {
        listen 80;
        server_name your-domain.com;
        return 301 https://your-domain.com/;
    }

    server {
        listen 443 ssl;
        server_name your-domain.com;

        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;

        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host your-domain.com;
            proxy_set_header X-Real-IP REMOTE_ADDR;
            proxy_set_header X-Forwarded-For PROXY_ADD_X_FORWARDED_FOR;
            proxy_set_header X-Forwarded-Proto https;
        }
    }
}

Simple Mode(个人/内网使用)

如果只是个人或小团队内网使用,可以开启简洁模式,隐藏 SaaS 相关功能:

.env 里加:

bash
RUN_MODE=simple
SIMPLE_MODE_CONFIRM=true

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

相关文章推荐

教程Sub2API 脚本一键安装教程:5 分钟部署 Claude OpenAI 订阅转 API 中转网关Sub2API 脚本安装完整教程:一行命令安装 Claude/OpenAI/Gemini 订阅中转网关,含 PostgreSQL/Redis 配置、安装向导、systemd 管理、Nginx 反代、一键升级和卸载,适合 Linux 新手快速部署。2026/4/14教程LangGraph 2026 完全解析:从零到生产的确定性 AI 工作流引擎实战指南LangGraph 2026 版完整教程:状态机 + LLM 的核心心智模型、State/Node/Edge/Loop/Checkpoint 五大概念详解、生产级 Code Review Agent 完整代码、Human-in-the-Loop 实现、LangGraph Platform 部署,以及与 LangChain 的本质差异。2026/4/19教程Sub2API 源码编译部署教程:Go + Vue 3 自定义构建 AI API 中转网关开发者指南Sub2API 源码编译完整指南:Go/Node.js/pnpm 环境搭建、前后端分别编译、-tags embed 嵌入前端、config.yaml 详细配置、开发热重载、Ent/Wire 代码生成、systemd 生产部署,面向开发者和需要自定义的用户。2026/4/14教程Claude Citations 完整指南:让 AI 回答带可验证引用,适合 RAG 与文档问答Claude Citations 官方能力中文整理:如何启用 citations.enabled、支持的文档类型、PDF 页码引用、文本字符索引、custom content block 索引、RAG chunk 粒度控制、与 Prompt Caching 兼容性和 Structured Outputs 不兼容限制。2026/5/21教程Claude Batch Processing 完整指南:批量处理任务如何节省 50% API 成本Claude Batch Processing 官方能力中文整理:为什么批处理能省钱、如何创建 batch、custom_id 设计、轮询状态、下载结果、处理失败请求,以及适合大规模分类、摘要、翻译、数据清洗的任务模式。2026/5/21教程Claude Prompt Caching 完整指南:降低长上下文成本与延迟的 API 实战Claude Prompt Caching 官方能力中文整理:适合缓存的内容、cache_control 使用方法、缓存断点策略、长文档和工具定义复用、成本/延迟收益、常见坑和生产环境落地建议。2026/5/21