---
title: Custom domains
description: Serve your status page from your own domain, with a certificate issued automatically.
sidebar:
  label: Custom domains
---

{/* Source of truth: packages/shared/src/status-pages.ts — customDomain.
    Verification: packages/api/src/status-pages/application/
    verify-custom-domain.use-case.ts. Audit actions: CUSTOM_DOMAIN_REGISTERED /
    VERIFIED / CERT_ISSUING / ACTIVATED / FAILED / REMOVED in
    packages/shared/src/audit-logs.ts. Plan gate: customDomain in plans.ts. */}

By default a status page lives at `status.glowo.dev/<slug>`. A custom domain
puts it at `status.yourcompany.com` instead.

This is worth doing. During an incident people are already unsure what to trust,
and a page on your own domain is unmistakably yours.

:::note
Custom domains are plan-gated (`customDomain`). See
[Plans and limits](/billing/plans).
:::

## Setting one up

1. **Add the domain in Glowo**

    Enter the hostname you want to use, for example `status.yourcompany.com`.

2. **Create a CNAME**

    At your DNS provider, point that hostname at:

    ```
    status.glowo.dev
    ```

    Use a subdomain. A CNAME cannot live at the apex of a domain alongside the
    other records you need there.

3. **Verify**

    Trigger verification in Glowo. It checks that the CNAME resolves correctly.

    ```
    POST /status-pages/<id>/verify-domain
    ```

4. **Wait for the certificate**

    Once verified, a TLS certificate is issued and the domain activates. This is
    automatic and usually takes a few minutes.

## Lifecycle and auditing

Each stage is recorded in your [audit log](/organization/audit-log):
registered, verified, certificate issuing, activated, failed, removed. If a
domain is not working, that history tells you which stage it stopped at — which
is almost always faster than guessing.

## Automatic monitoring of the domain itself

Verifying a custom domain creates a monitor for it. This is deliberate: a status
page that is itself down during an outage is worse than not having one, and a
lapsed DNS record or certificate is exactly the kind of thing nobody notices
until the day it matters.

## Troubleshooting

| Symptom | Usual cause |
| --- | --- |
| Verification fails | The CNAME has not propagated yet, or points somewhere else. Check with `dig status.yourcompany.com CNAME`. |
| Certificate does not issue | A CAA record on your domain forbids the issuing CA. Check `dig yourcompany.com CAA`. |
| Works, then stops | The CNAME was changed or removed, often by an unrelated DNS cleanup. |

:::caution
Do not put a proxying CDN in front of the custom domain. The certificate is
issued for the hostname pointing at Glowo, and an intermediary that terminates
TLS itself will break it.
:::
