メインコンテンツへスキップ

スタンダードデプロイ

公式共有バックエンドを再利用し、そのまま動作します。まずプロジェクトをフォークし、以下のいずれかの方法でデプロイしてください。

要件:Node.js 20.0 以降。macOS、Windows(WSL を含む)、または Linux。

スタンダードデプロイの構成図:フォーク後、ローカルビルド、Vercel、Cloudflare Pages、または Docker のいずれかでデプロイでき、いずれも公式の共有バックエンド(ログイン、コレクション、コミュニティ、コメント、デバイス間同期)を再利用します。

ローカルビルド​

# 依存関係のインストール
yarn

# ローカル開発
yarn start

# ビルド:18 言語すべてを分割ビルド(一括だと OOM)。出力は build/ ——1 言語だけなら下の --locale を参照
yarn build

特定言語のみビルドする場合:yarn build --locale <locale> を使用します(例:zh-Hans、en、ja など。全ロケール一覧は scripts/i18nLocales.mjs を参照)

⚠ デフォルト以外の locale を 1 つだけ指定すると、その言語がサイトのルートになります(成果物は /en/ プレフィックスなしで直接 build/ に入る)。複数言語を一度に出力するには、すべての locale を同じコマンドに、デフォルトを先頭に並べてください:yarn build --locale zh-Hans --locale en(→ build/ が中文ルート、build/en/ が英文)。18 言語すべては通常の yarn build を使ってください(自動で分割ビルド + sitemap 統合)。

Vercel デプロイ​

下のボタンをクリックして Vercel にワンクリックデプロイします:

Vercel

注意:Vercel の無料プランではメモリ不足によりビルドが失敗する場合があります。その場合は単一言語でデプロイしてください。プロジェクトの Settings → Build & Deployment → Build Command で Override をクリックし、単一言語コマンドに変更します(中国語の場合は yarn build --locale zh-Hans、ポルトガル語の場合は yarn build --locale pt など)。

Cloudflare Pages デプロイ​

まず 👉 このプロジェクトをフォーク してから、以下の手順でデプロイします:

  1. Pages 作成ページ を開き、Connect to Git を選択します。Create a Worker の画面に着いた場合、Pages の入口は下部の Get started です
  2. フォークしたリポジトリを接続します
  3. ビルド設定を行います:
    • Build command:yarn build --locale zh-Hans(デプロイしたい言語の locale に変更してください。例:ポルトガル語の場合は yarn build --locale pt)
    • Output directory:build
    • Environment variables:YARN_VERSION = 1.22.22
  4. Deploy をクリックし、Cloudflare Pages のビルド完了を待ちます

YARN_VERSION は省略できません:Cloudflare の v3 ビルドシステムは Yarn 4.9.1 が既定で、v2 のように yarn.lock からバージョンを推定しなくなりました。本リポジトリは Yarn Classic の v1 lockfile なので、固定しないと Yarn 4 が処理します。Node は設定不要です —— v3 の既定は 22.16.0 で、本プロジェクトが要求する 20 以上を満たしています。

以降はコードをプッシュするたびに自動でビルドとデプロイがトリガーされます。

Docker デプロイ​

ワンライナーでデプロイ:

# ghcr.io
docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest

# docker hub
docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest

または docker-compose を使用する場合:

services:
chatgpt-shortcut:
container_name: chatgpt-shortcut
image: ghcr.io/rockbenben/chatgpt-shortcut:latest
ports:
- "3000:3000"
restart: unless-stopped