Skip to main content

オフラインデプロイ版

対象読者:デプロイを担当する IT 管理者または技術責任者。一般ユーザーは管理者がデプロイした社内アドレスにアクセスするだけで利用できるため、本ドキュメントを読む必要はありません。

適用シーン:社内イントラネット、政府機関・官公庁ネットワーク、金融機関、製造業の情報セキュリティ要件、機密環境、校内ネットワークなど、外部ネットワークへのアクセスが不可または不便な環境。

バックエンド不要、登録不要 — すべてのデータはブラウザのローカルに保存されます。デプロイ後、イントラネット内のチームメンバーはブラウザを開くだけで利用できます。

チームでの使い方

オフライン版は純粋な静的サイトです。社内サーバーにデプロイすると、メンバーはブラウザで社内アドレスにアクセスするだけで利用できます:

  1. 管理者がオフライン版を社内サーバー(例:http://192.168.1.100:3000)にデプロイします
  2. チームメンバーはブラウザで該当アドレスを開き、プロンプトを閲覧・検索・コピーします
  3. 各人のコレクションとカスタムプロンプトは自分のブラウザ内に保存され、互いに影響しません
  4. アカウント登録もソフトウェアのインストールも不要で、開けばすぐに使えます
社内サーバー(オフライン版をデプロイ)
├── プロンプトライブラリのデータ(全員で共有、静的 JSON 由来)

├── ユーザー A のブラウザ → localStorage(A のコレクションとカスタムプロンプト)
├── ユーザー B のブラウザ → localStorage(B のコレクションとカスタムプロンプト)
└── ユーザー C のブラウザ → localStorage(C のコレクションとカスタムプロンプト)

:::tip ヒント プロンプトライブラリ(厳選プロンプト)はビルド時にパッケージされる静的データであり、すべてのユーザーが同じ内容を閲覧できます。各ユーザーのコレクション、カスタムプロンプト、並び順、タグは、それぞれのブラウザの localStorage に保存され、互いに独立しています。 :::

オンライン版との違い

機能オンライン版オフライン版
プロンプトの閲覧/検索/フィルタリング
プロンプトのコピー
コレクション管理サーバー保存ブラウザのローカル保存
カスタムプロンプトサーバー保存ブラウザのローカル保存
マイコレクション(ドラッグ並べ替え、タグ)
多言語対応(18 言語)
データのインポート/エクスポート✅(フォーマット互換)
プロンプト詳細ページ✅(静的データ、コメントなし)
ユーザー登録/ログイン❌(アカウント不要)
コミュニティプロンプトリスト/投票
コメントフィードバック

データストレージ

各ユーザーのデータは自分のブラウザの localStorage に保存され、サーバーとは無関係です:

データストレージキー説明
コレクションリストlocal_favoritesコレクションしたプロンプト ID の配列
カスタムプロンプトlocal_user_promptsユーザーが作成したプロンプトデータ
並び順local_myspace_orderマイコレクション内のカードの並び順
カスタムタグlocal_custom_tagsタグの定義と割り当て関係

:::caution 注意

  • ブラウザのローカルストレージは約 5MB の容量上限がありますが、日常利用には十分です。
  • ブラウザのデータを消去すると個人データが失われます — 定期的に「設定 > データのエクスポート」からバックアップすることをおすすめします。
  • パソコンやブラウザを変更した際はデータを再インポートする必要があります。 :::

デプロイ

オフライン版は offline ブランチをベースとしています。管理者が一度デプロイすれば、チームメンバーは何の操作も必要なく利用できます。

Docker デプロイ(推奨)

最もシンプルなデプロイ方法で、1 行のコマンドで社内サーバー上で実行できます:

# 事前ビルド済みのオフライン版イメージを使用
docker run -d -p 3000:3000 --name aishort-offline ghcr.io/rockbenben/chatgpt-shortcut:offline

# または Docker Hub を使用
docker run -d -p 3000:3000 --name aishort-offline rockben/chatgpt-shortcut:offline

デプロイ後、チームメンバーは http://<サーバーIP>:3000 にアクセスして利用できます。

docker-compose を使用する場合:

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

ソースコードからのビルド

プロンプト内容のカスタマイズや設定の変更が必要な場合:

# オフライン版ブランチをクローン
git clone -b offline https://github.com/rockbenben/ChatGPT-Shortcut.git
cd ChatGPT-Shortcut

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

# ローカル開発
yarn start

# 単一言語版(日本語)をビルド
yarn build --locale zh-Hans

# 全言語をビルド
yarn build

ビルド成果物は build/ ディレクトリに出力され、任意の静的ファイルサーバー(Nginx、Apache、Caddy など)にデプロイできます。

Nginx 設定例

server {
listen 3000;
server_name _;
root /path/to/build;
index index.html;

location / {
try_files $uri $uri/ /index.html;
}
}

プラットフォームへのデプロイ

Vercel や Cloudflare Pages などのプラットフォームにデプロイする際は、offline ブランチを選択するだけで、その他の手順はオンライン版と同じです。詳しくはプロジェクトのデプロイをご参照ください。

データのインポート/エクスポート

エクスポート

「設定 > データのエクスポート」から、個人のコレクションとカスタムプロンプトを JSON ファイルとしてエクスポートできます。

インポート

以下の形式の JSON ファイルをインポートできます:

  • オフライン版でエクスポートしたファイル:コレクション、プロンプト、並び順、タグを完全に復元します
  • オンライン版でエクスポートしたファイル:自動的に互換処理されます
    • ユーザープロンプト → ローカルにマージ(タイトルで重複排除)
    • 厳選プロンプトのコレクション(card) → ローカルコレクションにマージ
    • コミュニティのコレクション(community) → 自動的にローカルのカスタムプロンプトに変換
    • MySpace の並び順 → ローカルに復元
    • カスタムタグ → 追加マージ(既存のものは上書きしない)

オンライン版からの移行

  1. オンライン版(aishort.top)の「マイアカウント」ページでデータをエクスポートします
  2. オフライン版の「設定」ページでその JSON ファイルをインポートします
  3. コミュニティのコレクションは自動的にローカルプロンプトに変換され、厳選プロンプトのコレクションは通常通り同期されます

よくある質問

デプロイ後、チームではどう使えばよいですか?

管理者が社内サーバーにデプロイした後、アクセス用アドレス(例:http://192.168.1.100:3000)をチームメンバーに通知するだけです。各メンバーはブラウザで開けばよく、インストールも登録も不要です。

各メンバーのデータが互いに影響しますか?

影響しません。各メンバーのコレクションとカスタムプロンプトは、それぞれのブラウザの localStorage に保存され、完全に独立しています。サーバー上には共有のプロンプトライブラリ(読み取り専用)のみが存在します。

データが消えることはありますか?

以下の操作を行うと個人データが失われます:

  • ブラウザのデータ/キャッシュの消去
  • プライベートブラウジング/シークレットモードでの利用
  • パソコンやブラウザの変更

重要なデータは定期的に「設定 > データのエクスポート」から JSON ファイルとしてバックアップすることをおすすめします。

チーム間でカスタムプロンプトを共有できますか?

可能です。1 名が JSON ファイルをエクスポートし、他のメンバーが「設定 > データのインポート」で取り込むだけで、自動的に重複排除されます。

プロンプトライブラリはどのように更新しますか?

プロンプトライブラリはビルド時にパッケージされる静的データです。更新手順:

  1. 管理者が最新の offline ブランチのコードを取得します
  2. 再ビルドしてデプロイします(または最新の Docker イメージを取得します)
  3. チームメンバーはブラウザを再読み込みするだけで新しい内容が反映されます(個人データには影響しません)

オフライン版のデータ形式はオンライン版と互換性がありますか?

互換性があります。エクスポートされる JSON 形式は同一で、両バージョン間で相互にインポートできます。プロンプト ID は異なります(オンライン版はサーバー ID、オフライン版はタイムスタンプ ID)が、インポート時はタイトルで重複排除されるため衝突は発生しません。