Self-hosting
Status page
A public status page with components, incidents, maintenance windows and email subscribers, fed by the synthetic monitor.
Each tenant can publish a status page for its partners and advertisers. It is a page in the admin app that needs no login, backed by public API endpoints.
What it contains
- Components: the parts of your service you want to report on (for example Tracking, Reporting, Partner portal), each with a status. Manage them under Settings, Status page or
/status/components. - Incidents: open one with
POST /status/incidents(affected components change status), then post updates (investigating,identified,monitoring,resolved). Every update is emailed to subscribers. - Maintenance windows: scheduled windows (
/status/maintenance); a worker keeps the window clock and notifies subscribers. - Settings: title, description and whether the page is public (
/status/settings). - Subscribers: visitors subscribe with their email; the subscription is double opt-in (a confirmation link is emailed), every email carries an unsubscribe link, and staff can list and remove subscribers.
Where it is served
| URL | Content |
|---|---|
/status-public/<tenant> on the admin app | The human page. The alias default resolves to the tenant named by DT_STATUS_TENANT. |
GET /v1/status/public/{tenant} | The page as JSON, unauthenticated and cacheable. |
POST /v1/status/public/{tenant}/subscribe, GET .../confirm, GET .../unsubscribe | Subscription flow. |
Links in subscriber emails use DT_STATUS_PAGE_URL (default DT_PORTAL_BASE_URL). Set DT_STATUS_DISABLE=1 to turn the notification worker off.
Automatic incidents
If the synthetic canary fails DT_SYNTH_FAIL_AFTER times in a row for a region, an incident is opened on the canary tenant's page and resolved automatically after two consecutive successful probes. Staff can still add updates by hand. GET /status/synthetic shows recent and latest results per region.
Internal health
The authenticated GET /status/health (Settings, System health) is for operators: readiness of every service, consumer lag, postback outcomes and the latest synthetic run. It is not shown on the public page.