Custom domains
Connect your own domain, such as www.example.com, to an app and turn on HTTPS.
Open your app at your own domain, such as www.example.com, instead of my-app.ntro.run. A custom domain always shows the current production deployment, and Nitroship issues the HTTPS certificate for you.
Add the domain
ntro domains add www.example.com --app my-appSet up DNS
Add a record in the DNS settings of wherever your domain is managed (Cloudflare, Route 53, your registrar, and so on).
| Domain type | Record | Value |
|---|---|---|
Subdomain (www.example.com) | CNAME | via.nitroship.co |
Root domain (example.com) | ALIAS / ANAME, or CNAME flattening | via.nitroship.co |
A root domain cannot use a plain CNAME, so use your DNS provider's ALIAS, ANAME, or CNAME flattening feature. Do not enter a server IP address as an A record.
Wait for verification and the certificate
ntro domains verify www.example.com --app my-app --wait
ntro domains list --app my-appThe domain becomes active after two stages:
- Ownership verification: checks your DNS record to confirm the domain is yours.
- Certificate issuance: issues the HTTPS certificate separately.
--wait waits up to 10 minutes for the domain to become active or failed. domains list shows the DNS and certificate status together.
Verification not passing?
DNS changes take time to spread. Wait a little and run ntro domains verify again. Domains that are already active need no further verification.
Remove a domain
ntro domains remove www.example.com --app my-appIt asks for confirmation first. Add --yes in CI and scripts.
API reference: listing domains
GET /v1/apps/{appId}/domains returns the app's production address (my-app.ntro.run) and custom domains in registration order by default. Per-deployment revision URLs and Git branch URLs are left out; add includeRevisions=true if you need them. When results span several pages, pass the response's nextCursor as cursor in the next request.