-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
115 lines (96 loc) · 7.36 KB
/
Copy path.env.example
File metadata and controls
115 lines (96 loc) · 7.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Docker Compose で起動する場合、これらの値は docker-compose.yml 側で
# 注入されるため .env.local は不要です。
# Docker を使わずローカルの Node で直接 `npm run dev` する場合のみ、
# このファイルをコピーして .env.local を作成し、値を設定してください。
# データの置き場(data/)に書き込むユーザー。docker-compose.yml の app がこの
# ユーザーで動く(既定 10001 = ホストに実在しない番号)。data/ をホストから
# 直接編集・書き戻ししたいときだけ `id -u` / `id -g` を設定する
# (合っていないと写真の保存に失敗する)。
#TRAVEL_LOG_UID=1000
#TRAVEL_LOG_GID=1000
# ローカル Postgres への接続文字列
DATABASE_URL=postgres://travel_log:travel_log@localhost:5432/travel_log
# セッションCookieの署名に使うシークレット。ランダムな文字列を設定してください。
# 生成例: openssl rand -base64 32
SESSION_SECRET=
# Googleでログイン(任意)。設定しない場合はメールログインのみ利用可能。
# 取得方法・リダイレクトURIの設定はREADMEの「Googleログインの設定」参照。
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# 公開URL(任意)。リバースプロキシ(HTTPS終端)の背後で動かす場合、プロキシが
# X-Forwarded-Proto/X-Forwarded-Host を送らない構成だと、Googleログインの
# リダイレクトURIが http:// で組まれて認証に失敗する。そのときだけ設定する。
# 未設定ならリクエストから自動導出する(lib/auth/request-url.ts)。
# PUBLIC_BASE_URL=https://travel.example.com
# 開発サーバ(npm run dev / docker-compose.dev.yml)をLAN内の別端末から開くときに
# 許可するホスト名・IP(カンマ区切り、ポートは書かない)。スマホの実機確認で必要。
# 未設定のまま別端末から開くと、/_next配下の開発用リソースがクロスオリジンとして
# 403になり画面が真っ白になる(next.config.tsのallowedDevOrigins)。本番では不要。
#
# **1つでも書いたらlocalhostと127.0.0.1も一緒に書くこと。** 設定した時点で
# 「ここに書いたものだけ」になり、開発機自身のブラウザから開いても同じように
# 真っ白になる(画面は200で返るのにJSが動かないため、原因が分かりにくい)。
# ALLOWED_DEV_ORIGINS=localhost,127.0.0.1,192.168.0.10,my-dev-host.example.lan
# 訪問記録の写真の保存先(lib/photoStorage.ts)。
# fs … ローカルのファイルシステム(既定)。Docker運用はこちら。
# docker-compose は ./photos を /app/photos にbindマウントする。
# supabase … Supabase Storage。永続ディスクを持てないホスト(Vercel等の
# サーバーレスや、ボリューム無しのコンテナホスト)向け。
PHOTO_STORAGE=fs
# PHOTO_STORAGE=fs のときの保存先ディレクトリ(未設定ならcwd直下のphotos)
# PHOTOS_DIR=
# 訪問記録エクスポートのZIPの置き場(未設定ならcwd直下のexports)。
# docker-compose は ./exports を /app/exports にbindマウントする。
# 写真と違いローカルFSのみ(Supabase Storageへの切り替えは持たない)
# EXPORTS_DIR=
# PHOTO_STORAGE=supabase のときに必須。Supabaseプロジェクトの
# Project Settings → API Keys から取得する。Secret key(sb_secret_... )は
# サーバー専用なので絶対にクライアントへ渡さないこと(NEXT_PUBLIC_ を付けない)。
# バケットは事前に「非公開(Public offにする)」で作成しておく。
# SUPABASE_URL は https://<project-ref>.supabase.co の形。<project-ref> は
# DATABASE_URL のユーザー名「postgres.●●●●」の後ろと同じ文字列(ダッシュボードの
# URL .../dashboard/project/●●●● でも読める)。画面で探すなら Integrations → Data API。
# SUPABASE_URL=https://xxxxxxxxxxxx.supabase.co
# SUPABASE_SECRET_KEY=sb_secret_xxxxxxxxxxxxxxxxxxxx
# SUPABASE_STORAGE_BUCKET=visit-photos
#
# 旧世代の service_role キー(JWT)しか無い既存プロジェクトでは、代わりに
# SUPABASE_SERVICE_ROLE_KEY に入れてもよい(SUPABASE_SECRET_KEY が優先)。
# レガシーキーは2026年末に廃止予定で、新規プロジェクトでは発行されない。
# SUPABASE_SERVICE_ROLE_KEY=
# --- 永続ディスクを持てないホスト(Vercel等のサーバーレス)向けの設定 ---
# 手順は docs/hosting-vercel-supabase.md 。Docker運用では**どれも未設定でよく**、
# 未設定のときの挙動は従来と同じ。
# 1インスタンスが張るDB接続数の上限(未設定なら pg の既定=10)。
# サーバーレスは関数インスタンスが同時に何本も立ち上がるため、接続プーラーの
# 枠を食い潰さないよう小さくする(Vercelでは3程度)
# PG_POOL_MAX=3
# 訪問記録への写真の添付を畳む(既定は有効)。保存先の容量が限られるホスト向け
# (Supabaseの無料プランはストレージ1GB)。falseにすると入力欄が出なくなり、APIも
# 写真つきの作成・更新を503で拒む。**既に保存された写真の閲覧は止めない**
# NEXT_PUBLIC_PHOTOS_ENABLED=false
# 訪問記録のZIPエクスポートを畳む(既定は有効)。生成がレスポンス後も走り続ける
# バックグラウンド処理で成果物もローカルFSに置くため、サーバーレスでは成立しない。
# falseにするとAPIは503を返し、管理画面もパネルを出さない(lib/exports-enabled.ts)
# NEXT_PUBLIC_EXPORTS_ENABLED=false
# 写真を含むPOSTの本文上限(バイト。未設定=制限なし)。訪問記録は写真をdata URLの
# ままJSONに載せて1回で送るため、リクエストボディに上限のあるホストでは枚数を
# 入れたときだけ413で弾かれる。設定すると収まる画質で書き出す(lib/visitPhoto.ts)
# NEXT_PUBLIC_MAX_UPLOAD_BYTES=4500000
# Googleでログインした人を一般ユーザーとして自動登録する(既定は登録しない)。
# **設定すると、URLを知っていてGoogleアカウントを持つ人は誰でも入れる。**
# 自分だけ・身内だけで使うインスタンスでは有効にしないこと
# (既定のままなら、新規アカウントは管理者が /[type]/admin から作成する)
# GOOGLE_AUTO_SIGNUP=true
# --- 周辺のAI探索(任意) ---
# 地図の右クリック/長押しメニューに「この周辺をAIで探す」(spot_admin/admin専用)を出す。
# AIへの中継は知識サーバー chiezo の /v1/ai/complete で、鍵はあちらが握る
# (このアプリはAPIキーを持たない)。未設定なら機能そのものが出ない。
# CHIEZO_BASE_URL=http://chiezo.example.lan:7010
# 中継先で使う相手の既定(chiezo の /v1/ai/backends に出る id。未設定なら antigravity)。
# 探索の画面の「AIの設定」で選ぶとそちらが優先される。web検索を持つ相手を選ぶこと。
# モデルと考える深さも同じ画面で選ぶ(速さはこの2つで数倍変わる)。
# CHIEZO_AI_BACKEND=codex
# AIの答えを待つ上限(秒。既定 180)。待たされた末に失敗するより早く諦めて
# 条件を変えるほうがよいので短くしてある。長い調査に使うときだけ伸ばす
# CHIEZO_AI_TIMEOUT_SECONDS=180