コンテンツにスキップ
Documents for MorningStatusApp
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

環境変数一覧

概要

コードベース(scripts/・lib/・app/)内で実際に参照されている環境変数を横断的に棚卸しした一覧。batch-design.mdx の各バッチ本文セクション(W・O の各節)にも環境変数テーブルが存在する。ただし、それらは個別バッチの実行に必要な変数のみを記載しており、バッチをまたいだ使われ方(同じ変数が複数バッチ・アプリ本体で共有されているか等)は分からない。本ドキュメントはその横断的な索引として、各変数が「どこで・どう使われているか」を一覧化する。

個別バッチの詳細な実行タイミング・処理フローは batch-design.mdx を参照。本ドキュメントは変数名・必須性・GitHub Actions への登録有無・参照元の一覧に留める。

分類

分類 説明
バッチ/ワークフロー用 GitHub Actions が scripts/workflow/ 配下のスクリプトに env: で渡す変数。batch-design.mdx の該当セクションに詳細記載あり
ローカル専用 コード上は機能するが、GitHub Actions の workflow_dispatch 入力や secrets/vars に配線されておらず、ローカル実行(.env.local 等)でのみ指定可能な変数
手動スクリプト用 scripts/console/・scripts/patch/ 配下のスクリプトがローカル実行時に参照する変数。GitHub Actions を介さない
アプリ実行時用 Vercel にデプロイされた Next.js アプリ本体(app/・lib/)が実行時に参照する変数。Vercel プロジェクトの環境変数として設定する

同一変数が複数分類にまたがる場合は、主たる用途の表に記載し、備考欄に他の参照元を注記する。

1. バッチ/ワークフロー用

