🌐 Cloudflare Named Tunnel セットアップ手順書¶
📁 docs/dev-environment/artifact/cloudflare-named-tunnel-setup.md
[!NOTE] Quick Tunnel(毎回URLがランダム)を Named Tunnel(固定サブドメイン)に移行するための手順書。 親Issue: #287
📋 前提条件¶
- Cloudflare アカウント登録済み
- ドメインを Cloudflare Registrar で取得済み(または既存ドメインを Cloudflare に移管済み)
- macOS(Apple Silicon)環境
🗺️ サブドメイン設計表¶
| サブドメイン | 用途 | ローカルポート |
|---|---|---|
gallery.<YOUR_DOMAIN> | イメージギャラリー | 8001 |
n8n.<YOUR_DOMAIN> | n8n ワークフロー自動化 | 5678 |
api.<YOUR_DOMAIN> | Webhook サーバー・汎用API | 8765 |
[!TIP] サービスを追加する場合は
projects/iac/cloudflare/config.ymlのingressセクションに追記し、Cloudflare Dashboard で CNAME レコードも追加する。
🚀 セットアップ手順¶
Step 1: cloudflared のインストール¶
Step 2: Cloudflare にログイン¶
ブラウザが開くので、Cloudflare アカウントでログインして認証する。
Step 3: Named Tunnel を作成¶
<TUNNEL_NAME> は任意の名前(例: mylab-tunnel)。
cloudflared tunnel create <TUNNEL_NAME>
# → Tunnel ID(UUID)が発行される
# → ~/.cloudflared/<TUNNEL_ID>.json が生成される(認証情報ファイル)
[!IMPORTANT] 発行された Tunnel ID をメモしておくこと。次のステップで使用する。
Step 4: 設定ファイルを配置¶
~/.cloudflared/config.yml を開き、以下を実際の値に書き換える:
| プレースホルダー | 置き換え先 |
|---|---|
<TUNNEL_ID> | Step 3 で発行された UUID |
<YOUR_DOMAIN> | 取得したドメイン(例: kzlab.dev) |
Step 5: DNS レコードを登録(サブドメインごとに実行)¶
cloudflared tunnel route dns <TUNNEL_NAME> gallery.<YOUR_DOMAIN>
cloudflared tunnel route dns <TUNNEL_NAME> n8n.<YOUR_DOMAIN>
cloudflared tunnel route dns <TUNNEL_NAME> api.<YOUR_DOMAIN>
[!NOTE] Cloudflare Dashboard → DNS タブで CNAME レコードが自動追加されていることを確認できる。
Step 6: 動作確認(フォアグラウンド実行)¶
ブラウザで https://gallery.<YOUR_DOMAIN> にアクセスしてローカルサービスが表示されることを確認。
Step 7: 常駐化(launchd サービス登録)¶
確認が取れたらバックグラウンド常駐に切り替える。
起動状態の確認:
停止・再起動:
🔧 よく使うコマンド¶
# トンネル一覧
cloudflared tunnel list
# ルーティング状況確認
cloudflared tunnel info <TUNNEL_NAME>
# ログ確認
tail -f /tmp/cloudflared.log
🐛 トラブルシューティング¶
| 症状 | 原因 | 対処 |
|---|---|---|
502 Bad Gateway | ローカルサービスが起動していない | 対象ポートのサービスを先に起動する |
ERR_CERT_COMMON_NAME_INVALID | DNS伝播が未完了 | 数分待ってから再アクセス |
credentials file not found | config.yml の credentials-file パスが間違い | ~/.cloudflared/<TUNNEL_ID>.json の存在を確認 |
📁 関連ファイル¶
| ファイル | 説明 |
|---|---|
projects/iac/cloudflare/config.yml | Named Tunnel 設定テンプレート |
~/.cloudflared/config.yml | 実際の設定ファイル(Git管理外) |
~/.cloudflared/<TUNNEL_ID>.json | Tunnel 認証情報(Git管理外・絶対に公開しない) |
~/.cloudflared/cert.pem | Cloudflare ログイン証明書 |