Custom domains
Connect your own hostname to a web service or static site with automatic DNS verification and HTTPS.
Add a custom domain to serve your application at an address such as app.example.com or example.com. Custom domains are available for web services and static sites.
You need access to the domain's DNS provider and a deployed service. Domain registration is separate from hosting on Openstead.
Add a hostname
- Open your service's Settings → Custom Domains section.
- Select Add Custom Domain.
- Enter the hostname without
https://, a port, or a path. - Add the DNS records shown by Openstead at your DNS provider.
Add every hostname separately. example.com and www.example.com are different hostnames. Openstead supports up to 20 custom hostnames per service; wildcard hostnames are not supported by this flow.
Publish the ownership record
Openstead displays a TXT record with a name such as _runivo-challenge.app.example.com and a generated value. Copy its exact value from the dashboard.
The TXT record proves that you control the hostname. Keep it in DNS. If your provider automatically appends example.com to record names, enter only the appropriate relative label, such as _runivo-challenge.app.
Point traffic to Openstead
For a subdomain, add the supplied CNAME record:
| Type | Name | Target |
|---|---|---|
| CNAME | app | The service target shown in Openstead |
For a root domain, use the displayed Root domain alternative A record:
| Type | Name | Target |
|---|---|---|
| A | @ | The IPv4 address shown for this service |
Use your actual dashboard values, not another service's hostname or IP. Remove conflicting A or AAAA records for the same hostname. There must not be an IPv6 route pointing somewhere else.
If your DNS provider proxies traffic, use DNS-only mode. See Cloudflare DNS for its exact record setup.
Wait for automatic verification
Openstead begins checking when you add the domain and retries automatically. The modal and domain list update as DNS and HTTPS checks finish. You can close the modal; the background verification continues.
Verify DNS requests another check, but repeatedly pressing it cannot make your DNS provider propagate records faster.
Domain verification and certificate issuance are separate steps:
- Openstead finds the expected ownership TXT record.
- The hostname resolves to the service's expected IPv4 destination without conflicting records.
- Openstead configures the route and obtains an HTTPS certificate.
- The domain is ready when verification and HTTPS are both complete.
Configure your application
After connecting the domain, update application settings that depend on its public URL. Examples include Laravel's APP_URL, Django's allowed hosts and CSRF origins, OAuth callback URLs, CORS allowlists, and transactional-email links.
DNS does not automatically configure redirects between an apex domain and www. Add the needed hostnames and configure any canonical-host redirect in the application or an appropriate routing rule.
Keep or disable the Openstead address
The generated Openstead address can remain enabled beside the custom domain. You can disable it after at least one custom domain has verified HTTPS.
If you later remove the last verified custom domain, first re-enable the Openstead subdomain so the service retains a usable public address.
Troubleshoot a pending domain
- Check the exact TXT name and value, including whether the DNS provider duplicated the zone name.
- Confirm the service is deployed and its target is current.
- Remove stale A or AAAA records and disable proxying.
- Check both
wwwand the root separately if both should work. - If DNS is verified but HTTPS is pending, follow HTTPS troubleshooting.
Deleting a domain in Openstead removes its route. It does not edit or delete records at your DNS provider.