# 本番で設定する環境変数のテンプレート(★docs/deploy.md を先に読むこと★) # # ★このファイルに実値を書かないこと★(CLAUDE.md §9.3「認証情報を絶対にコミットしない」) # 実在のホスト名・ユーザー名・パスワード・トークンを書かない。 # コピーして .env.local を作り、実値はそちらに書く(.env.local は .gitignore 対象)。 # # ★開発用は .env.example(別ファイル)★。向きが逆になっている項目があるので注意: # .env.example は「ローカルで動くこと」優先、こちらは「本番で安全なこと」優先。 # # 検証: 値を埋めたら `npm run check:env` を実行し、エラーが出ないことを確認する。 # 実DBに接続する。★本番では必ず false★ # 未設定だと true になり(lib/db/use-fixtures.ts の `!== "false"`)、 # 実DBに繋がらないままサンプルデータを表示する。★例外もエラーも出ない事故★ USE_FIXTURES=false # TeamWorks構築のDB(★参照用アカウント★。本番は MariaDB 10.11 / D-100)。 # 未設定だと起動しても画面が全部エラーになる。 # ★パスワードに % や @ が含まれる場合は URL エンコードが必須★ DATABASE_URL="mysql://USER:PASSWORD@HOST:3306/DATABASE" # ★URL エンコードを避けたい場合は部品変数で書く★(lib/db/prisma.ts)。 # DATABASE_HOST と DATABASE_PASSWORD の両方があるとき、DATABASE_URL より優先される。 # ★`@` を含むパスワードは DATABASE_URL 側で壊れる実績がある★(`%40` が dotenv 展開で消える) # ため、本番ではこちらを推奨する。 # # ★DATABASE_HOST を使うなら DATABASE_USER と DATABASE_NAME は必須★(既定値は無い)。 # 実在のDBユーザー名をコードの既定値に書かない方針のため(CLAUDE.md §9.3 / コミット c832891)。 # 足りないと起動時に「どれが足りないか」を言って落ちる。★黙って別のDBに繋がることはない★。 # # DATABASE_HOST= # DATABASE_PORT=3306 # DATABASE_USER= # DATABASE_PASSWORD= # DATABASE_NAME= # 更新用アカウント(robot_error_reports の4カラム status / comment / responded_at / resolved_at の UPDATE だけに使う。 # lib/db/prisma.ts の getWritePrisma()。指示書AT §3-2) # ★2つとも未設定(空)なら、参照用アカウント(上の接続)で書く★。★片方だけだと書き込みが失敗する★ # (`npm run check:env` もエラーにする)。★4カラム以外には書かない★(CLAUDE.md §7)。 # ★接続先は参照用と同じDB★なので、使うときは DATABASE_HOST / DATABASE_PORT / DATABASE_NAME も必要 # (URL 形式は設けない。%40 が壊れる問題を持ち込まないため)。★実値はコミットしないこと★ DATABASE_WRITE_USER= DATABASE_WRITE_PASSWORD= # 簡易トークン認証の共有トークン(指示書I 段階1-2)。 # ★必ず変更すること★。未設定・空なら誰もログインできない(=全機能が使えない)。 # `changeme` のままだと `npm run check:env` がエラーで落ちる。 AUTH_TOKEN=changeme # 動作ログの出力レベル。未設定なら NODE_ENV から判定(本番は info) LOG_LEVEL=info # ★★ALLOW_DIRECT_ACCESS は本番では設定しないこと★★ # # nginx を通らない直接アクセスを素通りさせる開発専用スイッチ。 # 未設定なら false(拒否)。ローカル開発の .env.local にだけ書く。 # 設定すると `npm run check:env` が本番判定でエラーにする(検査2)。 # # ★行を消さずコメントのまま残してある★: # 完全に書かないと「知らずに設定してしまう」ため、 # 「設定するな」という指示として残すのが正しい。 # # ALLOW_DIRECT_ACCESS=true # --------------------------------------------------------------------------- # ★環境変数ではないもの(コードにあるのでデプロイが必要)★ # # ALLOWED_IPS / TRUSTED_PROXY_HOPS / ALLOW_ALL_WHEN_EMPTY # → lib/config/allowed-ips.ts # # この3つは「本番で意味のある値」なのでコードで管理し、レビューと履歴を残す。 # ★.env.local を直しても変わらない★。変更にはデプロイが必要(docs/deploy.md 項5)。 # ★本番では ALLOW_ALL_WHEN_EMPTY を false にし、ALLOWED_IPS を埋めること★