LanguageGB
App Deployment

Use your own domain with an app (external DNS)

If your domain is registered or managed outside CM Cloud, you can still point it to your deployed app by creating a CNAME record in your DNS provider. This applies to PocketBase, Node.js, Python, Laravel, and static site deployments.

What this covers

When you buy an app hosting plan from CM Cloud, your app is automatically assigned a platform URL such as pb123o456.cmtestcloud123.biz (for PocketBase) or app123o456.cmtestcloud123.biz (for other runtimes). This URL always works. If you want visitors to reach your app at your own domain, you create a CNAME DNS record that points your domain to the platform URL. CM Cloud handles the proxying, nginx routing, and SSL on its end — you only need to manage the DNS record in your provider's control panel. Note: PocketBase is deployed at a pocketbase. subdomain of your root domain (e.g. pocketbase.yourdomain.com), not the root itself, so your main website at yourdomain.com stays untouched.

Before you start

Have your platform URL ready — it is shown on the service detail page in the portal after provisioning. Also have access to your domain's DNS control panel (Cloudflare, Namecheap, GoDaddy, Route 53, or any other provider). DNS changes can take up to 24 hours to propagate globally, though most providers complete within minutes.

How to do it

  1. Open your service in the portal and note the platform URL (e.g. pb123o456.cmtestcloud123.biz). This is the CNAME target you will point your domain to.
  2. For PocketBase: log in to your DNS provider and create a CNAME record with name pocketbase (giving you pocketbase.yourdomain.com) and value set to your platform URL. Do not use the root domain — pocketbase. prefix is required.
  3. For other runtimes (Node.js, Python, Laravel, static): create a CNAME record with the subdomain you want to use (e.g. app or www) pointing to your platform URL. If you want the root domain (yourdomain.com), create an ALIAS or ANAME record if your DNS provider supports it, or use a www redirect.
  4. To serve BOTH the apex and www from the same app, create two records pointing at the same platform URL: the apex as an ALIAS / ANAME / flattened CNAME (most providers refuse a plain CNAME at the root), and a normal CNAME with the name www. You do not need to tell us about the second one — CM Cloud already answers for the www↔apex counterpart of any custom domain you attach: the hostname you entered serves your app, and the other one 301-redirects to it, so visitors who type either form land in the right place and you keep a single canonical URL. If your DNS is with CM Cloud, both records are created for you. ⚠️ Do not delete the second record to "clean up" — that hostname then stops resolving entirely, which is worse than a redirect.
  5. If your DNS provider is Cloudflare: after creating the CNAME, ensure the SSL/TLS mode in your Cloudflare dashboard is set to Full (not Full (strict)). Go to SSL/TLS → Overview and select Full. Do not use Full (strict) — our server uses a self-signed certificate and Full (strict) requires a CA-issued certificate, which will cause a 526 error.
  6. If your DNS provider is not Cloudflare: just save the CNAME record. No SSL mode configuration is needed on your side — CM Cloud handles SSL termination automatically.
  7. Wait for DNS propagation. Use https://dnschecker.org to verify your CNAME is resolving correctly from multiple locations.
  8. Visit your custom domain to confirm the app loads. For PocketBase, also visit pocketbase.yourdomain.com/_/ to access the admin dashboard.
  9. Apex/root domains (example.com with no subdomain): most DNS providers don't allow a plain CNAME at the root. Use your provider's ALIAS / ANAME / CNAME-flattening record type pointing to your app's platform URL, or use a subdomain (e.g. app.example.com) which accepts a normal CNAME. Tip: if you register or transfer the domain to CM Cloud, apex setup is fully automatic — we create and manage the root record for you, including replacing an existing one.

What our team checks

Support verifies the CNAME target, nginx server_name alias, Cloudflare SSL mode (if applicable), and that the app process is running and reachable at the custom domain.

Next step

Open the service detail page to get your platform URL, then log in to your DNS provider and create the CNAME record as described.

Contact Support