Open-source · AGPL-3.0 · Self-hosted

Uptime monitoring
you actually own.

Piro is a self-hosted, enterprise-grade status page, uptime monitoring, and incident-response platform. Run checks from any region, page the right on-call engineer, and give users a real-time status page, all on servers you control.

No data leaves your infra · No per-seat pricing · No phone-home telemetry

A production-ready, self-hostable alternative to

StatusPageInstatusBetter StackPingdomUptimeRobot
8
Check types out of the box
4
Paging channels, verified
100%
Your data, your servers
Regions & seats, no limits
The platform

Everything a status page leaves out,
in one self-hostable stack.

Multi-region monitoring

Deploy lightweight workers to any cloud, on-prem, or bare-metal box. They connect back over SignalR and scale independently per region. Single-region setups run checks in-process, no worker needed.

Public status page

Branded, real-time status page with uptime history, latency trends, incidents, and scheduled maintenances.

Incident management

Structured incidents with timeline updates and severity. You decide when an alert becomes customer-facing, never automatically.

Maintenance windows

Schedule windows that automatically suppress a service's public status while you work.

Encrypted secrets & full REST API

Integration credentials and secret fields are encrypted at rest. Every admin operation is available programmatically through an OpenAPI 3.1 spec, Piro is API-first by design.

Active monitoring

Eight check types,
tunable intervals, per-region assignment.

HTTPStatus, latency & content
DNSExpected-value matching
SSLCertificate expiry
TCPPort reachability
PingICMP round-trip
gRPCService health checks
Cloud RunGCP job execution
+ moreExtensible dispatchers

Need a specific check type? It's open-source, raise an issue or implement it yourself.

On-call & escalation

Page the right engineer, every time.

  • On-call schedules — RRULE-based rotation layers with overrides, timezone-aware, on a Gantt calendar.
  • Escalation policies — ordered steps, delays, per-step retries, and re-escalation after inactivity. Reuse one policy across many services.
  • Verified channels — Email, Telegram, SMS (Twilio) and ntfy require a one-time code before they can page you. A typo never means a missed page.
  • Prioritized delivery — each user sets their own ordered channel list; escalation tries them in order and falls back to email if all fail.
Integrations & enterprise

Fits your stack,
answers to your security team.

Email
Telegram
Twilio SMS
ntfy
PagerDuty
GCP Cloud Monitoring
OIDC / SSO
RBAC roles
SSO-only policy
Encrypted at rest

Sign in with Google, Microsoft, GitHub, or any standard OIDC/OAuth2 provider. Owner / Admin / Member / Viewer roles with email invitations.

Self-host

One version to pin.
Up and running in minutes.

Four images ship under the same tag on every release. Each release attaches a ready-to-run compose file with the version resolved, no source checkout required.

bash
$ curl -O https://github.com/Heva-Co/piro/releases/latest/docker-compose.release.yml
$ docker compose -f docker-compose.release.yml up -d

 proxy   started  :80
 web     started  status page
 api     started  migrations applied
 db      healthy  postgres

# Your status page is live. No data left your box.

Own your uptime story.

Production-ready. AGPL-3.0. Built by engineers who dogfood it in production.