# --------------------------------------------------------------------------- # Caddy リバースプロキシ用の設定 # # cp .env.caddy.example .env.caddy # # 読み込むのは docker-compose.caddy.yml の caddy サービスだけ。 # ベースの .env とは意図的に分けてある — .env は maestro サービスの env_file # なので、Cloudflare のトークンをそちらに書くとエージェントが動くコンテナの # 環境変数に入り、Bash ツールから読めてしまう。 # # このファイル (.env.caddy) は .gitignore 済み。実際の値をコミットしないこと。 # # 【重要】使わないキーは「行ごとコメントアウトしたまま」にすること。 # NG: GATEWAY_HOSTNAME= ← 等号だけの空行。空文字が設定された扱いになる # OK: # GATEWAY_HOSTNAME=... ← 未設定。Caddyfile 側の既定値が効く # Caddyfile の既定値つき置換 ({$NAME:既定値}) は「未設定のとき」だけ既定値に # 落ちる。空文字を入れると空文字がそのまま入り、起動しない (GATEWAY_HOSTNAME) # か、黙って別の動きになる (GATEWAY_UPSTREAM_PORT は 80 番へ中継)。 # --------------------------------------------------------------------------- # --- Cloudflare ------------------------------------------------------------- # API トークン。ダッシュボードの My Profile → API Tokens → Create Token から # 「Custom token」で作る。権限は次の 2 つだけに絞ること: # Zone / Zone : Read # Zone / DNS : Edit # Zone Resources は対象のゾーン 1 つだけを選ぶ (All zones にしない)。 # Global API Key は使わない (アカウント全体の権限を持つため)。 # # これは必須のキーなので空の行のまま置いてある (上の「コメントアウトのまま」は # 使わないキーの話)。空のまま起動すると # `API token '' appears invalid` で止まるので、黙って進むことはない。 CLOUDFLARE_API_TOKEN= # --- ホスト名 --------------------------------------------------------------- # 下の 2 つは自分のドメインに必ず書き換えること (CHANGE-ME.example のままだと # 存在しない名前で証明書を要求し続ける)。 # # ワイルドカード証明書の対象。*.<この値> の証明書を 1 枚取る。 # 先頭のドットやアスタリスクは付けない。空文字にすると *. という成立しない # 名前で発行を要求し続ける (Caddy は警告を出さない)。 # 例: MAESTRO_BASE_DOMAIN=example.com → *.example.com # MAESTRO_BASE_DOMAIN=home.example.com → *.home.example.com MAESTRO_BASE_DOMAIN=CHANGE-ME.example # MAESTRO を出すホスト名。MAESTRO_BASE_DOMAIN の 1 つ下の階層にすること。 MAESTRO_HOSTNAME=maestro.CHANGE-ME.example # --- AAO ゲートウェイ (使っていないなら、下の 2 行はコメントアウトのまま) --- # ゲートウェイ (OpenAI 互換の中継口) も HTTPS で出す場合だけ、# を外して書く。 # コメントアウトしたままなら、この経路は無効のまま起動する。 # # 【注意】`GATEWAY_HOSTNAME=` と等号だけ書くと Caddy が起動しない # (module value cannot be null)。使わないなら # を外さないこと。 # MAESTRO_BASE_DOMAIN の 1 つ下の階層にすること。別ドメインや 2 階層下だと # 証明書もサイトの照合も覆わず、そのホスト名は無反応になる (警告は出ない)。 # GATEWAY_HOSTNAME=gateway.CHANGE-ME.example # ゲートウェイの待ち受けポート。config.yaml の gateway.listen_port を既定 # (4000) から変えている場合だけ、# を外して同じ値を書く。 # # 【注意】`GATEWAY_UPSTREAM_PORT=` と等号だけ書くと、エラーも警告も出ないまま # 80 番へ中継され、502 になる。既定のままなら # を外さないこと。 # GATEWAY_UPSTREAM_PORT=4000