Infra / Deploy
本アプリは、スケーラビリティとリアルタイム性を確保するために外部のクラウドサービスをフル活用しています。
利用サービス一覧
| サービス | 役割 | 依存度 | 備考 |
|---|---|---|---|
| Supabase | データベース、認証、リアルタイム通信、ストレージ | 極大 | Pro プラン (有料) を推奨 |
| GitHub Pages | フロントエンドのホスティング | 高 | /app パスで公開。docs/ フォルダを参照 |
| GitHub | ソースコード管理 | 高 | 複数人で開発するため必要 |
デプロイフロー
本プロジェクトは現在、GitHub Actions を使用せず、ローカル環境でビルドした成果物をプッシュする手動デプロイ方式を採用しています。
- ローカル環境でのビルド:
npm run build- これにより
next buildが実行され、静的ファイルがdocs/ディレクトリに出力されます。 - ビルド完了直後に
src/constants/fix-paths.tsが自動実行され、GitHub Pages 用のパス修正 (/appプレフィックスの付与) が行われます。
- これにより
- GitHub へのプッシュ:
ビルドされたdocs/ディレクトリを含め、変更をmainブランチにコミット・プッシュします。 - 公開:
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 ~) を推奨しています。
- 同時接続数: 無料枠では Realtime 機能の同時接続数に厳しい制限があり、文化祭当日に「リアルタイム更新が止まる」可能性があります。
- トラフィック量: ニュース内容やQ&Aが増えると無料枠では Egress の上限に到達する可能性があります。