A status page you host yourself, running in minutes

It checks your services, alerts your team and shows your users what is going on. One container on your own server, no subscription.

Public status page: an active incident for the customer database above the Core platform group, with devopsowy.pl and mikr.us in one column next to their response time charts, and the nightly backup job as a full card with its uptime Public status page: an active incident for the customer database above the Core platform group, with devopsowy.pl and mikr.us in one column next to their response time charts, and the nightly backup job as a full card with its uptime

Four things it does for you

Watches your services

  • HTTPS, ping, TCP, DNS, PostgreSQL, MySQL, MongoDB, SQL Server, Docker and incoming webhooks
  • Dependencies: one failure, one alert
  • Warnings before a TLS certificate expires
Monitor list with type, interval and status. The customer database is down with a major incident open, and Orders API shows Down · incident, the status visitors see Monitor list with type, interval and status. The customer database is down with a major incident open, and Orders API shows Down · incident, the status visitors see

Wakes the right person

  • Email, Slack, Microsoft Teams, Discord, Telegram and webhooks
  • Quiet hours, failure thresholds and a rate cap
  • One-off and recurring maintenance windows that stay silent
  • Actions: call a URL when a monitor goes down, with an optional approval
Editing the on-call e-mail channel: the standard subject and body on the Monitor tab, with the alert hygiene options for quiet hours, a rate cap and grouped bursts beside it Editing the on-call e-mail channel: the standard subject and body on the Monitor tab, with the alert hygiene options for quiet hours, a rate cap and grouped bursts beside it

Keeps your users in the loop

  • Drag-and-drop page builder, no CSS required
  • Incident updates that appear without a refresh
  • Subscriptions by email, Slack, webhook and RSS
  • Incidents opened for you when a monitor stays down
Page builder with blocks on a three-column grid and the mikr.us chart selected, its settings open beside the canvas Page builder with blocks on a three-column grid and the mikr.us chart selected, its settings open beside the canvas

Ready for business

  • Single sign-on (Entra ID, Keycloak, Okta)
  • An encrypted vault, or HashiCorp Vault, for passwords and tokens
  • An audit log of who changed what
  • A saved copy of the status page on S3 storage, for when your server is down
Audit log with an expanded entry: the mikr.us failure and recovery thresholds before and after the change Audit log with an expanded entry: the mikr.us failure and recovery thresholds before and after the change
Branding settings for the status page with a live preview next to the form: the site name, a text logo and the header, footer and uptime bar options Branding settings for the status page with a live preview next to the form: the site name, a text logo and the header, footer and uptime bar options

Looks like your company

  • Your logo, name and colours, plus your own CSS and favicon
  • Your own uptime thresholds for each colour of the uptime bar
  • A live preview of the page before you save
Notification delivery history: alerts per monitor and channel with the number of attempts, one failed after three tries and one held during quiet hours Notification delivery history: alerts per monitor and channel with the number of attempts, one failed after three tries and one held during quiet hours

Every alert leaves a trace

  • Every delivery attempt, with the error when one fails
  • A held alert shows why: quiet hours, the rate cap or a digest
  • Send a failed notification again with one click
Monitor page for mikr.us: response time chart, uptime bars, percentiles p50, p95 and p99, recent failed checks and the monitor configuration Monitor page for mikr.us: response time chart, uptime bars, percentiles p50, p95 and p99, recent failed checks and the monitor configuration

Every monitor, in detail

  • Response time chart with average, p95 and maximum for 24 hours to 90 days
  • Percentiles, uptime bars and the latest failed checks with their errors
  • Incidents with their time to recovery, next to the configuration
Importing YAML documents: two monitors to create and one to update, listed before anything is applied Importing YAML documents: two monitors to create and one to update, listed before anything is applied

Monitoring as code

  • Monitors and channels as YAML, identified by key
  • Check the file, see what would change, apply it all or not at all
  • API tokens with the permissions you pick, for scripts and CI/CD
  • Prometheus metrics for monitor status and response times, behind a read-only token
A HashiCorp Vault in the vault list with its secret references: the orders database login and two API keys A HashiCorp Vault in the vault list with its secret references: the orders database login and two API keys

Secrets stay in your vault

  • A built-in encrypted vault, or your HashiCorp Vault
  • Monitors and channels use a secret by reference, the value is never copied
  • Saved passwords and tokens are masked in the panel and in the API
Action history: a database failover waits for approval with Approve and Reject buttons, two earlier runs succeeded Action history: a database failover waits for approval with Approve and Reject buttons, two earlier runs succeeded

Fixes that wait for your approval

  • Call a URL when a monitor stays down or comes back, to start a failover or roll back a deployment
  • Turn on approval and the run waits until an administrator approves or rejects it
  • Your channels hear when a run waits, fails or succeeds, and every decision is in the audit log

You pay for the server, not for a subscription

How Better Status Page compares with the alternatives people usually look at first.

Feature comparison of Better Status Page, Statuspage and Instatus, Uptime Kuma and Gatus
Better Status Page Statuspage / Instatus Uptime Kuma Gatus
Price Free, MIT license Free tier, more in paid plans Free, MIT license Free, Apache 2.0 license
Self-hosted Yes No Yes Yes
Private status page (sign-in required) Yes Paid plans Not built in Whole dashboard only
Several status pages No Yes Yes No
Incidents with updates over time Yes Yes Pinned posts only Announcements only
Subscribers by email, RSS, Slack, webhook and API Yes Yes RSS only Not built in
Users, roles and single sign-on Yes Paid plans No No
Edited in a web interface Yes Yes Yes No, a YAML file
Status page stays up when the server is down Yes Yes No No
No limit on subscribers or monitors Yes Limited by plan Yes Yes

Based on public information, October 2026. Plans change, so check each vendor before you decide. Detailed comparison in the docs

Runs on your server

One container on your server. No Redis, queues or Kubernetes to run alongside it.

Deployment guide
# installs, generates secrets and starts it
curl -fsSL https://betterstatuspage.dev/install.sh | sh

Frequently asked questions

Can’t find your question?

Ask on GitHub
Is Better Status Page free?

Yes. The code is MIT licensed. You install it yourself and only pay for the server it runs on.

Will my team get buried in alerts?

No. An alert goes out only after several failed checks in a row. Quiet hours and an hourly cap keep the phone silent, and when many monitors fail at once your team gets one digest. If the API fails because of the database, you get one alert, not two.

How do users find out about an outage?

They follow your page by email, RSS or Atom, Slack or webhook, and get every incident update you post. Anyone who has the page open sees changes live, without a refresh.

Do I have to write incidents by hand?

No. A monitor can open an incident by itself once it has been down for as long as you set, and resolve it when the service is back. You choose whether it appears as a draft that you publish, or goes public at once. The wording comes from a template.

What about planned maintenance?

Schedule a maintenance window. Your users see a banner on the status page, and your team gets no alerts while the work is under way.

Can I use my own domain and branding?

Yes. You set the logo, colours, favicon, custom CSS and dark mode. Point your domain at your server.

Which languages does the status page support?

English and Polish are built in, and you can add your own translations.

Your own instance for 5 minutes

Filled with 90 days of data. No sign-up, and everything is deleted when the time is up.

Start the demo