Better Status PageDocs

Documentation

Run your own status page

Better Status Page is a self-hosted status page and uptime monitor. These guides cover installing it, keeping it running, and connecting it to the tools your team already uses.

MonitorsA monitor checks one thing on a schedule — a URL, a host, a DNS record, a database — or waits for your own service to call in. This guide covers every monitor type, the fields in the monitor form, authentication, certificate warnings, dependencies and the built-in test runner.Notification channelsNotification channels tell your team when a monitor goes down, degrades, recovers or has a TLS certificate about to expire. A channel is one destination — an email address, an HTTP endpoint, a Slack, Discord or Microsoft Teams webhook, a Telegram chat, an ntfy topic, a Pushover recipient — and you decide per monitor which channels it alerts.Alert hygieneThe most common reason people stop trusting a monitoring tool is that it alerts too much. One flapping endpoint, one bad deploy, one night shift — and the alert channel gets muted forever.ActionsAn action sends an HTTP request when a monitor stays down or comes back up. Where a notification channel tells people something happened, an action changes something outside BetterStatusPage: it starts a failover job, wakes a standby server, or switches a feature flag.Uptime reportsThe status page shows the last 30 days of each monitor as a bar. Monitoring → Reports in the admin console goes further back and further into the numbers: pick any date range, see the uptime of every monitor, and download it as CSV for an SLA review or a customer.PerformanceHow BetterStatusPage behaves with many monitors, measured with the real scheduler, write path and public API on a SQLite file. Run it yourself with npm run bench -- --monitors=100 --days=90 --interval=60 (it uses a temporary database and never touches your data).
Incidents and maintenanceMonitors report what the checks see. Incidents and maintenance windows are what you tell visitors: an incident explains a problem and how it is going, a maintenance window announces planned work and keeps your notification channels quiet while it runs.Customizing the pageThe public status page is built from three admin pages: Page Builder decides what is on the page and where, Branding decides how it looks, and Localization decides which languages visitors can read it in. This guide covers all three, plus dark mode and live updates.SubscriptionsNotification channels (Notifications in the admin console) alert your team when a monitor changes status. Subscriptions are the other direction: they let the people who read your status page follow what you publish — by email, by webhook, in a Slack channel, through an RSS/Atom feed, or by polling a JSON API.Private status pageBy default the status page is public: anyone with the URL can see it. An administrator can make it private. A private page only shows its content to signed-in users. Everyone else gets a sign-in screen in the page's own branding, where they sign in with a password or through single sign-on.Static fallbackWhen the server that runs BetterStatusPage is down, the status page is down with it, which is when visitors want it most. The static fallback keeps a saved copy of the public page on static hosting that does not depend on your server, so that visitors still see the last known state, with a banner saying when it was taken (you can turn the banner off).