Welcome to LaunchVerseQuickstartDashboard OverviewImporting Projects
Deployment GuideEnvironment VariablesLaunchverse ForgePreview EnvironmentsEnvironment Variable VersioningRollback & PromoteHow Builds Work (Forge)
Helix CopilotEphemeral SandboxesAI Log Explainer
The LaunchVerse EdgeCustom Domains & TLSDomain PurchasingTwo-Factor Authentication (TOTP)IP Allowlists
Managed DatabasesScale to ZeroLog DrainsDatabase Backups & Point-in-Time RecoveryObservabilityWeb Analytics & Traffic Tracking
Project GroupsRole-Based Access Control (RBAC)
Student ProgramDeveloper Streaks
API Reference
Changelog
SDKsHelix Gateway SDK
Web Shell
API Reference (Redoc)

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

  1. Open Project Settings → Domains.
  2. Enter the domain, e.g. api.mycompany.com or mycompany.com.
  3. Click Add Domain.
  4. Copy the DNS records shown in the dashboard.
  5. Create them at your registrar or DNS provider.
  6. Return to the dashboard and click Verify. The domain status changes from pending → syncing → synced.

DNS records

Domain typeRecordValue
Subdomain (api.example.com)CNAMEThe platform CNAME target shown in the dashboard
Apex (example.com)AThe Launchverse Anycast IP shown in the dashboard
Apex with CNAME flatteningCNAMEAllowed on Cloudflare and a few other providers

[!IMPORTANT] Do not create both an A and a CNAME for the same name. Apex domains that do not support CNAME flattening must use an A record.

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 the A record instead.
Edit this page on GitHub↗