Newer
Older
client_dwatch / .env.production.example
# 本番で設定する環境変数のテンプレート(★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 を埋めること★