Sub2API が公式に使用しているドメインは
sub2api.orgとpincc.aiのみです。Sub2API の名称を使用している他のウェブサイトは、サードパーティによるデプロイやサービスであり、本プロジェクトとは一切関係がありません。ご利用の際はご自身で確認・判断をお願いします。
Sub2API をオンラインでお試しください: https://demo.sub2api.org/
デモ用認証情報(共有デモ環境です。セルフホスト環境では自動作成されません):
| メールアドレス | パスワード |
|---|---|
| admin@sub2api.org | admin123 |
Sub2API は、AI 製品のサブスクリプションから API クォータを配分・管理するために設計された AI API ゲートウェイプラットフォームです。ユーザーはプラットフォームが生成した API キーを通じて上流の AI サービスにアクセスでき、プラットフォームは認証、課金、負荷分散、リクエスト転送を処理します。
![]() | PinCC は Sub2API 上に構築された公式リレーサービスで、Claude Code、Codex、Gemini などの人気モデルへの安定したアクセスを提供します。デプロイやメンテナンスは不要で、すぐにご利用いただけます。 |
Sub2API を拡張・統合するコミュニティプロジェクト:
| プロジェクト | 説明 | 機能 |
|---|---|---|
| Sub2ApiPay | セルフサービス決済システム | セルフサービスによるチャージおよびサブスクリプション購入。YiPay プロトコル、WeChat Pay、Alipay、Stripe 対応。iframe での埋め込み可能 |
| sub2api-mobile | モバイル管理コンソール | ユーザー管理、アカウント管理、監視ダッシュボード、マルチバックエンド切り替えが可能なクロスプラットフォームアプリ(iOS/Android/Web)。Expo + React Native で構築 |
| コンポーネント | 技術 |
|---|---|
| バックエンド | Go 1.25.7, Gin, Ent |
| フロントエンド | Vue 3.4+, Vite 5+, TailwindCSS |
| データベース | PostgreSQL 15+ |
| キャッシュ/キュー | Redis 7+ |
Sub2API(または CRS)を Nginx でリバースプロキシし、Codex CLI と組み合わせて使用する場合、Nginx の http ブロックに以下の設定を追加してください:
underscores_in_headers on;
Nginx はデフォルトでアンダースコアを含むヘッダー(例: session_id)を破棄するため、マルチアカウント構成でのスティッキーセッションルーティングに支障をきたします。
GitHub Releases からビルド済みバイナリをダウンロードするワンクリックインストールスクリプトです。
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash
スクリプトは以下を実行します:
/opt/sub2api にインストール# 1. サービスを起動
sudo systemctl start sub2api
# 2. 起動時の自動起動を有効化
sudo systemctl enable sub2api
# 3. ブラウザでセットアップウィザードを開く
# http://YOUR_SERVER_IP:8080
セットアップウィザードでは以下の設定を行います:
管理ダッシュボードの左上にあるアップデートを確認ボタンをクリックすることで、ダッシュボードから直接アップグレードできます。
Web インターフェースでは以下が可能です:
# ステータスを確認
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
PostgreSQL と Redis のコンテナを含む Docker Compose でデプロイします。
自動デプロイスクリプトを使用して簡単にセットアップできます:
# デプロイ用ディレクトリを作成
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 をダウンロード.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 | ローカルディレクトリ | ✅ 容易(ディレクトリ全体を tar) | 本番環境、頻繁なバックアップ |
| docker-compose.yml | 名前付きボリューム | ⚠️ docker コマンドが必要 | シンプルなセットアップ |
推奨: データ管理が容易な docker-compose.local.yml(スクリプトによるデプロイ)を使用してください。
ブラウザで http://YOUR_SERVER_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. リポジトリをクローン
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api
# 2. pnpm をインストール(未インストールの場合)
npm install -g pnpm
# 3. フロントエンドをビルド
cd frontend
pnpm install
pnpm run build
# 出力先: ../backend/internal/web/dist/
# 4. フロントエンドを組み込んだバックエンドをビルド
cd ../backend
go build -tags embed -o sub2api ./cmd/server
# 5. 設定ファイルを作成
cp ../deploy/config.example.yaml ./config.yaml
# 6. 設定を編集
nano config.yaml
注意:
-tags embedフラグはフロントエンドをバイナリに組み込みます。このフラグがない場合、バイナリはフロントエンド UI を提供しません。
config.yaml の主要設定:
server:
host: "0.0.0.0"
port: 8080
mode: "release"
database:
host: "localhost"
port: 5432
user: "postgres"
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
⚠️ Sora 関連の機能は、上流統合およびメディア配信の技術的問題により一時的に利用できません。 現時点では本番環境で Sora に依存しないでください。 既存の
gateway.sora_*設定キーは予約されていますが、これらの問題が解決されるまで有効にならない場合があります。
config.yaml では追加のセキュリティ関連オプションも利用できます:
cors.allowed_origins - CORS 許可リストsecurity.url_allowlist - 上流/価格/CRS ホストの許可リストsecurity.url_allowlist.enabled - URL バリデーションの無効化(注意して使用)security.url_allowlist.allow_insecure_http - バリデーション無効時に HTTP URL を許可security.url_allowlist.allow_private_hosts - プライベート/ローカル IP アドレスを許可security.response_headers.enabled - 設定可能なレスポンスヘッダーフィルタリングを有効化(無効時はデフォルトの許可リストを使用)security.csp - Content-Security-Policy ヘッダーの制御billing.circuit_breaker - 課金エラー時にフェイルクローズserver.trusted_proxies - X-Forwarded-For パースの有効化turnstile.required - リリースモードでの Turnstile 必須化⚠️ セキュリティ警告: HTTP URL 設定
security.url_allowlist.enabled=false の場合、システムはデフォルトで最小限の URL バリデーションを行い、HTTP URL を拒否して HTTPS のみを許可します。HTTP URL を許可するには(開発環境や内部テスト用など)、以下を明示的に設定する必要があります:
security:
url_allowlist:
enabled: false # 許可リストチェックを無効化
allow_insecure_http: true # HTTP URL を許可(⚠️ セキュリティリスクあり)
または環境変数で設定:
SECURITY_URL_ALLOWLIST_ENABLED=false
SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=true
HTTP を許可するリスク:
HTTP を使用すべき場面:
この設定なしで表示されるエラー例:
Invalid base URL: invalid url scheme: http
URL バリデーションまたはレスポンスヘッダーフィルタリングを無効にする場合は、ネットワーク層を強化してください:
# 6. アプリケーションを実行
./sub2api
# バックエンド(ホットリロード付き)
cd backend
go run ./cmd/server
# フロントエンド(ホットリロード付き)
cd frontend
pnpm run dev
backend/ent/schema を編集した場合、Ent + Wire を再生成してください:
cd backend
go generate ./ent
go generate ./cmd/server
シンプルモードは、フル SaaS 機能を必要とせず、素早くアクセスしたい個人開発者や社内チーム向けに設計されています。
RUN_MODE=simple を設定SIMPLE_MODE_CONFIRM=true も設定する必要がありますSub2API は Antigravity アカウントをサポートしています。認証後、Claude および Gemini モデル用の専用エンドポイントが利用可能になります。
| エンドポイント | モデル |
|---|---|
/antigravity/v1/messages | Claude モデル |
/antigravity/v1beta/ | Gemini モデル |
export ANTHROPIC_BASE_URL="http://localhost:8080/antigravity"
export ANTHROPIC_AUTH_TOKEN="sk-xxx"
Antigravity アカウントはオプションのハイブリッドスケジューリングをサポートしています。有効にすると、汎用エンドポイント /v1/messages および /v1beta/ も Antigravity アカウントにリクエストをルーティングします。
⚠️ 警告: Anthropic Claude と Antigravity Claude は同じ会話コンテキスト内で混在させることはできません。グループを使用して適切に分離してください。
Claude Code では、Plan Mode を自動的に終了できません。(通常、ネイティブの Claude API を使用する場合、計画が完了すると Claude Code はユーザーに計画を承認または拒否するオプションをポップアップ表示します。)
回避策: Shift + Tab を押して手動で Plan Mode を終了し、計画を承認または拒否するためのレスポンスを入力してください。
sub2api/ ├── backend/ # Go バックエンドサービス │ ├── cmd/server/ # アプリケーションエントリ │ ├── internal/ # 内部モジュール │ │ ├── config/ # 設定 │ │ ├── model/ # データモデル │ │ ├── service/ # ビジネスロジック │ │ ├── handler/ # HTTP ハンドラー │ │ └── gateway/ # API ゲートウェイコア │ └── resources/ # 静的リソース │ ├── frontend/ # Vue 3 フロントエンド │ └── src/ │ ├── api/ # API 呼び出し │ ├── stores/ # 状態管理 │ ├── views/ # ページコンポーネント │ └── components/ # 再利用可能なコンポーネント │ └── deploy/ # デプロイファイル ├── docker-compose.yml # Docker Compose 設定 ├── .env.example # Docker Compose 用環境変数 ├── config.example.yaml # バイナリデプロイ用フル設定ファイル └── install.sh # ワンクリックインストールスクリプト
本プロジェクトをご利用の前に、以下をよくお読みください:
🚨 利用規約違反のリスク: 本プロジェクトの使用は Anthropic の利用規約に違反する可能性があります。使用前に Anthropic のユーザー契約をよくお読みください。本プロジェクトの使用に起因するすべてのリスクは、ユーザー自身が負うものとします。
📖 免責事項: 本プロジェクトは技術的な学習および研究目的のみで提供されています。作者は、本プロジェクトの使用によるアカウント停止、サービス中断、その他の損失について一切の責任を負いません。
MIT License
このプロジェクトが役に立ったら、ぜひスターをお願いします!