Skip to content

Domains

Each environment gets a vanity URL automatically. You can also add custom domains with automatically provisioned SSL certificates.

Every environment gets a vanity URL when created:

https://production-my-app.example.ske.dev

This URL works immediately after the first deployment with no configuration needed.

Terminal window
ske domain:add my-app.com --env production
✓ Domain added. Configure DNS to complete setup.
Record type: CNAME
Name: my-app.com
Value: production-my-app.example.ske.dev
Certificate status: pending

SKE provisions an SSL certificate and provides DNS records you need to add to your DNS provider.

After adding a domain, you need to configure DNS records with your DNS provider (Cloudflare, Route 53, Cloud DNS, etc.):

  1. Add the CNAME record SKE provides
  2. If using certificate validation (AWS), add the validation CNAME records
  3. Wait for DNS propagation and certificate issuance

SSL certificates are issued through AWS Certificate Manager (ACM) using DNS validation. ACM provisions the certificate and handles renewal automatically. You need to add the validation CNAME records to prove domain ownership.

Certificate lifecycle:

pending → validating → issued

On GCP, custom domains use a Global HTTPS Load Balancer with Certificate Manager. This requires enable_lb on the network:

Terminal window
# The network must have LB enabled
ske network:create --name my-network --provider gcp --enable-lb
# Then add the domain
ske domain:add my-app.com --env production

Certificate Manager handles provisioning and renewal.

Terminal window
# List domains for an environment
ske domain:list --env production
# Remove a domain
ske domain:delete my-app.com --env production
# Refresh certificate status
ske domain:refresh my-app.com --env production

An environment can have multiple custom domains. Each domain gets its own SSL certificate:

Terminal window
ske domain:add my-app.com --env production
ske domain:add www.my-app.com --env production
ske domain:add api.my-app.com --env production

If a certificate stays in pending or validating status:

  1. Verify the DNS records are correctly configured
  2. Check that CNAME records have propagated (dig CNAME my-app.com)
  3. Wait — certificate issuance can take up to 30 minutes after DNS propagation
  4. Run ske domain:refresh to force a status check