Skip to main content

Self-hosted uptime monitoring configured in TypeScript

Define monitors, dashboards, alerts, and incidents as code. Version-controlled alongside your infrastructure. No UI forms—just TypeScript.

Quick Start

Get Pongo running locally in minutes

1

Clone and install

Clone the repository and install dependencies with Bun:
git clone https://github.com/TimMikeladze/pongo.git
cd pongo
bun install
2

Configure environment

Copy the example environment file and configure your database:
cp .env.example .env
Pongo uses SQLite by default. For PostgreSQL, set DATABASE_URL in your .env file.
3

Run migrations and start

Create database tables and start the development server:
bun run db:sqlite:migrate
bun dev
Open http://localhost:3000 to see your dashboard.
4

Start the scheduler

In a separate terminal, start the scheduler to run monitors:
bun scheduler
Your monitors will now run on their configured schedules.

Key Features

Everything you need for modern uptime monitoring

TypeScript Configuration

Define monitors, alerts, and dashboards as TypeScript files. Version-controlled and type-safe.

Public Status Pages

Beautiful status pages with RSS/Atom feeds, uptime charts, and incident timelines.

Smart Alerting

Flap detection, auto-resolve, and webhook notifications to Slack, PagerDuty, and more.

Multi-Region

Deploy schedulers in multiple regions with region-aware alert thresholds.

Data Archival

Automatic S3 archival to Parquet with day-based partitioning for long-term storage.

SLA Tracking

Track uptime percentages, response times, and latency percentiles (P50, P95, P99).

Ready to get started?

Follow our quickstart guide to get Pongo running in minutes, or explore deployment options for production.