discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
karl-cta/statup · source
Snapshot 0 · 2026-11-04T12:47:28Z · Rust · AGPL-3.0
Content fingerprint
81f37dedced6c8c9ea50648c74e0ce93c9a781ba1944d429563ba51bd21be8f7GitHub description at capture
Your outages, maintenance and news, on one self-hosted status page.
README at capture
<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset=".github/assets/wordmark-dark.svg"> <img src=".github/assets/wordmark.svg" width="220" height="59" alt="Statup"> </picture> ### Every team in the loop, before anyone asks. [](LICENSE) [](https://www.rust-lang.org/) [](#status) [Live demo](https://demo.statup.dev) · [Website](https://statup.dev) · [Quick start](#quick-start) · [Documentation](https://statup.dev/docs/) </div> <br> <picture> <source media="(prefers-color-scheme: dark)" srcset=".github/assets/status-page-dark.png"> <img src=".github/assets/status-page.png" alt="The status page: a banner saying one service is disrupted, with the incident and its latest update, then the services with thirty days of availability, the recent activity and the maintenance schedule" width="1280"> </picture> ## What is Statup? > *"Is the internet down?"* *"Is it just me, or is Outlook broken?"* Every outage starts with the same questions, by phone, by chat and at the IT office door. Statup answers them before anyone asks. It is a status page you host yourself. Whoever runs a service posts, once, what is broken, what is planned and what has changed. Everyone else reads it in plain words, from a desk or a phone, without an account. Monitoring tools are made for the people who fix things; Statup is made for everyone else. **What it is for** - **An outage**: the VPN is down. The whole company sees it, sees that IT is on it, and sees when it is back. - **Planned work**: the accounting software upgrade is announced a week ahead, then starts and ends on its own on Saturday. - **News**: a new version of the payroll software, the printer that moved to the second floor, the VPN client everyone must install. - **Beyond IT**: a small business keeping its clients informed when its service is down. **[Try the live demo](https://demo.statup.dev)**, and sign in with `demo@statup.dev` / `StatupDemo#1` to publish as an editor. It starts over every hour. ## Features - **The answer first**: a banner says what is wrong, what is affected and since when, above every service and its last 90 days. - **Runs on its own**: a service follows the incident that names it, and planned work starts and ends at the times announced. - **Notices first**: it checks on its own, every minute, that a site or a server answers, or listens to the monitoring you already run; an outage shows after three minutes without an answer, or the delay set for that service. - **Works with your monitoring**: Prometheus, Grafana, Zabbix or Uptime Kuma report an outage, and Statup announces it; a script publishes through the HTTP API, and an Uptime Kuma status page imports in one go. - **Quick to publish**: dated updates, reusable templates and a short report once an incident is resolved; an outage spotted by the checks is declared in one click. - **Tells people where they are**: each incident, maintenance and announcement posted to Microsoft Teams, Slack, Google Chat, Discord or Mattermost, to phones through ntfy, by email, or to any tool through a webhook, in the language of each channel. - **Easy to follow**: search and filters, a side panel to read without leaving the list, an Atom feed for feed readers, and an email at each update for those who subscribe. - **A record of everything**: a Journal for administrators shows who changed what, sign-ins, outages with their reason and messages that did not leave, kept 90 days and exported as a CSV file. - **Your page, your way**: public or members only, your name and logo, blocks you arrange on the page; French, English, German and Spanish, light and dark, accessible. **Light, private, safe by default.** - **Light**: one Rust binary and one SQLite file, in a Docker image of about 11 MB. No Redis, no Postgres. - **Private**: fonts and scripts come from your instance. The server only reaches the addresses you ask it to check or to notify, and GitHub once a day to look for a new version (`UPDATE_CHECK=false` turns that off). - **Safe**: passwords hashed with Argon2id, a CSRF token on every form, a strict Content Security Policy on every page. ## How it works - **Services** are the tools people rely on: mail, the VPN, the ERP, the phones. Each shows one state: operational, degraded, outage or maintenance. Statup can also check on its own that a service answers. - **Events** are what gets published. An **incident** when something breaks, a **maintenance** when work is planned, an **announcement** for news. An incident sets the state of the services it names until it reaches Monitoring, and a maintenance while it is under way, unless it announces no downtime. - **People** read the page, with or without an account. **Editors** publish events and set service states; **administrators** also run the settings, the team and the layout of the page. ## Quick start You need Docker with Docker Compose 2.24 or newer. **1. Start Statup** ```bash mkdir statup && cd statup curl -O https://raw.githubusercontent.com/karl-cta/statup/main/docker-compose.yml docker compose up -d ``` Docker downloads the ready image, for x86-64 and ARM servers alike, and starts it in seconds. Without Docker, one command installs Statup as a service on [Linux](https://statup.dev/docs/install-linux/) or [Windows Server](https://statup.dev/docs/install-windows/). **2. Open it in your browser** At http://localhost:3000, or your server's address on port 3000, an empty instance walks you through four steps: your administrator account, the page's name, logo and audience, the services to follow, then the address to share. **3. Invite your team** Add them from the **Team** page: they open the same address. For HTTPS and a name of your own, such as `status.example.com`, put Statup behind a reverse proxy. > [!TIP] > The [documentation](https://statup.dev/docs/) has the rest: every setting, installing without Docker, a reverse proxy with nginx, Caddy or IIS, backups, upgrades and a forgotten password. ## Roadmap <picture> <source media="(prefers-color-scheme: dark)" srcset=".github/assets/roadmap-dark.png"> <img src=".github/assets/roadmap.png" alt="Roadmap: shipped are automatic monitoring, notifications, four languages, password reset and clearer incident updates; step 1, the activity log, shipped in 0.6.0; step 2, groups and visibility, shipped in 0.7.0; step 3, email subscriptions, shipped in 0.8.0; step 4, API and monitoring tools, shipped in 0.9.0; steps 5 and 6, recurring maintenance and themes, shipped in 0.10.0; step 7, backup and restore, shipped in 0.11.0; step 8, the status widget, shipped in 0.12.0; coming next, step 9 listed below, then the stable 1.0 release" width="1296"> </picture> Planned, in this order, without dates: 1. ~~**Activity log**: every action, check and sign-in, for administrators to look back on.~~ Shipped in 0.6.0. 2. ~~**Groups and visibility**: choose which services and events each group of users sees.~~ Shipped in 0.7.0, with folders of services. 3. ~~**Email subscriptions**: visitors get each update in their inbox.~~ Shipped in 0.8.0. 4. ~~**API and monitoring tools**: Zabbix, Grafana or a script open and close incidents by themselves.~~ Shipped in 0.9.0, with an import from Uptime Kuma. 5. ~~**Recurring maintenance**: announce a slot once, and add any maintenance to your calendar.~~ Shipped in 0.10.0. 6. ~~**Themes** and an accent colour.~~ Shipped in 0.10.0, with twelve colours and four ambiances. 7. ~~**Backup and restore**: one command each, without stopping Statup.~~ Shipped in 0.11.0, with installers for Linux and Windows Server. 8. ~~**Status widget** for your intranet or wiki.~~ Shipped in 0.12.0. 9. **Hardening**: full testing, a security review and safe upgrades from every version, before 1.0. Ideas and requests are welcome in the [issues](https://github.com/karl-cta/statup/issues). ## Status Statup is **pre-v1**: usable and self-hostable, with the interface being finished before the first stable release. Expect changes between versions and back up before upgrading. Every change is in the [changelog](.github/CHANGELOG.md). Statup is not related to Statping, a Go project first published under the name Statup. ## Contributing Built with Rust, Axum, SQLite, Askama templates and htmx. The [contributing guide](.github/CONTRIBUTING.md) explains how to build Statup, where things are in the code, and the checks a change must pass. ## License Statup is licensed under the [GNU Affero General Public License v3.0 or later](LICENSE). If you run a modified version for others over a network, offer them its source code. It ships htmx, the Hanken Grotesk font, icons from Heroicons and the base styles of Tailwind CSS, under their own licenses: see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).