{"slug":"static-sites-domains","title":"Static Sites: Custom Domains","description":"Add your own domain to any static site. Custom domains with automatic TLS via Let's Encrypt are included on every plan, including Free.","section":"Features","url":"https://docs.danubedata.ro/static-sites-domains","markdown_url":"https://docs.danubedata.ro/static-sites-domains.md","breadcrumbs":[{"title":"Features","slug":null},{"title":"Static Sites","slug":"static-sites"},{"title":"Custom Domains","slug":"static-sites-domains"}],"headings":[{"level":1,"title":"Static Sites: Custom Domains","id":"static-sites-custom-domains"},{"level":2,"title":"Prerequisites","id":"prerequisites"},{"level":2,"title":"Domain limits","id":"domain-limits"},{"level":2,"title":"Adding a custom domain","id":"adding-a-custom-domain"},{"level":2,"title":"Step 1: Verify domain ownership","id":"step-1-verify-domain-ownership"},{"level":3,"title":"DNS TXT record","id":"dns-txt-record"},{"level":3,"title":"Verification statuses","id":"verification-statuses"},{"level":2,"title":"Step 2: Point your domain","id":"step-2-point-your-domain"},{"level":3,"title":"For subdomains (recommended)","id":"for-subdomains-recommended"},{"level":3,"title":"For root domains (apex)","id":"for-root-domains-apex"},{"level":2,"title":"Step 3: TLS certificate","id":"step-3-tls-certificate"},{"level":3,"title":"TLS statuses","id":"tls-statuses"},{"level":2,"title":"Setting a primary domain","id":"setting-a-primary-domain"},{"level":2,"title":"Removing a domain","id":"removing-a-domain"},{"level":2,"title":"Troubleshooting","id":"troubleshooting"},{"level":3,"title":"Verification keeps failing","id":"verification-keeps-failing"},{"level":3,"title":"TLS certificate not provisioning","id":"tls-certificate-not-provisioning"},{"level":3,"title":"Domain shows a certificate error","id":"domain-shows-a-certificate-error"},{"level":2,"title":"Next steps","id":"next-steps"}],"format":"markdown","word_count":584,"content":"# Static Sites: Custom Domains\n\nAdd your own domain to any static site. Custom domains with automatic TLS via Let's Encrypt are included on every plan, including Free.\n\n## Prerequisites\n\n- A deployed static site\n- Access to your domain's DNS settings\n\n## Domain limits\n\n| Plan | Custom domains per site |\n|------|------------------------|\n| **Free** | 2 |\n| **Starter** | 10 |\n| **Pro** | 50 |\n\n## Adding a custom domain\n\n1. Navigate to your site detail page\n2. Click the **Domains** tab\n3. Click **Add Domain**\n4. Enter your domain (e.g., `www.example.com`)\n\n## Step 1: Verify domain ownership\n\nAfter adding a domain, you must verify ownership by adding a DNS TXT record at your DNS provider.\n\n### DNS TXT record\n\n| Field | Value |\n|-------|-------|\n| **Record type** | TXT |\n| **Name / Host** | `_danubedata-verify.your-domain.com` |\n| **Value** | The verification token shown in the dashboard |\n| **TTL** | 300 (or your provider's default) |\n\nOnce the record is in place, click **Verify** in the dashboard. DNS propagation typically takes a few minutes but can take up to 24 hours.\n\n### Verification statuses\n\n| Status | Description |\n|--------|-------------|\n| **Pending** | Awaiting DNS TXT record |\n| **Verifying** | DNS lookup in progress |\n| **Verified** | Ownership confirmed |\n| **Failed** | TXT record not found — check your DNS settings and retry |\n\n## Step 2: Point your domain\n\nAfter verification, create a DNS record pointing your domain to the static site.\n\n### For subdomains (recommended)\n\nCreate a CNAME record:\n\n```\nwww.example.com  CNAME  {slug}.pages.danubedata.ro\n```\n\n### For root domains (apex)\n\nRoot domains (`example.com` without `www`) cannot use CNAME records. Depending on your DNS provider:\n\n- **Cloudflare** — Use a CNAME with proxy enabled (flattened automatically)\n- **Route53** — Use an ALIAS record\n- **Other providers** — Check if your provider supports ALIAS, ANAME, or CNAME flattening\n\n## Step 3: TLS certificate\n\nOnce the CNAME (or equivalent) record is active, a TLS certificate is provisioned automatically via Let's Encrypt. This typically takes 1-2 minutes.\n\n### TLS statuses\n\n| Status | Description |\n|--------|-------------|\n| **Pending** | Awaiting certificate provisioning |\n| **Provisioning** | Let's Encrypt certificate being generated |\n| **Active** | HTTPS is active with a valid certificate |\n| **Failed** | Provisioning failed — ensure your DNS record is correct |\n\nCertificates renew automatically before expiration.\n\n## Setting a primary domain\n\nYou can designate any verified domain as the primary domain:\n\n1. Go to the **Domains** tab\n2. Click the **Set Primary** button next to the domain\n\nThe primary domain is used as the canonical URL for your site.\n\n## Removing a domain\n\n1. Go to the **Domains** tab\n2. Click **Delete** next to the domain you want to remove\n\nThe domain's routing and TLS certificate are cleaned up automatically.\n\n## Troubleshooting\n\n### Verification keeps failing\n\n- Confirm the TXT record name is exactly `_danubedata-verify.your-domain.com` (not just `_danubedata-verify`)\n- Some DNS providers automatically append the domain — in that case, enter only `_danubedata-verify` as the name\n- Use a DNS lookup tool to confirm the record is visible: `dig TXT _danubedata-verify.your-domain.com`\n- Wait for DNS propagation and retry\n\n### TLS certificate not provisioning\n\n- Ensure the CNAME record is active and resolves correctly\n- Check that no CAA records on your domain block Let's Encrypt (`letsencrypt.org`)\n- If using Cloudflare, ensure the proxy is enabled or use Full (Strict) SSL mode\n\n### Domain shows a certificate error\n\n- The TLS certificate may still be provisioning — check the TLS status in the dashboard\n- Clear your browser cache or try an incognito window\n- Verify the CNAME points to the correct `{slug}.pages.danubedata.ro` address\n\n## Next steps\n\n- [Static Sites overview](https://docs.danubedata.ro/static-sites) — Full feature reference\n- [Static Sites quick start](https://docs.danubedata.ro/static-sites-quickstart) — Deploy your first site\n- [Git deployments](https://docs.danubedata.ro/static-sites-git) — Webhooks and auto-deploy\n\n---\n\n**Questions?** Contact support at support@danubedata.ro\n","prev":{"title":"Build with AI","slug":"static-sites-ai","url":"https://docs.danubedata.ro/static-sites-ai","markdown_url":"https://docs.danubedata.ro/static-sites-ai.md","json_url":"https://docs.danubedata.ro/static-sites-ai.json"},"next":{"title":"Git Deployments","slug":"static-sites-git","url":"https://docs.danubedata.ro/static-sites-git","markdown_url":"https://docs.danubedata.ro/static-sites-git.md","json_url":"https://docs.danubedata.ro/static-sites-git.json"},"index_url":"https://docs.danubedata.ro/index.json"}