Docs · Configure
Custom domains
On a paid plan, add a domain on an environment’s Domains tab, then create the two DNS records it shows you: one that points the domain at homeport and one that proves it is yours. It goes live by itself once both resolve, usually within minutes, and its HTTPS certificate is issued for you.
Adding a domain
- Open the app, choose the environment (production, usually) and its Domains tab.
- Enter the domain, such as
shop.example.com, and choose Add domain. - Create the records it lists at your DNS provider (below). The domain shows as Pending until they resolve.
- When both are there, it changes to Active. The app keeps answering at its homeport.run address too.
The DNS records
For a subdomain, like shop.example.com or www.example.com:
| Type | Name | Value |
|---|---|---|
CNAME | shop.example.com | edge.homeport.run |
TXT | _homeport.shop.example.com | homeport-verify=… |
For a root domain, like example.com, where most DNS providers do not allow a CNAME: an A record for the domain, to the IP address the Domains tab shows, and the same TXT record.
- The
TXTvalue is unique to the domain and this app. Copy it from the Domains tab. Removing a domain and adding it again issues a new one. - Remove any
AAAArecord for the domain: a domain with an IPv6 address does not verify. - Behind Cloudflare, set the record to DNS only (grey cloud). A proxied record resolves to Cloudflare’s addresses rather than homeport’s, and does not verify.
HTTPS
Once a domain is Active, its certificate is issued from Let’s Encrypt on the first visit, and renewed for you. There is nothing to upload. The first request to a new domain can take a few seconds while that happens.
www and the root domain
example.com and www.example.com are two domains to homeport. To serve both, add both, each with its own records. homeport does not redirect one to the other.
Limits
| Plan | Custom domains for the team |
|---|---|
| Free | None |
| Starter | 10 |
| Growth | 50 |
| Business | 250 |
- An app can have up to 10 domains, and a domain belongs to one app.
- Names under
homeport.runcannot be added: every app already has one. - Removing a domain stops it answering for the app straight away. You can add it again, but its proof starts over.
Messages you may see
| Message | What it means |
|---|---|
Custom domains need a paid plan | Free has no custom domains. |
your plan has room for 10 custom domains | The team has as many domains as its plan allows. |
an app may have 10 domains | This app has 10 already. |
shop.example.com is already another app's | The domain is attached to a different app. |
"shop" isn't a domain | Enter a full domain name, without https:// or a path. |