Sub2API 是一个用于分发和管理 AI 产品订阅额度的 API 网关平台。用户通过平台生成的 API Key 调用上游 AI 服务,平台负责鉴权、计费、负载均衡、请求转发和后台管理
Sub2API 面板地址
http://localhost:8080Sub2API Compose
version: "3.8"
services:
sub2api:
image: ghcr.io/wei-shaw/sub2api:latest
container_name: sub2api
restart: always
networks:
- default
- proxy
- db_net
- cache_net
# ports:
# - "8080:8080"
volumes:
- sub2api_data:/app/data
environment:
- JWT_SECRET=${JWT_SECRET}
- TOTP_ENCRYPTION_KEY=${TOTP_ENCRYPTION_KEY}
- SERVER_HOST=0.0.0.0
- SERVER_PORT=8080
- TZ=Asia/Shanghai
volumes:
sub2api_data:
networks:
default: {}
proxy:
external: true
db_net:
external: true
cache_net:
external: true
🟢Portainer 环境变量
在 Portainer 的 Stack 页面底部
Environment variables 区域添加:JWT_SECRET = 另一段随机密钥
TOTP_ENCRYPTION_KEY = 另一段随机密钥
🟢随机密钥生成
openssl rand -hex 32
建议分别生成 2 次,分别填给:
JWT_SECRET
TOTP_ENCRYPTION_KEY
🟢Sub2API 依赖
PostgreSQL 15+
Redis 7+
🟢数据库与缓存信息
浏览器访问
http://localhost:8080PostgreSQL 主机 (Host):填写 postgres
PostgreSQL 端口:填写 5432
PostgreSQL 用户名:填写 postgres
PostgreSQL 数据库名:填写 sub2api
PostgreSQL 密码:填写在 Portainer 高级模式中生成并部署的那个密码
Redis 主机 (Host):填写 redis
Redis 端口:填写 6379
🟢Sub2API NPM 反代高级配置
# Preserve Codex/Sub2API sticky-session headers such as session_id
underscores_in_headers on;
# Better for streaming API / SSE responses
proxy_buffering off;
proxy_request_buffering off;
proxy_cache off;
gzip off;
# Long-running chat/completion streams
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
# Fail fast if local upstream is down
proxy_connect_timeout 10s;
# Optional, useful for long prompts / vision / larger JSON payloads
client_max_body_size 50m;
项目地址
https://github.com/Wei-Shaw/sub2api
功能特性
🔑 多账号管理 - 支持 OAuth / API Key 等上游账号类型
🧾 精准计费 - 支持 Token 级用量追踪和成本计算
🧠 智能调度 - 支持账号选择、粘性会话和负载均衡
🚦 并发与限速 - 支持用户级、账号级并发控制
💳 内置支付 - 支持 EasyPay、支付宝、微信、Stripe
🖥 管理后台 - Web 面板管理用户、账号、API Key 和监控数据
🔌 外部集成 - 支持 iframe 嵌入外部系统
🗄 PostgreSQL + Redis - 依赖 PostgreSQL 15+ 与 Redis 7+
🤣 部署中涉及到多个容器之间需要互相通信,Docker 网关避雷点参考“Nginx Proxy Manager 反向代理避雷指南”
😂 Docker
#Docker #Sub2API #中转站