openstatus
The open-source status page and uptime monitoring platform.
Learn more »
Documentation
·
Website
·
Discord
## About openstatus
openstatus is the open-source **uptime monitoring** and **status page** platform built for **infra as code**. Declare monitors and status pages in code. Let your agents update them.
Monitors, status pages, and notification channels are declared in YAML or Terraform, applied from the CLI or CI, and operable from Claude, ChatGPT, or Cursor over MCP. Available as a managed service or self-hosted.
## Why openstatus?
- **Infra as code** — monitors, status pages, and notifications in YAML or Terraform, applied from the CLI or CI
- **Built for humans and agents** — MCP server, `--json` CLI, typed API, read-only or read-write key scopes, every mutation in the audit log
- **Status pages + monitoring in one tool** — no need to wire up a separate monitoring service
- **28 global regions** checking in parallel across 3 cloud providers
- **Flat pricing, unlimited members** — no per-seat or per-subscriber charges
- **Open source & self-hostable** — AGPL-3.0, private-locations run in a single 8.5MB Docker image
- **Incident management** — declare and run incidents from the dashboard or Slack, with severity, commander, and a full timeline
- **Incident communication** — subscriber notifications via email, RSS, and webhooks
### Status pages
Beautiful, customizable status pages with custom domains, password protection, maintenance windows, and subscriber notifications via email and RSS. Build trust and keep your users informed during incidents.
### Uptime Monitoring
Monitor your servers, websites and APIs from 28 regions across multiple cloud providers globally. Get notified via Slack, Discord, PagerDuty, email, and more when your services are down or slow.
### Incident management
Declare, coordinate, and resolve incidents from the dashboard or right inside Slack.
- **Dashboard** — declare an incident, set its severity (critical, major, minor), assign a commander, and move it from open → mitigated → resolved. Every change lands on the incident timeline.
- **Slack** — mention the openstatus agent to declare, update, resolve, or add notes to an incident without leaving the conversation. Bind an incident to a Slack channel so the team coordinates in one place.
- **Status page updates** — link a status report to an incident so your users see what your team is working on.
- **Agents** — the same incident tools are available over MCP, so Claude, ChatGPT, or Cursor can manage incidents too.
## Recognitions
## Tooling
Everything the dashboard does is reachable from your terminal, your infrastructure code, and your AI assistant — all sharing a single API key.
- **[API](https://www.openstatus.dev/tooling/api)** — typed JSON-over-HTTP (ConnectRPC) with a [Node SDK](https://github.com/openstatusHQ/sdk-node)
- **[CLI](https://www.openstatus.dev/tooling/cli)** — interactive for humans, `--json` for agents, YAML monitoring as code
- **[Terraform](https://www.openstatus.dev/tooling/terraform)** — monitors, notifications, and status pages as HCL
- **[MCP server](https://www.openstatus.dev/tooling/mcp-server)** — connect Claude, ChatGPT, Cursor, or any MCP client to your workspace
## Getting Started
### With Docker (Recommended)
The fastest way to get started for both development and self-hosting:
```sh
# 1. Copy environment file
cp .env.docker.example .env.docker
# 2. Start all services
docker compose up -d
# 3. Access the application
open http://localhost:3002 # Dashboard
open http://localhost:3003 # Status Pages
```
Full guide: [DOCKER.md](DOCKER.md)
### Self-Hosting with Coolify
We provide pre-built Docker images for easy deployment:
```bash
ghcr.io/openstatushq/openstatus-server:latest
ghcr.io/openstatushq/openstatus-dashboard:latest
ghcr.io/openstatushq/openstatus-workflows:latest
ghcr.io/openstatushq/openstatus-private-location:latest
ghcr.io/openstatushq/openstatus-status-page:latest
ghcr.io/openstatushq/openstatus-checker:latest
```
[Complete Coolify Deployment Guide](./COOLIFY_DEPLOYMENT.md)
### Self-Hosting with Railway
Deploy the full stack (dashboard, status pages, API, workflows, probes, libSQL, and Tinybird Local) to one Railway project with one click:
[](https://railway.com/new/template/openstatus?utm_medium=integration&utm_source=button&utm_campaign=openstatus)
The template source and the setup instructions are in [ephraimduncan/openstatus-railway](https://github.com/ephraimduncan/openstatus-railway).
### Manual Setup
#### Requirements
- [Node.js](https://nodejs.org/en/)
- [pnpm](https://pnpm.io/)
- [Deno](https://deno.com/)
- [Turso CLI](https://docs.turso.tech/quickstart).
#### Dashboard
See [apps/dashboard/README.md](apps/dashboard/README.md) for full steps (env, db, login, troubleshooting).
#### Status page
1. Install dependencies
`pnpm install`
2. Run the server
`pnpm -w dev:status-page`.
#### Web (marketing site)
1. Install dependencies
`pnpm install`
2. Run the server
`pnpm -w dev:web`.
## Tech Stack
- [Next.js](https://nextjs.org/) - Dashboard
- [Hono](https://hono.dev/) - API server
- [Go](https://go.dev/) - Checker
- [Turso](https://turso.tech/) - Database
- [Drizzle](https://orm.drizzle.team/) - ORM
- [Tinybird](https://tinybird.co/?ref=openstatus.dev) - Analytics
- [Tailwind CSS](https://tailwindcss.com/) - Styling
- [shadcn/ui](https://ui.shadcn.com/) - UI components
## Contributing
If you want to help us build the best status page and monitoring platform, check our [contributing guidelines](CONTRIBUTING.md).

## Contact
Interested in our enterprise plan or need special features? Email us at [ping@openstatus.dev](mailto:ping@openstatus.dev) or book a call.
## License
Distributed under the [AGPL-3.0 License](LICENSE).