mcpField
A
add-custom-domain

add-custom-domain

github.com/gotempshクラウド・DevOps87649 回インストール今日更新
リポジトリ

add-custom-domain について

Temps CLI を使い、プロジェクトへのカスタムドメイン追加と DNS、HTTPS の設定を案内するスキルです。既存のイングレス トンネルで対応できるかも確認し、不要な証明書手順を避けます。

主な機能

  1. 01既存トンネルの対応状況確認
  2. 02DNS レコード設定の案内
  3. 03プロジェクトへのドメイン追加
  4. 04DNS-01 によるワイルドカード対応
  5. 05ドメイン状態の確認

活用シーン

  1. 01カスタムサブドメインをプロジェクトに割り当て
  2. 02ルートドメインやワイルドカードの設定
  3. 03保留中のままのドメインの調査

インストール

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

$npx skills add https://github.com/gotempsh/temps --skill add-custom-domain

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

詳細

カスタムドメインを追加する

Temps プロジェクトにカスタムドメインを追加して、HTTPS を自動で有効にします。このスキルでは CLI から一連の操作を実行します。ダッシュボードで同じ操作を行う場合は、Project → Domains → Add Domain を選択します。

使用するタイミング

ユーザーが、自動割り当てのサブドメインではなく、独自のドメイン(例:app.example.com)で Temps プロジェクトを公開し、SSL 証明書を利用したい場合に使用します。

前提条件

  • Temps CLI が認証済みであること。認証を確認し、必要に応じてユーザーのインスタンスにログインします(login はトップレベルのコマンドで、インスタンス URL は位置引数です)。
    bunx @temps-sdk/cli whoami || bunx @temps-sdk/cli login "<instance_url>"
    
  • 追加するドメインと、対象のプロジェクトをユーザーが把握していること。
  • ユーザーがドメインの DNS を編集できること(または、DNS-01/ワイルドカード用に Temps に DNS プロバイダーが接続されていること)。

トンネルですでにドメインがカバーされていますか?

アプリがイングレス・トンネルを備えたワーカー(ADR 058)上で実行されている場合、そのドメインに DNS レコードも証明書も必要ありません。Temps がレコードを作成し、トンネルのプロバイダーが HTTPS を提供します。ほかの操作を行う前に確認してください。

bunx @temps-sdk/cli tunnels list --json
bunx @temps-sdk/cli tunnels explain app.example.com --json

explain の candidates にトンネルが表示されている場合(トンネルの domain が example.com または対象ドメインの親ドメインの場合):

  1. ドメインを環境にアタッチします(下記の手順 3 と同じコマンドです)。このドメインの証明書は作成しないでください。トンネルのトラフィックはプレーンな HTTP として Temps に届き、ローカル証明書があるとプロキシによって HTTPS にリダイレクトされます。
  2. トンネルが指定されたドメインのみを公開している場合、または複数のトンネルが対象ドメインをカバーしている場合は、明示的にルーティングします。
    bunx @temps-sdk/cli tunnels route app.example.com --tunnel <tunnel-id>
    
  3. 1 分以内に tunnels explain app.example.com が published を報告するはずです。そうでない場合は、detail に対処方法が示されます(よくある原因は、まだワーカー上で対象ドメインを提供するデプロイ済みアプリがないことです)。

Cloudflare の無料証明書はゾーンとその1 階層下をカバーします。app.example.com は使用できますが、a.b.example.com には高度な証明書が必要です。

まだトンネルがなく、接続済みの Cloudflare DNS プロバイダーにドメインがゾーンとして登録されていて、ユーザーがトンネルを利用したい場合は、対象ドメインを処理するワーカー上に作成します(各ワーカーでイングレスを許可する必要があります:temps agent ingress delegated)。

bunx @temps-sdk/cli dns-providers list --json   # the Cloudflare provider id
bunx @temps-sdk/cli tunnels workers --json      # worker ids
bunx @temps-sdk/cli tunnels create --name example-com --dns-provider <id> \
  --domain example.com --node <worker-id> [<worker-id>...]

それ以外の場合は、証明書の手順を使用します。

手順

  1. プロジェクトを特定します。 ユーザーからプロジェクト名だけが伝えられ、ID が不明な場合は、プロジェクトを一覧表示して特定します。

    bunx @temps-sdk/cli projects list --json
    

    対象プロジェクトの数値の id を確認します。以下では <project-id> として使用します。

  2. DNS レコードを作成します。 ユーザーの DNS プロバイダーで、ドメインが Temps サーバーを指すように設定します。ユーザーが追加する内容を正確に伝えてください(Temps に DNS プロバイダーが接続されていない限り、代わりに作成することはできません)。

    • サブドメイン(app.example.com):A レコードを作成し、名前を app、値をサーバーのパブリック IP にします。サーバーのホスト名を指す CNAME も使用できます。
    • アペックスドメイン(example.com):A レコードを作成し、名前を @、値をサーバーの IP にします。(ゾーンのルートでは CNAME を使用できません。)
    • ユーザーが Cloudflare を利用している場合、発行中はレコードを DNS only(グレーの雲)に設定してもらいます。これにより、Temps の Let's Encrypt チャレンジがプロキシ経由にならないようにします。
  3. プロジェクトにドメインを追加します。 デフォルトでは HTTP-01 チャレンジが使用され、自動的に処理されます。

    bunx @temps-sdk/cli custom-domains create --project-id <project-id> -d app.example.com -y
    
    • アペックスドメインで、Cloudflare/別のプロバイダーが接続済みの場合、またはポート 80 に到達できない場合: 代わりに DNS-01 を使用します(下記の「ワイルドカード」を参照)。事前に Settings → DNS Providers で DNS プロバイダーが接続されていることを確認してください。
  4. ワイルドカードドメイン(*.example.com)には DNS-01 と接続済みの DNS プロバイダーが必要です。プロバイダーが接続されていることを確認し、同じ方法でワイルドカードを追加します。

    bunx @temps-sdk/cli custom-domains create --project-id <project-id> -d "*.example.com" -y
    

    Temps はプロバイダー経由で _acme-challenge TXT レコードを自動的に作成します。

確認

bunx @temps-sdk/cli custom-domains list --project-id <project-id>

DNS の伝播と証明書の発行が完了すると、ドメインのステータスが active に変わります(HTTP-01 の場合、通常 1 分以内です)。DNS は次のコマンドで個別に確認できます。

dig +short app.example.com A

ドメインが pending のままの場合は、DNS レコードがサーバーを指していること、ポート 80 に到達できること(HTTP-01)、および Cloudflare を使用している場合は発行中にプロキシが無効になっていることを確認してください。証明書は、有効期限の約 30 日前に自動更新されます。

関連情報

  • ダッシュボードのパス:Project → Domains → Add Domain
  • ドキュメント:https://temps.sh/docs/add-a-custom-domain
  • CLI グループ:bunx @temps-sdk/cli custom-domains --help
  • トンネル:bunx @temps-sdk/cli tunnels --help。ダッシュボード:Domains → Add Domain では、対象の名前をカバーするトンネルがある場合、「Through tunnel …」が 表示されます。Cloudflare DNS プロバイダーからゾーンをインポートすると、 「Through Cloudflare Tunnel」が表示されます。
  • CLI の完全なリファレンス:temps-cli スキルで、440 以上あるすべての bunx @temps-sdk/cli コマンドを確認できます。

コメント