Custom domains

How a published status page is hosted - on a *.hep.gg slot or your own custom domain - with host routing and the one-host-one-page rule shared with Profiles.

Custom domains

A published status page is served on a host you mount it to, from the editor's Domain tab. You can use your Hep.gg subdomain slot (<slug>.hep.gg) or attach your own custom domain. Attaching and verifying a custom domain is a dashboard action behind your hep.gg session; this page documents the resulting public hosting behavior.

Picking a domain

The Domain tab shows a picker of the domains you own:

  • Your hep.gg subdomain (tagged hep.gg).
  • Any custom domains you've added to your account.

A quick Add a domain button jumps straight into the custom-domain wizard if you don't have one yet. Once a custom domain is added to your account it is usable by any Hep.gg app.

One host, one page

A given host serves either a profile or a status page, never both. If a domain is already mounted to one of your profiles or another status page, the picker locks it and shows which app holds it, so you can't double-book a host. Unmount it from the other page first to reuse it.

How host routing resolves a request

For any incoming request, Hep.gg resolves the host before bouncing unmatched custom domains back to hep.gg:

  1. A profile mounted to the host wins first (profiles and status pages never share a host).
  2. Otherwise the host is matched against status_pages.domain (case-insensitive). If a published page matches, it is rendered, and /status.json and /badge.svg are served on the same host.
  3. If nothing matches and the host is the hep.gg apex or another exempt root domain, the request falls through to the dashboard.
  4. If nothing matches on an unmatched custom domain, the request is redirected to hep.gg.

A page only renders when it is published (is_public), not suspended, and not expired - see visibility and availability.