Custom Domains

Map your own domain name to a running deployment.

Overview

By default, every deployment gets a URL like web-17628738.deployments.kovanetwork.com. Custom domains let you serve your deployment from your own domain (e.g., app.example.com) by configuring a CNAME record that points to the Kova ingress.

How It Works

When you add a custom domain, Kova:

  1. Registers the domain against your deployment's ingress route
  2. Provides a CNAME target for your DNS configuration
  3. Periodically checks DNS propagation for verification
  4. Routes traffic from the verified domain to your deployment's containers

Once verified, requests to your domain are routed to the same service that handles your default deployment URL.

Adding a Custom Domain

1

Go to the Domains tab

Open your deployment's detail page and click the Domains tab.

2

Enter your domain

Type your domain name (e.g., app.example.com) and click Add Domain.

3

Create a CNAME record

In your DNS provider's dashboard, create a CNAME record:

Type:   CNAME
Name:   app              (or your subdomain)
Target: web-17628738.deployments.kovanetwork.com

The exact target value is shown on the Domains tab after you add the domain.

4

Wait for verification

Kova checks your DNS record periodically. Once the CNAME resolves correctly, the status changes to Verified and traffic begins routing.

DNS Propagation

DNS changes can take up to 48 hours to propagate globally, though most providers update within minutes. The domain will show as "Pending" until verification completes.

Managing Domains

Viewing Domain Status

The Domains tab shows each custom domain along with its current status:

StatusDescription
PendingCNAME record not yet detected
VerifiedDomain is active and routing traffic
FailedVerification failed -- check your DNS configuration

Removing a Domain

Click the Remove button next to any domain to detach it from your deployment. Traffic to that domain will stop routing immediately, though cached DNS entries may take time to expire on the client side.

API Reference

Add a Custom Domain

curl -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "app.example.com"}' \
  https://app.kovanetwork.com/api/v1/deployments/:id/domains

Response:

{
  "success": true,
  "domain": {
    "id": "d-8a3f2c",
    "domain": "app.example.com",
    "status": "pending",
    "cnameTarget": "web-17628738.deployments.kovanetwork.com",
    "createdAt": "2026-02-10T14:30:00Z"
  }
}

List Domains

curl -H "Authorization: Bearer $TOKEN" \
  https://app.kovanetwork.com/api/v1/deployments/:id/domains

Remove a Domain

curl -X DELETE \
  -H "Authorization: Bearer $TOKEN" \
  https://app.kovanetwork.com/api/v1/deployments/:id/domains/:domainId

Root Domains

For root domains (e.g., example.com without a subdomain), some DNS providers require an ALIAS or ANAME record instead of CNAME. Check your provider's documentation for root domain support.