Search for articles...

Go to WebsiteControl Panel

How to Connect a Custom Domain on Granite

A quick guide to using your own domains on the Granite cloud platform.

Every app you deploy on Granite comes with a free platform subdomain (for example, your-app.novps.app). That's perfect for testing, but for anything you want to show to real users you'll want your own domain — something like app.your-company.com or your-company.com.

Granite connects custom domains through a standard CNAME record. You keep your domain wherever it's registered, add one DNS record that points to Granite, and the platform automatically issues an SSL certificate and starts serving your app on that address. No servers to configure, no certificates to renew manually.

This guide walks you through the whole process, one screen at a time.

Before you start

You'll need:

A running app on Granite.The domain gets attached to a specific resource, so deploy the app first if you haven't already.
A domain you already own, with access to its DNS settings (through your registrar or DNS provider — Cloudflare, Namecheap, GoDaddy, Porkbun, etc.).
Note: Granite doesn't sell domain registrations yet, so you'll bring your own. If your domain uses non-ASCII characters (Cyrillic, emoji, etc.), enter it in its Punycode form.


Step 1 — Open your application

From the Applications page, find the app you want to attach the domain to and click it. In this example we're using the kaneo web app.





Step 2 — Open the Settings tab

Inside the app, you'll see a row of tabs: Overview, Insights, Activity, Logs, Console, Settings. Click Settings.





Step 3 — Edit the Domain section

Scroll to the Domain row. It currently shows only your platform domain (…novps.app). Click Edit on the right.





Step 4 — Add a custom domain

The section expands to show your Platform domain and a Custom domains area. Click Add domain.





Step 5 — Enter your domain

On the Add domain to kaneo screen, type the domain or subdomain you want to use into the Domain or subdomain field — for example your-custom-domain.com or app.your-company.com.

The Add domain button stays disabled until you've entered a valid value.





Step 6 — Choose how DNS is managed

Once you've entered a domain, the Choose DNS management section appears with two options:

We manage your domaincoming soon.This will let Granite host your DNS for you.
You manage your domain— the current option. You keep your existing nameservers and add one DNS record yourself. Leave this selected.

Step 7 — Copy the CNAME alias

Granite shows you a CNAME Alias (something like cname-target.novps.app). This is the value your domain needs to point at. Click Copy to grab it.

Root domain vs. subdomain. Pointing a subdomain (like app.your-company.com) at a CNAME always works. Pointing a root/apex domain (like your-company.com) requires your DNS provider to support CNAME flattening, also known as ANAME or ALIAS records. Most modern providers (Cloudflare, Namecheap, Porkbun, DNSimple) support this; some older ones don't. Check your provider if you're using a root domain.




Step 8 — Create the CNAME record at your DNS provider

Go to your DNS provider and create a new CNAME record:

Name / Host: your subdomain (e.g.app), or @.for the root domain
Value / Target: the CNAME alias you copied from Granite (e.g. cname-target.novps.app)

Example: CNAME @ → cname-target.novps.app

Cloudflare users — read this If your DNS is on Cloudflare, you must set the CNAME record to DNS only (grey cloud), not Proxied (orange cloud). If the record stays proxied, Cloudflare intercepts the traffic, Granite never sees the real request, the TLS certificate can't be issued, and the domain will not work. Click the orange cloud icon on the record until it turns grey before saving.




Step 9 — Confirm on Granite

Back on the Add domain screen, click Add domain to save.





Step 10 — Wait while Granite verifies the record

Your custom domain now appears under Custom domains with a Not ready status and a spinner.





Not ready means Granite doesn't yet see a correct CNAME record for your domain. This is normal right after you add it — DNS changes take time to propagate, and Granite re-checks periodically.

Step 11 — Domain is ready

When the status turns into a green checkmark (Ready), Granite has detected the correct CNAME record and started connecting the domain — provisioning the SSL certificate and routing traffic to your app.







How long does it take?

On average, the domain is fully live within about 5 minutes of showing Ready.
In some cases it can take up to an hour for everything to finish propagating.

If it doesn't come up: If you've set the correct CNAME record but the domain stays unreachable for an extended time, contact Support — we'll take a look.

Quick recap

1.Open your app → Settings → Domain → Edit
2.Click Add domain, enter your domain, keep You manage your domain
3.Copy the CNAME alias
4.Create a CNAME record at your DNS provider pointing to that alias
1.Cloudflare: set it to DNS only
2.Root domains: your provider must support CNAME flattening / ANAME / ALIAS
5.Click Add domain and wait for the status to go from Not ready Ready

That's it — your app is now live on your own domain with automatic HTTPS.

Read also

Configuration parameters

Detailed description of resource configuration parameters

About Resources

Explaining resources in Granite Cloud Platform