SysTeam/Docs/Status Pages

Status Pages

Create public status pages to communicate service status with your customers. Includes real-time status, incident history, uptime metrics, email subscriptions, status badges, and Atom feeds.

Public Status Page

A public status page showing service status, uptime metrics, and incident history

Overview

Status pages provide a public-facing view of your service health. Customers can check the status of your services without needing to contact support. Key features:

  • Public or private visibility
  • Custom URL slug (e.g., /status/your-company)
  • Company branding with logo
  • Real-time status updates
  • 24-hour uptime percentage per check
  • 14-day incident timeline
  • Email subscriptions for incident notifications
  • SVG status badges for embedding
  • Atom feed for RSS readers
  • Downloadable status report

Status Pages management

Manage your status pages with visibility controls, check assignments, and custom URLs

Creating a Status Page

  1. Go to Status Pages in the sidebar
  2. Click + New Status Page
  3. Configure the status page settings
  4. Select which checks to display
  5. Click Create

Example Configuration

Name:Acme Corp Status
Slug:acme-corp
Description:Current status of Acme Corp services
Visibility:Public
Logo URL:https://acme.com/logo.png
Checks:API, Website, Database

Status Page URL

Once created, your status page is accessible at:

https://your-domain.com/status/{slug}

# Example:
https://your-domain.com/status/acme-corp

Overall Status

The status page shows an overall status based on all included checks:

OperationalAll systems are running normally
DegradedSome systems have issues (DEGRADED or LATE status)
OutageOne or more systems are DOWN

Incident Timeline

The status page displays a 14-day incident timeline showing the recent history of all included checks. Each day shows:

  • Green bar — No incidents that day
  • Red bar — One or more DOWN incidents
  • Amber bar — DEGRADED incidents only
  • Gray bar — No data (check was paused or new)

Hover over any day's bar to see the incident details for that day.


Uptime Panel

Each check on the status page shows its 24-hour uptime percentage and current response time. This gives visitors a quick sense of service reliability.


Email Subscriptions

Visitors can subscribe to email notifications for your status page. When an incident occurs or resolves, subscribers automatically receive an email.

How It Works

  1. A visitor enters their email address in the subscribe form on your status page
  2. They receive a confirmation email with a verification link
  3. After clicking the link, they're subscribed to incident notifications
  4. When a check changes status (UP → DOWN, DOWN → UP, etc.), subscribers are notified
  5. Every notification email includes an unsubscribe link

Tip

Subscriptions use double opt-in (email confirmation required) to prevent spam and comply with email best practices. Unconfirmed subscriptions are automatically cleaned up.

What Subscribers Receive

  • Incident notifications — When a check goes DOWN or DEGRADED
  • Resolution notifications — When a check recovers to UP
  • Notifications include: check name, old status, new status, timestamp

Status Badges

Embed status badges in your README, documentation, or website to show current service status. Badges are SVG images rendered in the shields.io style.

Badge Types

BadgeURLShows
Status/api/badges/{uuid}Current status: UP (green), DOWN (red), DEGRADED (amber)
Uptime/api/badges/{uuid}/uptime24-hour uptime percentage (e.g., "99.95%")

Embedding

Embed codes are available on each check's detail page. Both Markdown and HTML formats are provided:

Markdown
![Status](https://your-domain.com/api/badges/abc-123-uuid)
![Uptime](https://your-domain.com/api/badges/abc-123-uuid/uptime)
HTML
<img src="https://your-domain.com/api/badges/abc-123-uuid" alt="Status" />
<img src="https://your-domain.com/api/badges/abc-123-uuid/uptime" alt="Uptime" />

Customization

Badges support query parameters for styling:

ParameterValuesDefault
styleflat, flat-squareflat

Badges are public and require no authentication. They are cached for a short period to reduce load.


Atom Feed

Every public status page has an Atom feed that RSS readers can subscribe to. This provides another way for your users to stay informed about incidents.

Feed URLs

FeedURLContent
Main Feed/api/status-pages/public/{slug}/feed.atomAll status changes and incidents
Incidents Feed/api/status-pages/public/{slug}/incidentsIncident history only

Add the Atom feed URL to any RSS reader (Feedly, Inoreader, Thunderbird, etc.) to receive updates automatically.


Custom Domains

Host your status page on your own domain (e.g., status.acme.com) instead of the default your-instance.com/status/slug URL.

Setup Steps

  1. Add a CNAME record pointing your subdomain to checks.systeam.pl (or your instance hostname)
  2. Add a TXT record for domain verification: _systeam-verify.status.acme.com with the verification token shown in settings
  3. In your status page settings, enter the custom domain and click Verify Domain
  4. Wait for DNS propagation (up to a few minutes)
  5. Click Check Status to confirm verification

DNS Records Example

TypeNameValue
CNAMEstatus.acme.comchecks.systeam.pl
TXT_systeam-verify.status.acme.comsysteam-verify-abc123...

Tip

TLS certificates are automatically provisioned via Let's Encrypt once the CNAME is verified. No manual certificate configuration is needed.

Verification States

StateMeaning
PendingDomain entered but DNS records not yet verified
VerifiedBoth CNAME and TXT records confirmed, custom domain is active
FailedDNS records not found or incorrect. Check your DNS configuration.

Public Report Download

Visitors can download a status report from your public status page. The report includes overall status, per-check uptime, and recent incident history. See the Reports page for more details.


Visibility Options

Public Status Pages

Accessible to anyone with the URL. No login required. Ideal for customer-facing status pages. Public pages also enable:

  • Email subscriptions
  • Atom feed
  • Public report download
  • Public API access

Private Status Pages

Require authentication. Use for internal team status pages or staging environments. Private pages are only visible to organization members.


Customization

Logo

Add your company logo URL to brand your status page. Recommended: height of 40-60 pixels.

Check Selection

Choose which checks to display. You can give checks different display names for the public page. For example, show "API" publicly while the internal check name is "Production API v2 - Load Balancer".

Best Practice

Group related services logically. Show "API" and "Website" but keep internal services like "Redis Cache" hidden from public view.


Managing Status Pages

Enable/Disable

Temporarily disable a status page without deleting it. Disabled pages return a 404 error.

Edit

Update the name, description, checks, or visibility settings at any time.

Delete

Permanently remove a status page and all its subscriber data. This cannot be undone.


Public API

Access status page data programmatically (no authentication required for public pages):

GET/api/status-pages/public/{slug}Status page data
GET/api/status-pages/public/{slug}/uptimeUptime data for all checks
POST/api/status-pages/public/{slug}/subscribeSubscribe to email notifications
GET/api/status-pages/public/{slug}/feed.atomAtom feed
Example: Status Page API Response
{
  "name": "Acme Corp Status",
  "description": "Current status of Acme Corp services",
  "logo_url": "https://acme.com/logo.png",
  "overall_status": "operational",
  "checks": [
    {
      "name": "API",
      "status": "UP",
      "response_time": 120,
      "uptime_24h": 99.98,
      "last_check": "2026-02-12T10:30:00Z"
    },
    {
      "name": "Website",
      "status": "UP",
      "response_time": 340,
      "uptime_24h": 100,
      "last_check": "2026-02-12T10:30:00Z"
    }
  ],
  "last_updated": "2026-02-12T10:30:00Z"
}

Next Steps