用途
Domain Management 技能用于管理 Railway 服务的域名,包括添加域名、生成 Railway 提供的域名、查看当前域名、获取服务 URL 以及移除域名。
何时使用
- 用户要求“添加域名”“生成域名”“获取 URL”
- 用户想要添加自定义域名
- 用户询问“我的服务的 URL 是什么”
- 用户想要移除域名
主要能力
添加 Railway 域名
生成 Railway 提供的域名(每个服务最多 1 个):
railway domain --json
针对特定服务:
railway domain --json --service backend
响应:返回生成的域名 URL。服务必须已有部署。
添加自定义域名
railway domain example.com --json
响应:返回所需的 DNS 记录:
{
"domain": "example.com",
"dnsRecords": [
{ "type": "CNAME", "host": "@", "value": "..." }
]
}
需告知用户将这些记录添加到其 DNS 提供商。
读取当前域名
使用 environment 技能查看已配置的域名,或直接查询:
query domains($envId: String!) {
environment(id: $envId) {
config(decryptVariables: false)
}
}
域名位于 config.services.<serviceId>.networking:
- serviceDomains - Railway 提供的域名
- customDomains - 用户提供的域名
移除域名
使用 environment 技能移除域名:
移除自定义域名:
{
"services": {
"<serviceId>": {
"networking": {
"customDomains": { "<domainId>": null }
}
}
}
}
移除 Railway 域名:
{
"services": {
"<serviceId>": {
"networking": {
"serviceDomains": { "<domainId>": null }
}
}
}
}
然后使用 environment 技能应用并提交变更。
CLI 选项
| 标志 | 描述 |
|---|---|
| [DOMAIN] | 要添加的自定义域名(省略则为 railway domain) |
| -p, --port <PORT> | 要连接的端口 |
| -s, --service <NAME> | 目标服务(默认为已链接的服务) |
| --json | JSON 输出 |
可组合性
- 读取域名:使用 environment 技能
- 移除域名:使用 environment 技能
- 应用移除:使用 environment 技能
- 检查服务:使用 service 技能
错误处理
- 未链接服务:No service linked. Use --service flag or run
railway serviceto select one. - 域名已存在:Service already has a railway-provided domain. Maximum 1 per service.
- 无部署:Service has no deployment. Deploy first with
railway up. - 无效域名:Invalid domain format. Use a valid domain like "example.com" or "api.example.com".
适用场景
适用于需要为 Railway 部署的服务配置访问地址、绑定自定义域名或清理域名的场景。
限制
- 每个服务最多只能有 1 个 Railway 提供的域名。
- 生成 Railway 域名要求服务必须已有部署。
- 查看和移除域名需依赖 environment 技能。
- 自定义域名需用户自行在 DNS 提供商处添加返回的 DNS 记录。