{"slug":"custom-domains","title":"Custom Domains & DNS","description":"DanubeData lets you put your own domain in front of your Static Sites, Rapids (serverless) containers, and Managed Apps, with automatic TLS via Let's Encrypt. This page explains how to connect a custo...","section":"Features","url":"https://docs.danubedata.ro/custom-domains","markdown_url":"https://docs.danubedata.ro/custom-domains.md","breadcrumbs":[{"title":"Features","slug":null},{"title":"Networking","slug":"networking-overview"},{"title":"Custom Domains & DNS","slug":"custom-domains"}],"headings":[{"level":1,"title":"Custom Domains & DNS","id":"custom-domains-dns"},{"level":2,"title":"The short version","id":"the-short-version"},{"level":2,"title":"How domains connect","id":"how-domains-connect"},{"level":3,"title":"Subdomains (www, app, api, …)","id":"subdomains-www-app-api"},{"level":3,"title":"Root / apex domains (example.com)","id":"root-apex-domains-examplecom"},{"level":2,"title":"Action required: infrastructure migration","id":"action-required-infrastructure-migration"},{"level":3,"title":"How to check a domain","id":"how-to-check-a-domain"},{"level":3,"title":"Root domains that can't use ALIAS","id":"root-domains-that-cant-use-alias"},{"level":2,"title":"Troubleshooting","id":"troubleshooting"},{"level":2,"title":"Next steps","id":"next-steps"}],"format":"markdown","word_count":760,"content":"# Custom Domains & DNS\n\nDanubeData lets you put your own domain in front of your Static Sites, Rapids (serverless) containers, and Managed Apps, with automatic TLS via Let's Encrypt. This page explains how to connect a custom domain the durable way, and how to check whether an existing domain needs updating.\n\n## The short version\n\n- **Point your domain with a CNAME (for subdomains) or an ALIAS/ANAME record (for root domains) at your product's DanubeData hostname — not at a raw IP address.**\n- A hostname lets us move the underlying infrastructure without you ever touching your DNS again. A fixed **A record to an IP** ties your domain to one address, and it will stop working if that address ever changes.\n\n## How domains connect\n\nWhen you add a custom domain in the dashboard you complete two steps:\n\n1. **Verify ownership** — add the `_danubedata-verify` **TXT** record shown in your dashboard.\n2. **Route traffic** — point the domain at your product's DanubeData hostname.\n\nThe hostname to use depends on the product:\n\n| Product | Point your domain to | Detailed guide |\n|---|---|---|\n| **Static Sites** | `<your-site>.pages.danubedata.ro` | [Static Sites: Custom Domains](https://docs.danubedata.ro/static-sites-domains) |\n| **Rapids (serverless)** | `<your-container>-<team>.danubedata.run` | [Serverless Custom Domains](https://docs.danubedata.ro/serverless-domains) |\n| **Managed Apps** | the app's `*.apps.danubedata.ro` address shown in your dashboard | [Managed Apps](https://docs.danubedata.ro/managed-apps) |\n\nThe exact record for your specific domain is always shown in the dashboard **Domains** tab — that is the authoritative source.\n\n### Subdomains (www, app, api, …)\n\nCreate a **CNAME** record pointing at your product hostname:\n\n```\nwww.example.com   CNAME   your-site.pages.danubedata.ro\n```\n\n### Root / apex domains (example.com)\n\nRoot domains can't use a CNAME. Use an **ALIAS** or **ANAME** record instead — most modern DNS providers (Cloudflare, Route 53, DNSimple, deSEC, …) support one of these — pointing at the same product hostname:\n\n```\nexample.com   ALIAS   your-site.pages.danubedata.ro\n```\n\n- **Cloudflare** — a proxied CNAME on the root is flattened to an A/AAAA automatically, so it works too.\n- If your DNS provider does **not** support ALIAS/ANAME, [contact support](mailto:support@danubedata.ro) — we'll help you find a workaround.\n\n## Action required: infrastructure migration\n\n> **If a custom domain currently uses an A record pointing at a fixed IP address, please switch it to a CNAME or ALIAS as described above.**\n\nWe are migrating parts of our infrastructure, and the IP addresses that some older custom domains point to directly **will change**. Domains connected by CNAME or ALIAS to a DanubeData hostname are unaffected — they follow the move automatically. Domains hard-wired to an IP with an **A record** will go offline when the address changes unless they're updated first.\n\n### How to check a domain\n\nFor a subdomain, ask specifically for its CNAME record:\n\n```bash\ndig +short CNAME www.example.com\n```\n\n- If it returns the DanubeData hostname shown in your dashboard, **you're all set**.\n- If it returns nothing, check the record type in your DNS provider. Replace pinned A or AAAA records with the CNAME shown in the dashboard.\n\nFor a root / apex domain, public DNS normally exposes only the flattened A and AAAA answers. Those answers cannot prove whether your provider is using a durable ALIAS/ANAME or a pinned address. Check the record type in your DNS provider's dashboard and confirm it is an ALIAS, ANAME, or flattened CNAME pointing to the DanubeData hostname. The domain status in DanubeData can confirm that the public answers currently match, but it cannot distinguish those provider-side configurations.\n\n### Root domains that can't use ALIAS\n\nSome registrars only allow A records on the root of a domain. If that's your situation and you use your **apex** domain (for example `example.com` with no `www`), please [contact support](mailto:support@danubedata.ro) — these are migrated individually and are our top priority.\n\nWe're also reaching out to affected customers directly. If you're not sure whether one of your domains is affected, just ask and we'll check for you.\n\n## Troubleshooting\n\n- **Certificate error after switching** — the TLS certificate re-provisions automatically once the new record resolves, usually within 1–2 minutes. See your product's domain guide for TLS status details.\n- **Using Cloudflare** — for the initial switch, DNS-only mode (grey cloud) is the most predictable; you can re-enable the proxy afterwards.\n- **Change not taking effect** — DNS changes can take up to 24 hours to propagate, though they're usually much faster. Confirm with `dig +short your-domain.com`.\n\n## Next steps\n\n- [Static Sites: Custom Domains](https://docs.danubedata.ro/static-sites-domains)\n- [Serverless Custom Domains](https://docs.danubedata.ro/serverless-domains)\n- [Networking overview](https://docs.danubedata.ro/networking-overview)\n\n---\n\n**Questions?** Contact support at support@danubedata.ro\n","prev":{"title":"Network Peering","slug":"networking-peering","url":"https://docs.danubedata.ro/networking-peering","markdown_url":"https://docs.danubedata.ro/networking-peering.md","json_url":"https://docs.danubedata.ro/networking-peering.json"},"next":{"title":"Storage","slug":"storage-overview","url":"https://docs.danubedata.ro/storage-overview","markdown_url":"https://docs.danubedata.ro/storage-overview.md","json_url":"https://docs.danubedata.ro/storage-overview.json"},"index_url":"https://docs.danubedata.ro/index.json"}