Custom Domains & TLS
Every project gets a free *.launchverse.app subdomain. For production, attach your own domain and Launchverse provisions a Let's Encrypt certificate automatically.
Add a domain in the UI
- Open Project Settings → Domains.
- Enter the domain, e.g.
api.mycompany.comormycompany.com. - Click Add Domain.
- Copy the DNS records shown in the dashboard.
- Create them at your registrar or DNS provider.
- Return to the dashboard and click Verify. The domain status changes from
pending→syncing→synced.
DNS records
| Domain type | Record | Value |
|---|---|---|
Subdomain (api.example.com) | CNAME | The platform CNAME target shown in the dashboard |
Apex (example.com) | A | The Launchverse Anycast IP shown in the dashboard |
| Apex with CNAME flattening | CNAME | Allowed on Cloudflare and a few other providers |
[!IMPORTANT] Do not create both an
Aand aCNAMEfor the same name. Apex domains that do not support CNAME flattening must use anArecord.
Wildcards
You can add a wildcard domain such as *.example.com. It must be verified by a TXT record. Wildcards cover all subdomains but not the apex.
Automatic TLS
Once DNS propagates and the domain is verified, Launchverse requests a Let's Encrypt certificate, installs it at the edge, and renews it automatically. No manual certificate upload is required.
API
List domains
GET /api/projects/{projectId}/domains
Add a domain
POST /api/projects/{projectId}/domains
{
"fqdn": "api.example.com"
}
Response:
{
"domain": {
"id": "uuid",
"fqdn": "api.example.com",
"sync_status": "pending",
"dns_records": [
{ "type": "CNAME", "name": "api", "value": "..." }
]
}
}
Verify DNS
POST /api/projects/{projectId}/domains/{domainId}/verify
Set primary domain
When multiple domains are attached, set the canonical one:
PATCH /api/projects/{projectId}/domains/{domainId}
{
"is_primary": true
}
Secondary domains then receive HTTP 308 permanent redirects to the primary.
Troubleshooting
- DNS not found — wait for propagation and click verify again.
- Certificate error — ensure the domain resolves to Launchverse and no conflicting proxy (e.g., Cloudflare in proxy mode) is intercepting traffic unless you intend that.
- Apex domain issues — if your DNS provider does not support apex
CNAME, use theArecord instead.