mcpField
C
caddy

caddy

github.com/muninn-huginnクラウド・DevOps074 回インストール38 週間前に更新
リポジトリ

caddy について

Caddy Admin APIを使ってローカル開発用のリバースプロキシを管理するスキルです。状態確認、ルートの登録・更新・削除の手順を扱います。

主な機能

  1. 01Caddyの状態とルートの確認
  2. 02名前付きlocalhostプロキシの登録
  3. 03空きポートの検索
  4. 04プロキシルートの更新と削除
  5. 05一般的な設定エラーへの対応

活用シーン

  1. 01名前付き.localhost URLでローカルプロジェクトを公開
  2. 02既存の開発用プロキシルートの確認
  3. 03プロキシのバックエンドポート変更
  4. 04停止中のCaddyサーバーの診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/muninn-huginn/caddy-skill --skill caddy

インストール後、Claude Code で/caddyを入力して読み込まれたか確認します。

詳細

Caddy ローカルプロキシマネージャー

localhost:2019 の Caddy Admin API を介して、ローカル開発用のリバースプロキシを管理します。

セッション名

プロキシを登録する際は、次のいずれかの方法を使用します。

  1. ユーザーが名前を指定:指定された名前をそのまま使用します
  2. コンテキストから生成:プロジェクトディレクトリ名 + 短いランダムなサフィックスを使用します(例:myapp-x7k2)

生成例:

NAME="$(basename "$PWD" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g')-$(head -c4 /dev/urandom | xxd -p | head -c4)"

クイックリファレンス

タスクコマンド
ステータスを確認curl -sf http://localhost:2019/config/
ルート一覧を表示curl -sf http://localhost:2019/config/apps/http/servers/local_proxies/routes
ルートを追加POST /config/apps/http/servers/local_proxies/routes
ルートを削除DELETE /id/proxy_<name>

ワークフロー

Caddy のステータスを確認
curl -sf http://localhost:2019/config/ 2>/dev/null

失敗した場合:「Caddy が起動していません。インストール:brew install caddy、起動:caddy start」

すべてのプロキシを一覧表示
curl -sf http://localhost:2019/config/apps/http/servers/local_proxies/routes 2>/dev/null

表形式で表示:名前 | URL | バックエンド

プロキシを登録
  1. 名前を取得または生成(ユーザーに尋ねるか、プロジェクト名 + ランダムな文字列から生成)

  2. 使用可能なポートを確認(指定されていない場合):

for port in $(seq 3000 3100); do
  lsof -i :$port > /dev/null 2>&1 || { echo $port; break; }
done
  1. 必要に応じてサーバーを初期化:
curl -sf http://localhost:2019/config/apps/http/servers/local_proxies > /dev/null 2>&1 || \
curl -sf -X POST http://localhost:2019/load \
  -H "Content-Type: application/json" \
  -d '{"apps":{"http":{"servers":{"local_proxies":{"listen":[":80"],"routes":[]}}}}}'
  1. ルートを追加(NAME と PORT を置き換えます):
curl -sf -X POST "http://localhost:2019/config/apps/http/servers/local_proxies/routes" \
  -H "Content-Type: application/json" \
  -d '{"@id":"proxy_NAME","match":[{"host":["NAME.localhost"]}],"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"localhost:PORT"}]}],"terminal":true}'
  1. 報告:「登録しました:http://NAME.localhost → localhost:PORT」
プロキシを削除
curl -sf -X DELETE "http://localhost:2019/id/proxy_NAME"
プロキシを更新

削除してから、新しいポートで再追加します。

ルート JSON の構造

{
  "@id": "proxy_<name>",
  "match": [{"host": ["<name>.localhost"]}],
  "handle": [{"handler": "reverse_proxy", "upstreams": [{"dial": "localhost:<port>"}]}],
  "terminal": true
}

エラー処理

エラー解決方法
Caddy が起動していないbrew install caddy && caddy start
ポート 80 が拒否されたsudo caddy start
ルートがすでに存在する更新するか、別の名前を選ぶようユーザーに尋ねます

プラットフォームに関する注意

  • macOS:*.localhost は自動的に 127.0.0.1 に解決されます
  • Linux:/etc/hosts のエントリが必要な場合があります

コメント