Skip to content

Custom domains

Serve your status page from your own hostname — status.example.com — with a certificate that issues and renews on its own. Available on every plan.

Last updated

Every status page is reachable at a *.statusowl.app subdomain by default. Most teams want it on their own domain instead: status.example.com, not acme.statusowl.app.

Custom domains are available on every plan, including Free. Certificates issue and renew automatically through Cloudflare for SaaS. There is nothing to upload, nothing to rotate, and no expiry to track on your side.

The default subdomain

When you create a page it is immediately live at:

text
https://{your-subdomain}.statusowl.app

Change the subdomain any time in Status Pages → [your page] → Settings. It keeps working after you add a custom domain — both URLs serve the same page, so you can move at your own pace.

.app for pages, .net for everything else

The marketing site and the dashboard are on statusowl.net. Status pages are on statusowl.app. Don't mix them up when sharing links.

Adding a custom domain

Open the status page's detail view and find the Custom Domain card. Enter the hostname you want and click Add domain.

The card then walks you through the records in stages, showing only the one you need to publish next and clearing it once it is verified. Each has a copy button:

  1. Ownership TXT — a name like _cf-custom-hostname.status.example.com with a value Cloudflare generates. This proves you control the hostname.

  2. CNAME — the record that actually routes traffic:

    text
    status.example.com  CNAME  status-pages.statusowl.app
    
  3. ACME TXT — a certificate-validation record, shown when Cloudflare asks for it during issuance.

The CNAME target is status-pages.statusowl.app

Nothing else. An earlier version of the StatusOwl website published pages.statusowl.net as the target — that value was wrong and broke setups. If you have it in your DNS from a previous attempt, replace it.

The card polls every 10 seconds; Check now forces an immediate re-check. Once the records resolve publicly, Cloudflare validates ownership, issues a certificate, and the card flips to verified. That is usually 1–5 minutes after the records are live.

Verification states

StateMeaning
UnsetNo custom domain configured. Only the *.statusowl.app subdomain is active.
PendingRecords are registered with Cloudflare. Waiting on DNS propagation and certificate validation.
VerifiedOwnership and TLS are both active. The page is live on your domain.
FailedCloudflare reported an error. The message is shown on the card verbatim — fix the DNS and click Check now.

When something goes wrong, the card shows Cloudflare's own error text rather than a generic "verification failed". It is usually enough to fix the problem without opening a ticket.

Apex domains

CNAME records are not allowed at the apex of a DNS zone. To serve the page at example.com directly, your DNS provider must support CNAME flattening or ALIAS records. Cloudflare, Route 53, DNSimple, DigitalOcean and Namecheap all support some form of it.

If yours does not, use a subdomain. status.example.com is the convention everyone follows anyway.

Already on Cloudflare?

Fully supported. Keep your zone proxied (orange cloud) if you want — Cloudflare detects the SaaS relationship and routes correctly. No zone settings to change, no proxying to disable.

Removing or moving a domain

  1. Open the status page's detail view.
  2. In the Custom Domain card, click Remove domain.
  3. Delete the TXT and CNAME records at your DNS provider.

Removal tears the hostname down on Cloudflare's side too, so the name is released rather than left claimed. The page reverts to its *.statusowl.app subdomain immediately.

To move to a different hostname, remove the old one first, then add the new one.

Each status page has exactly one custom domain. If you need several hostnames serving the same content, create separate pages or set up a redirect at your registrar.

Troubleshooting

Stuck pending. Confirm both records are publicly resolvable:

bash
dig TXT _cf-custom-hostname.status.example.com
dig CNAME status.example.com

The CNAME must resolve to status-pages.statusowl.app, directly or through your own Cloudflare proxy. Then click Check now.

Stuck on certificate issuance. Cloudflare is waiting on validation. It usually clears within a few minutes; past 15 minutes, remove and re-add the domain.

"Hostname already in use". The name is claimed by another Cloudflare account or another StatusOwl page. If you were testing on another platform, release the custom hostname there first.

DNS looks right but the dashboard disagrees. Propagation can lag, especially with a high TTL on the parent zone. Wait five to ten minutes. Also check the TXT record's name matches exactly — some providers silently append the zone name.

Security

  • TLS terminates at the Cloudflare edge with a certificate issued for your hostname.
  • Until the hostname reaches verified, the page is not served under it at all — an unverified domain cannot accidentally expose your page.
  • Custom domains are unique across StatusOwl; the same hostname cannot be attached to two pages.

See also