用途:为 Temps 项目绑定自有域名(如 app.example.com)并自动启用 HTTPS,替代系统自动分配的子域名。对应仪表盘中的 Project → Domains → Add Domain 操作。
前提:Temps CLI 已认证,可用 bunx @temps-sdk/cli whoami 检查,未登录则执行 bunx @temps-sdk/cli login "<instance_url>";用户需知道要添加的域名及所属项目,并能编辑该域名的 DNS(或在 Temps 中已连接 DNS 提供商以支持 DNS-01/通配符)。
主要步骤:
- 解析项目 ID:bunx @temps-sdk/cli projects list --json,记录目标项目的数字 id。
- 在 DNS 提供商处创建记录指向 Temps 服务器:子域名用 A 记录(name 为子域,value 为服务器公网 IP),CNAME 指向服务器主机名亦可;根域名用 A 记录(name 为 @)。Cloudflare 用户在签发期间需设为 DNS only(灰云),避免代理干扰 Let's Encrypt 验证。
- 添加域名,默认使用 HTTP-01 验证:bunx @temps-sdk/cli custom-domains create --project-id <project-id> -d app.example.com -y。
- 根域名配合已连接提供商、或 80 端口不可达时改用 DNS-01;通配符 *.example.com 必须使用 DNS-01 且需已连接 DNS 提供商,命令相同,Temps 会通过提供商自动创建 _acme-challenge TXT 记录。
验证:bunx @temps-sdk/cli custom-domains list --project-id <project-id>,DNS 生效并签发证书后状态变为 active(HTTP-01 通常一分钟内);可用 dig +short app.example.com A 独立确认。若长期 pending,检查 DNS 是否解析到服务器、80 端口是否可达、Cloudflare 代理是否关闭。证书在到期前约 30 天自动续期。
限制:DNS 记录需用户自行创建(除非 Temps 已连接 DNS 提供商);根域名不支持 CNAME;通配符依赖 DNS-01 与已连接提供商。相关文档见 https://temps.sh/docs/add-a-custom-domain,CLI 帮助见 bunx @temps-sdk/cli custom-domains --help。