Getting Started
UptimeO is a self-hosted uptime observability platform. It combines a Spring Boot management backend, a React admin console, lightweight Go monitoring agents, public and private status pages, and analytics — all backed by PostgreSQL.Features
- Multi-region synthetic monitoring — assign HTTP/HTTPS monitors to distributed agents and collect heartbeats from many locations.
- Public & private status pages — publish service health and incident history to internal teams or external customers.
- Distributed Go agents — agents poll the API for configuration, execute checks, and submit heartbeats with retry and persistent queueing.
- Response-time analytics — view availability percentages, latency trends, and status history across regions and datacenters.
- Audit log & data retention — track changes and manage retention policies for heartbeats and audit events.
- Smart notifications — Slack and email alerts for outages, high latency, and agent health issues.
Architecture Overview
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ React UI │──────▶ Spring Boot │◀─────▶ PostgreSQL │
│ (port 8080) │ │ (port 8080) │ │ (port 5432) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
▲
│ HTTP + API key
┌─────────────────┐
│ Go Agent(s) │
│ execute monitors│
└─────────────────┘
Deployment Modes
- Managed mode (recommended): The central backend owns monitors, agents, and schedules. Agents poll for configuration and report heartbeats over HTTP.
- Standalone mode: Agents write heartbeats directly to PostgreSQL without a backend. Useful for headless or embedded deployments.
Prerequisites
You only need Docker:
| Tool | Version | Purpose |
|---|---|---|
| Docker | 24+ | Runs the app, PostgreSQL, and agents |
| Docker Compose | 2+ | Multi-service stacks |
docker -v
docker compose version
First Login
After completing the installation, open the console at http://localhost:8080.
-
Username:
admin -
Password:
admin
What to Do Next
- 1 Install UptimeO.
- 2 Connect your first agent.
- 3 Create HTTP monitors and assign them to agents.