MCPcopy Index your code
hub / github.com/openstatusHQ/openstatus

github.com/openstatusHQ/openstatus @main sqlite

repository ↗ · DeepWiki ↗
4,678 symbols 14,767 edges 2,011 files 214 documented · 5%
README

openstatus

The open-source status page and uptime monitoring platform.

<a href="https://www.openstatus.dev"><strong>Learn more »</strong></a>






<a href="https://www.openstatus.dev/docs">Documentation</a>
·
<a href="https://www.openstatus.dev">Website</a>
·
<a href="https://www.openstatus.dev/discord">Discord</a>

openstatus status

  <a href="https://github.com/openstatushq/openstatus/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-blue.svg" alt="License"></a>
  <a href="https://github.com/openstatushq/openstatus/stargazers"><img src="https://img.shields.io/github/stars/openstatushq/openstatus?style=social" alt="GitHub stars"></a>
  <a href="https://www.openstatus.dev/discord"><img src="https://img.shields.io/discord/1129008226264940625?color=7289da&logo=discord&logoColor=white" alt="Discord"></a>

About openstatus

openstatus is an open-source platform that combines status pages and uptime monitoring in a single tool. Keep your users informed and your services reliable. Available as a managed service or self-hosted.

openstatus status page

Why openstatus?

  • 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
  • Monitoring as code — YAML config, CLI, GitHub Actions, Terraform
  • 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.

Recognitions

openstatus | Trendshift Featured on Hacker News openstatus - #2 Product of the Day on Product Hunt

Getting Started

With Docker (Recommended)

The fastest way to get started for both development and self-hosting:

# 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

Self-Hosting with Coolify

We provide pre-built Docker images for easy deployment:

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

Manual Setup

Requirements

Setup

  1. Clone the repository
git clone https://github.com/openstatushq/openstatus.git
  1. Install dependencies
pnpm install
  1. Initialize the development environment

Launch the database in one terminal:

turso dev --db-file openstatus-dev.db

In another terminal, run the following command:

pnpm dx
  1. Launch whatever app you wish to:
pnpm dev:web
pnpm dev:status-page
pnpm dev:dashboard

The above commands will automatically run the libSQL client on 8080 so you might want to kill the turso command from step 3.

  1. See the results:

  2. open http://localhost:3000 (default port)

Tech Stack

Contributing

If you want to help us build the best status page and monitoring platform, check our contributing guidelines.

openstatus repository activity

Contact

Interested in our enterprise plan or need special features? Email us at ping@openstatus.dev or book a call.

Book us with Cal.com

License

Distributed under the AGPL-3.0 License.

Extension points exported contracts — how you extend this code

PrivateLocationServiceClient (Interface)
PrivateLocationServiceClient is a client for the private_location.v1.PrivateLocationService service. [6 implementers]
apps/checker/proto/private_location/v1/private_location.connect.go
PrivateLocationServiceClient (Interface)
PrivateLocationServiceClient is a client for the private_location.v1.PrivateLocationService service. [6 implementers]
apps/private-location/proto/private_location/v1/private_location.connect.go
StatusFetcher (Interface)
(no doc) [9 implementers]
packages/status-fetcher/src/types.ts
Assertion (Interface)
(no doc) [5 implementers]
packages/assertions/src/types.ts
DiscordEmbedField (Interface)
* Discord Embed structure for webhook messages * Reference: https://birdie0.github.io/discord-webhooks-guide/structure/
packages/notifications/discord/src/embeds.ts
StatusPageMagicLinkProps (Interface)
(no doc)
packages/emails/emails/status-page-magic-link.tsx
MockState (Interface)
(no doc)
packages/test-utils/src/mock-fn.ts
BetterstackImportConfig (Interface)
(no doc)
packages/importers/src/providers/betterstack/provider.ts

Core symbols most depended-on inside this repo

get
called by 929
apps/server/src/routes/slack/confirmation-store.ts
withTestTransaction
called by 275
packages/services/test/helpers.ts
cn
called by 263
packages/ui/src/lib/utils.ts
cn
called by 257
apps/dashboard/src/lib/utils.ts
toString
called by 132
packages/tracker/src/tracker.ts
replace
called by 116
apps/server/src/routes/slack/confirmation-store.ts
emitAudit
called by 96
packages/services/src/audit/emit.ts
toServiceCtx
called by 90
packages/api/src/service-adapter.ts

Shape

Function 3,586
Method 682
Interface 176
Struct 115
Class 71
Enum 27
TypeAlias 19
FuncType 2

Languages

TypeScript83%
Go17%

Modules by API surface

packages/tinybird/src/client.ts109 symbols
apps/private-location/proto/private_location/v1/private_location.pb.go96 symbols
apps/checker/proto/private_location/v1/private_location.pb.go96 symbols
apps/private-location/proto/private_location/v1/assertions.pb.go59 symbols
apps/checker/proto/private_location/v1/assertions.pb.go59 symbols
apps/status-page/src/content/markdown/helpers.ts34 symbols
apps/private-location/proto/private_location/v1/http_monitor.pb.go31 symbols
apps/checker/proto/private_location/v1/http_monitor.pb.go31 symbols
apps/server/src/libs/test/preload.ts30 symbols
apps/server/src/routes/rpc/handlers/status-page/index.ts29 symbols
packages/services/src/errors.ts27 symbols
packages/ui/src/components/ui/sidebar.tsx25 symbols

Dependencies from manifests, versioned

cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/cloudtasksv1.13.7 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
connectrpc.com/connectv1.19.1 · 1×
github.com/ajg/formv1.5.1 · 1×
github.com/anmitsu/go-shlexv0.0.0-2020051411343 · 1×
github.com/antlr4-go/antlr/v4v4.13.0 · 1×
github.com/bytedance/gopkgv0.1.3 · 1×

For agents

$ claude mcp add openstatus \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact