Skip to content

Public status pages

A status page is a publicly accessible „are our services up?" page — typically status.customer.com. Vesana can generate one or more per tenant.

Concept

flowchart LR
    OS[Vesana data] --> SP[Status-page generator]
    SP --> URL["status.customer.com"]
    URL --> KU[End users / staff]

The page is read-only, logic stays in Vesana — only curated statuses are shown. No login, no internal detail.

Create a status page

/admin/status-pagesNew:

Field Meaning
Name „Acme Production Status"
Slug URL path: /status/acme-prod
Tenant source tenant
Branding logo, color, header text
Custom domain optional, e.g. status.acme.com
Components which hosts/services are shown
Display groups hierarchy like „Web", „API", „Email"

Component selection

Per component:

Field Meaning
Source service concrete host_service
Display name „API Endpoint Europe" (customer-friendly)
Group „Web", „API"
Visible status OK + hard cycles forwarded, others masked

Example: an internal CPU check shouldn't appear on the public page — only an aggregated „API reachable" status combining ping + HTTP.

Custom domain

  1. CNAME in DNS to <slug>.statuspages.vesana.org
  2. Enter custom domain in status page config
  3. Vesana requests Let's Encrypt cert (if available)

Until validation, the page runs under the slug path.

Branding

Field Meaning
Logo PNG/SVG, max 200 KB
Primary color hex
Header text optional greeting
Custom CSS Pro/Enterprise: own styles

Default branding is neutral gray, no Vesana marking — end customer sees nothing of the vendor.

Content

The page shows:

  • Current status per component (green/yellow/red)
  • Incidents in the last 90 days as a list
  • Planned maintenance (from downtimes)
  • Uptime statistic (90 d as pixel bar)
  • RSS feed (/status/<slug>/feed.xml)
  • Email subscription for incidents (optional)

Manual incidents

Some incidents aren't auto-detected (third-party outage, comms update). Manually:

Status page → Incidents → New with title, description (Markdown), current status (investigating, identified, monitoring, resolved).

Updates can be added — page shows a timeline.

Subscriptions

End users can subscribe via email — new incident triggers a mail. Management at /status/<slug>/subscribe.

Data lives in the same tenant, so isn't isolated from internal tenant.

RSS

https://status.acme.com/feed.xml for machine consumption (e.g. internal dashboard aggregating multiple status pages).

Privacy

Nothing on the status page contains:

  • Internal hostnames
  • IP addresses
  • Measurement values (only OK/WARN/CRIT)
  • Names of other tenants

If a component is accidentally too detailed, override the display name.

Permissions

Permission Effect
status_page.view view (internally)
status_page.edit edit
status_page.publish add / activate custom domain

Next