変数名 GitHub Actions登録 必須 参照バッチ 備考
SEARCH_API_KEY Repository secret ○ W1 未設定時はドライラン
BLOB_READ_WRITE_TOKEN Repository secret ○ W1, W2, W4, W5, W7, W8, W10, W11, W14, O2 アプリ実行時(lib/blob.ts 等)にも使用
MEMBERS_BLOB_URL Repository secret ○ W1, W4, W5, W6, W8, W11, W12, W13, W14, W16, O3 アプリ実行時にも使用
OG_SYNC_WEEKDAYS Repository variable - W1, W4, W8 非機密な設定値のため variables に登録(#1347)
WEB_SEARCH_SYNC_WEEKDAYS Repository variable - W1 同上(#1347)
GITHUB_EVENT_NAME GitHub Actions デフォルト環境変数(自動注入) ○ W1 secrets/variables ではなく、すべてのステップに自動的に注入される組み込みの環境変数のため env: での明示的な受け渡しは不要。Ameba同期ステータスの定期実行/手動実行判定に使用(#1387)
DATABASE_URL Repository secret ○ W2, W3, W6, W7, W8, W9, W10, W11, W12, W13, O2, O3 アプリ実行時(lib/prisma.ts)にも使用。Prisma が内部で読むため、多くのバッチスクリプトは直接 process.env 参照しない
DISCOGRAPHY_STATUS_BLOB_URL Repository secret ○ W2, W16 /sync-status ページ表示用
YOUTUBE_API_KEY Repository secret - / ○ W2, W7, W8 W2 では未設定時スキップ、W7/W8 では必須
UNITS_BLOB_URL Repository secret ○ W2, W16, O3 ユニット照合・同ユニットエッジ生成に使用
REFETCH_MISSING_ARTIST_CREDITS workflow_dispatch 入力(refetch_artist_credits) - W2 secrets/variables ではなく手動実行時の入力値
RELEASES_BLOB_URL Repository secret - / ○ W10 GENIUS_LINKS_STATUS_BLOB_URL のフォールバック導出元
INSTAGRAM_AUTH_STATE Repository secret ○ W4 Playwright 認証状態(JSON文字列)
RAPIDAPI_KEY Repository secret ○ W5 未設定時はエラーで終了
GENIUS_ACCESS_TOKEN Repository secret ○ W10
GENIUS_LINKS_STATUS_BLOB_URL Repository secret - / ○ W10, W16 W10 では未設定時は RELEASES_BLOB_URL から導出、W16 では必須(導出しない)
TWITTERAPI_IO_KEY Repository secret ○ W11, W12
MORNING_ONAIR_MAX_PAGES ワークフロー内ハードコード("20") - W11 secrets/variables ではなく .github/workflows/collect-onair-morning.yml に直接記述

注意: MAIL_SERVER・MAIL_PORT・MAIL_USERNAME・MAIL_PASSWORD・MAIL_TO(W14 で使用)はコード上 process.env から直接参照されず、GitHub Actions のメール送信ステップ(dawidd6/action-send-mail)が直接使用するため、本ドキュメントの棚卸し対象(コード参照ベース)には含めない。詳細は W14「メール送信設定」を参照。

2. ローカル専用(GitHub Actions未配線)

変数名 必須 参照元 用途
REFETCH_ALL_SINGLES - scripts/workflow/sync-discography.ts 1 指定で全シングルの全エディションを強制再取得。W2 の workflow_dispatch 入力には未配線
DRY_RUN - scripts/patch/patch-blog-history-pubdates.ts 設定するとBlobへの書き込みをスキップし変更内容のみ表示
TWITTERAPI_IO_PAGE_INTERVAL_MS - scripts/lib/twitterapi-client.ts twitterapi.io のページ取得間隔(ミリ秒)を調整。W11/W12 が内部で使用するが未配線、デフォルト値で動作

3. 手動スクリプト用(scripts/console・scripts/patch)

変数名 必須 参照元 用途
APP_URL - scripts/patch/patch-*.ts(member-colors・instructor・leader-generations・member-joining-routes・member-nicknames)・scripts/patch/seed-ameba-sync-status.ts・app/api/members・app/api/link-editor・app/api/tracks/[id]/youtube-link(デスクトップモード時のみ、#1600) パッチ実行後・デスクトップモードでの編集保存後のキャッシュ再検証リクエスト送信先(app/api/revalidate のベースURL)
REVALIDATE_TOKEN - 同上 + app/api/revalidate/route.ts キャッシュ再検証APIの認証トークン。多くのバッチワークフローも同名の secret から curl で直接このAPIを呼び出す
GEOCODING_API_KEY ○ scripts/console/register-tour-festival.ts 会場ジオコーディング(Google Maps Geocoding API)用キー。O4(バッチ設計書)参照(#1519・#1520)

4. アプリ実行時用(Vercelデプロイ環境変数)

変数名 必須 参照元 用途
INSTAGRAM_DAILY_NEW_POSTS_BLOB_URL - lib/blob.ts Instagram新着投稿データのBlob URL
INSTAGRAM_SYNC_STATUS_BLOB_URL - lib/blob.ts Instagram同期状況データのBlob URL
DESKTOP_MODE - next.config.ts, app/**, desktop/*.ts 1 の場合デスクトップアプリ向け standalone ビルドとして動作。desktop/ 配下のビルド・起動スクリプトが自動設定
SECRET_MODE_PASSCODE - app/api/secret-mode/verify, lib/secret-mode.ts シークレットモードの合言葉。未設定の場合シークレットモードは常に無効(世代マトリックス データ設計書 §3)
LOG_LEVEL - lib/logger.ts ログ出力レベルの制御
NODE_ENV - lib/prisma.ts Node.js / Next.js 標準の実行環境変数(development / production 等)。Prisma クライアントの初期化分岐に使用

デスクトップモードとは: DESKTOP_MODE=1 が設定された状態で動作する、本アプリの実行モード。デスクトップアプリ版(desktop/、Electrobunでビルド)が起動時に自動設定し、Web版(Vercelデプロイ)では常に無効。このモードでのみ、運用者・開発者向けのデータ確認・訂正機能(例: 同期状況の確認 /sync-status、楽曲リンク修正 /link-editor、各種データの手動訂正フォーム)を画面・APIに表示・許可する。一般利用者向けのWeb版では露出しない。設計書でこのモードによるアクセス制御を記述する際は「デスクトップモードでのみ〜」の形式で統一する。notFound()/403等の実現方法は基本設計のレベルでは記述しない(#1521)。

シークレットモードとは: SECRET_MODE_PASSCODE に設定した合言葉を入力し認証されたブラウザセッションでのみ有効になる、本アプリのアクセスモード。デスクトップモードとは異なりビルド時に固定されるものではなく、Web版(Vercelデプロイ)上でも合言葉を知っていれば誰でも参照可能な非公開モードとして区別する。認証状態は署名付きCookie(secret_mode_session)で保持し、requireSecretMode()(lib/secret-mode.ts)で検証する(詳細 → 世代マトリックス データ設計書 §3)。対象画面はナビゲーションからリンクしない隠しルートとして扱う。設計書でこのモードによるアクセス制御を記述する際は「シークレットモードでのみ〜」の形式で統一する(デスクトップモードと同様の理由により、notFound()等の実現方法は基本設計のレベルでは記述しない)。

改訂履歴

版 更新日 変更内容
1.8 2026-09-29 【対応する実装: 実装時に追記(MorningStatusApp#1680)】PLAYLISTS_BLOB_URL・MEMBER_PLAYLIST_INDEX_BLOB_URL・TRACK_PLAYLIST_INDEX_BLOB_URLを削除。プレイリストデータをPlaylist/PlaylistEntry(Neon)へ移行し、派生インデックスのBlob経由生成が不要になったことに伴う(プレイリスト機能 データ設計書 §7)。あわせてRELEASES_BLOB_URL・BLOB_READ_WRITE_TOKEN・MEMBERS_BLOB_URLの参照バッチ一覧から、移行対象スクリプト(W3等)・既に欠番化済のO1を整理(MorningStatusApp#1677, morning-status-blume#166)
1.7 2026-09-27 バッチ/ワークフロー用のMEMBERS_BLOB_URL・PLAYLISTS_BLOB_URL・UNITS_BLOB_URL・DISCOGRAPHY_STATUS_BLOB_URL・GENIUS_LINKS_STATUS_BLOB_URLの参照バッチにW16(Blob URLシークレット診断バッチ)を追加(MorningStatusApp#1618)
1.6 2026-09-22 COMPARISON_INDEX_BLOB_URL・TRACK_COMPARISON_MAP_BLOB_URLを削除。対比機能を手動作成方式(Neon DB)へ再構築し、Blob経由のインデックスファイルが不要になったことに伴う(MorningStatusApp#1633, morning-status-blume#148)
1.5 2026-09-20 SECRET_MODE_PASSCODE(世代マトリックス機能のシークレットモード用合言葉)を追加。「シークレットモードとは」を新設し、デスクトップモードとは異なりランタイムのCookie認証で制御される点を明記(morning-status-blume#128)
1.4 2026-09-07 APP_URLの参照元にapp/api/members・app/api/link-editor・app/api/tracks/[id]/youtube-linkを追加。デスクトップモードでの編集保存後、本番Web側のキャッシュ破棄を呼ぶようになったことに伴う(MorningStatusApp#1600)
1.3 2026-08-25 「デスクトップモードとは」を追加。DESKTOP_MODE=1で動作する本アプリの実行モードを定義し、設計書間で揺れていたアクセス制御の記述形式(「デスクトップモード限定」「〜時のみ」等)を統一(#1521)
1.2 2026-08-19 GEOCODING_API_KEY(O4フェス・ツアー登録バッチ用、scripts/console/register-tour-festival.ts)を手動スクリプト用に追加(#1520)
1.1 2026-07-20 GITHUB_EVENT_NAME(W1、GitHub Actions 自動注入のワークフロー種別)を追加(#1387)
1.0 2026-07-20 初版作成。コードベース全体の環境変数32件を棚卸しし、バッチ/ワークフロー用・ローカル専用・手動スクリプト用・アプリ実行時用の4分類で一覧化(#1363)

このページは役に立ちましたか?