zeabur-domain-url について
CLIでZeaburのドメインを管理する開発者向けのスキルです。URL変数、生成ドメインとカスタムドメインの設定に加え、Wonder Meshサービス固有の制約を説明します。
主な機能
- 01URL変数とドメイン変数の区別
- 02生成ドメインとカスタムドメインの作成
- 03ドメインの一覧表示と削除
- 04Wonder Meshのドメイン制約の説明
活用シーン
- 01URL末尾のスラッシュによるパス問題の回避
- 02Zeaburサービスの公開ドメイン設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zeabur/ agent-skills --skill zeabur-domain-urlインストール後、Claude Code で/zeabur-domain-urlを入力して読み込まれたか確認します。
詳細
Zeabur ドメイン URL の設定
Zeabur CLI の実行には、必ず
npx zeabur@latestを使用してください。zeaburを直接実行したり、ほかのインストール方法を使用したりしないでください。npxが利用できない場合は、先に Node.js をインストールしてください。
症状
- リダイレクト先の URL が間違っている(ドメインサフィックスがない、または末尾にスラッシュがある)
- URL の不一致による CORS エラー
${ZEABUR_WEB_URL}の末尾にスラッシュがあり、パスの問題が発生する
システム変数
| 変数 | 例 | 備考 |
|---|---|---|
ZEABUR_WEB_URL | https://app.zeabur.app/ | 末尾にスラッシュがあります |
ZEABUR_WEB_DOMAIN | app.zeabur.app | ドメインのみ。プロトコルは含みません |
解決方法
エントリーサービスの URL を、ほかのサービスから参照できるようにします。
- name: entry-service
domainKey: PUBLIC_DOMAIN
spec:
env:
APP_URL:
default: https://${ZEABUR_WEB_DOMAIN}
expose: true
- name: backend
spec:
env:
WEB_URL:
default: ${APP_URL}
末尾のスラッシュを避けるため、${ZEABUR_WEB_URL} ではなく https://${ZEABUR_WEB_DOMAIN} を使用してください。
CLI によるドメイン管理
ドメインを一覧表示する
npx zeabur@latest domain list --id <service-id> -i=false
生成ドメイン(*.zeabur.app)を作成する
-g を使うと、Zeabur 管理のサブドメインを作成できます。-g を指定した場合、--domain に指定するのはプレフィックスのみです(完全なドメイン名ではありません)。
npx zeabur@latest domain create --id <service-id> -g --domain myapp -y -i=false
# Suffix is auto-appended by backend based on region:
# Default: myapp.zeabur.app
# Aliyun (China): myapp.preview.aliyun-zeabur.cn
# Tencent (China): myapp.preview.tencent-zeabur.cn
# Huawei (China): myapp.preview.huawei-zeabur.cn
# China suffixes require completed identity verification on Zeabur.
生成ドメインのプレフィックスの検証ルール:
- 3 文字以上であること
- ドットは使用できません。英数字とハイフンのみ使用できます
- 3 文字未満の場合は
DOMAIN_NAME_TOO_SHORTエラーになります - プレフィックスにドットが含まれている場合は
UNSUPPORTED_DOMAIN_NAMEエラーになります
カスタムドメインを作成する
-g を指定しない場合、--domain には完全なドメイン名を指定します。
npx zeabur@latest domain create --id <service-id> --domain example.com -y -i=false
カスタムドメインを作成したら、zeabur-domain-dns スキルを使用して必要な DNS レコードを設定してください。専用サーバーの場合は、次のコマンドで IP アドレスを確認します。
npx zeabur@latest server list -i=false
# Note the IP address of the server running your service
続いて DNS プロバイダーで、次の設定を行います。
Type: A
Name: <your subdomain or @>
Value: <server IP from above>
DNS の値を推測しないでください。 DNS を設定する前に、必ず
server listの出力から実際のサーバー IP アドレスを取得してください。
ドメインを削除する
npx zeabur@latest domain delete --id <service-id> --domain <domain> -y -i=false
Wonder Mesh サーバー:WONDER_MESH_SERVER_REQUIRES_GATEWAY
Wonder Mesh プロバイダーのサーバーで実行されているサービスに、ドメインを直接バインドすることはできません。ドメインを作成するすべてのフロー(domain create、デプロイ時の自動ドメインバインド、テンプレートのデプロイ、PR プレビュー)は、次のエラーで拒否されることがあります。
Error: WONDER_MESH_SERVER_REQUIRES_GATEWAY
これは、サービスのポート設定やネットワーク設定の誤りではなく、CLI を再試行しても成功しません。アプリサービスにドメインを直接バインドすると、ドメインが永久に PROVISIONING の状態から進まなくなるため、バックエンドによってリクエストが拒否されます。これらのサービスのドメインは Wonder Mesh ゲートウェイを介して割り当てる必要がありますが、そのフローは Zeabur Dashboard でのみ利用できます。
このエラーが発生した場合:
- 停止してください。 同じ引数、別のフラグ、変更したポート設定、別のサービス ID を使う場合も含め、
domain createを再試行しないでください。 - ユーザーに Dashboard を案内してください。 Zeabur Dashboard でサービスを開き、Domains タブからドメインを設定するよう伝えてください。
- Dashboard が行う処理を説明してください。 Domains タブでは Wonder Mesh ゲートウェイのアタッチフローが実行され、ユーザーに代わって
wonder-mesh-gateway-{wonderNetID}プロジェクト内のapp-gatewayサービスにドメインがバインドされます。サポートされている方法はこれのみです。
次の操作は行わないでください。
- CLI または API から Wonder Mesh アプリサービスにドメインを直接バインドする
domain createを使って、自分でドメインをゲートウェイサービスにバインドする- CLI / MCP の「gateway attach」コマンドを使用する(そのようなコマンドはありません)
その他すべてのサーバー上のサービスには影響ありません。上記の生成ドメインおよびカスタムドメインのフローは、これまでどおり動作します。
注意
- 非対話モードでは
--domainが常に必須です。指定しない場合、CLI はINVALID_DOMAIN_NAMEを返します。 -gを指定する場合は、完全なmyapp.zeabur.appではなく、プレフィックスのみ(例:myapp)を指定してください。-gを指定しない場合は、完全なドメイン(例:example.com)を指定してください。