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:
- Registers the domain against your deployment's ingress route
- Provides a CNAME target for your DNS configuration
- Periodically checks DNS propagation for verification
- 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
Go to the Domains tab
Open your deployment's detail page and click the Domains tab.
Enter your domain
Type your domain name (e.g., app.example.com) and click Add Domain.
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.
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:
| Status | Description |
|---|---|
| Pending | CNAME record not yet detected |
| Verified | Domain is active and routing traffic |
| Failed | Verification 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.