Checkup is a distributed, lock-free, self-hosted health check and status page tool written in Go.
Checkup solves the problem of monitoring service availability and displaying status to users without requiring a centralized coordinator or external dependencies. It works by separating concerns into three components: a storage backend where check results are persisted, checker instances that run health checks on endpoints at configurable intervals, and a status page that displays results to users. The tool supports multiple checker types including HTTP, TCP with TLS, DNS, and TLS certificate validation. Results can be stored in Amazon S3, local filesystems, GitHub, MySQL, PostgreSQL, SQLite3, or Azure Application Insights, allowing operators to choose infrastructure that fits their existing setup.
Teams should adopt Checkup when they want to self-host health monitoring without vendor lock-in or complex orchestration. It suits projects that need flexibility in where checks run and where results are stored, particularly those already using Go or comfortable with JSON configuration. The tool provides both a CLI and an idiomatic Go library with symmetric configuration between them, making it accessible whether you prefer command-line usage or programmatic integration. The minimalistic design means less operational overhead compared to larger monitoring platforms.
The project is maintained as a work-in-progress with active development introducing breaking changes to improve consistency, such as renaming configuration fields and deprecating older storage engines in favor of modern database backends. Build tooling has been refined to support optional features through tagged builds, allowing users to include only the database drivers they need. The maintainers have made explicit changes to logging behavior and status page defaults, indicating ongoing refinement of the user experience based on practical usage patterns.