Infra / Deploy

本アプリは、スケーラビリティとリアルタイム性を確保するために外部のクラウドサービスをフル活用しています。

利用サービス一覧

サービス役割依存度備考
Supabaseデータベース、認証、リアルタイム通信、ストレージ極大Pro プラン (有料) を推奨
GitHub Pagesフロントエンドのホスティング高/app パスで公開。docs/ フォルダを参照
GitHubソースコード管理高複数人で開発するため必要

デプロイフロー

本プロジェクトは現在、GitHub Actions を使用せず、ローカル環境でビルドした成果物をプッシュする手動デプロイ方式を採用しています。

  1. ローカル環境でのビルド:
    npm run build
    • これにより next build が実行され、静的ファイルが docs/ ディレクトリに出力されます。
    • ビルド完了直後に src/constants/fix-paths.ts が自動実行され、GitHub Pages 用のパス修正 (/app プレフィックスの付与) が行われます。
  2. GitHub へのプッシュ:
    ビルドされた docs/ ディレクトリを含め、変更を main ブランチにコミット・プッシュします。
  3. 公開:
    GitHub Pages が docs/ ディレクトリの内容を自動的に読み込み、数分以内に公開内容が更新されます。

GitHub Pages の設定

GitHub リポジトリの Settings > Pages にて、以下の設定を行ってください。

  • Build and deployment > Source: Deploy from a branch
  • Branch: main
  • Folder: /docs

Supabase Pro プランについて

本アプリは文化祭期間中の大量アクセス (同時接続) に耐えるため、Supabase Pro プラン ($25/mo ~) を推奨しています。

  1. 同時接続数: 無料枠では Realtime 機能の同時接続数に厳しい制限があり、文化祭当日に「リアルタイム更新が止まる」可能性があります。
  2. トラフィック量: ニュース内容やQ&Aが増えると無料枠では Egress の上限に到達する可能性があります。