# Status page custom domain

Your status page is served on a subdomain you own, such as `status.example.com`. You connect it in the console, add two DNS records at your DNS provider, and EvoHub issues and renews the TLS certificate for you. A status page goes live only once a domain is connected.

## Before you start

- Use a **subdomain**, such as `status.example.com`. Apex domains such as `example.com` are not supported.
- You need access to your domain's DNS settings to add CNAME records.
- Each status page has one custom domain.

## Connect a domain

:::steps
### Open the Domain tab
Open your status page in **Status Page** and select the **Domain** tab.

### Enter your domain
Under **Custom Domain**, type the subdomain in **Your domain**, for example `status.example.com`, and click **Connect domain**.

### Copy the DNS records
The console shows the records to add, each with a **Copy** button:

| Type | Name | Value |
|------|------|-------|
| `CNAME` | `_acme-challenge.status.example.com` | The validation value the console shows for your domain |
| `CNAME` | `status.example.com` | `cname.evohub-dns.com` |

### Add the validation record first
At your DNS provider, add the `_acme-challenge` CNAME exactly as the console shows it. This record lets EvoHub prove the domain is yours and issue its certificate.

### Then add the routing record
Once validation succeeds, add the CNAME from your subdomain to `cname.evohub-dns.com`. Adding the records in this order means visitors are never sent to the domain before its certificate is ready.

### Wait for it to go green
The status badge updates on its own while validation is in progress. You can also click **Re-check**. When it reads **Verified · SSL active**, click **View public page**.
:::

> [!TIP]
> If your domain's DNS is on Cloudflare with the proxy turned on, set Cloudflare's SSL/TLS mode to **Full**, not **Flexible**.

## Domain statuses

| Badge | Meaning |
|-------|---------|
| **Pending DNS** | The domain is connected in EvoHub, but it has not been validated yet. Check the DNS records. |
| **Validating** | The domain was accepted and the certificate is being validated and issued. |
| **Verified · SSL active** | The domain is live with a valid certificate. |
| **Action needed** | The domain was blocked or its certificate expired. Check that both records still match what the console shows and click **Re-check**. If it stays this way, remove the domain and connect it again, or contact info@evosync.io. |

DNS changes can take a while to spread, depending on your provider and the records' TTL. The console keeps checking while a domain is **Pending DNS** or **Validating**.

## TLS certificates

EvoHub issues the certificate for your domain automatically once validation succeeds, and renews it before it expires. Keep the `_acme-challenge` record in place so renewal keeps working. There is nothing to upload.

## Change or remove a domain

To move the page to a different domain, remove the current one and connect the new one.

To remove a domain, click **Remove domain** on the **Domain** tab and confirm. The page stops being served on that address. You can then delete the two CNAME records at your DNS provider.

Deleting a status page also removes its custom domain.

## Who can connect a domain

Connecting, re-checking and removing a domain needs `status:page:write`, which Owners, Admins and Members have.

## Related

- [Status pages](https://docs-dev.evohub.io/status-pages-overview.md)
- [Subscribers](https://docs-dev.evohub.io/subscribers.md)
- [Docs custom domain](https://docs-dev.evohub.io/docs-custom-domain.md)
