Overview
Discover what makes Kuvasz powerful
Kuvasz is a fully‑featured, self‑hosted uptime and SSL monitoring platform written in Go. It exposes a rich REST API and optional OpenTelemetry/Prometheus metrics, enabling developers to embed uptime checks into existing observability pipelines or build custom dashboards. Internally, the service orchestrates periodic HTTP(S) probes, certificate expiry checks, and per‑monitor notification routing. The application is deliberately modular: the core probe engine runs in a lightweight Go routine pool, while the web UI and API are served via an embedded Gin framework. All configuration is persisted in a PostgreSQL database, but the schema can be swapped for SQLite or MySQL with minimal effort thanks to GORM‑based migrations.
Language & Runtime
Web Layer
Data Store
Metrics Export
Overview
Kuvasz is a fully‑featured, self‑hosted uptime and SSL monitoring platform written in Go. It exposes a rich REST API and optional OpenTelemetry/Prometheus metrics, enabling developers to embed uptime checks into existing observability pipelines or build custom dashboards. Internally, the service orchestrates periodic HTTP(S) probes, certificate expiry checks, and per‑monitor notification routing. The application is deliberately modular: the core probe engine runs in a lightweight Go routine pool, while the web UI and API are served via an embedded Gin framework. All configuration is persisted in a PostgreSQL database, but the schema can be swapped for SQLite or MySQL with minimal effort thanks to GORM‑based migrations.
Architecture
- Language & Runtime: Go 1.22+, leveraging goroutines for concurrent monitoring and the
net/httppackage for HTTP(S) probes. - Web Layer: Gin‑based REST API with JWT authentication, coupled to a Vue.js/TypeScript SPA for the status‑page UI. The API follows RESTful conventions and provides full CRUD over monitors, notification channels, and status pages.
- Data Store: PostgreSQL (default) accessed via GORM; migrations are idempotent and can be run in CI. The schema stores monitors, alerts, notification subscriptions, and status page metadata.
- Metrics Export: OpenTelemetry exporter pushes to any OTLP‑compatible backend; a Prometheus scrape endpoint exposes counters for probe latency, failures, and notification deliveries.
- Notification Engine: A pluggable system that routes alerts to email, Slack, Discord, Telegram, or PagerDuty. Each monitor can specify its own set of channels; the engine is decoupled via a simple interface so new providers can be added by implementing
Notifier.
Core Capabilities
- HTTP(S) Monitoring: Custom headers, query parameters, body checks, status‑code validation, and response‑time thresholds.
- SSL Certificate Checks: Daily validation of expiry dates with configurable pre‑warning windows.
- Per‑Monitor Notifications: Fine‑grained control over which channels fire for each monitor, including suppression windows and retry policies.
- Status Pages: Public or private branded pages that display real‑time uptime, incident history, and RSS feeds.
- REST API: Endpoints for creating monitors (
POST /monitors), retrieving status (GET /status/:id), managing notification channels, and exporting metrics. - Metrics Exporters:
/metricsendpoint for Prometheus; OTLP exporter for OpenTelemetry ingestion.
Deployment & Infrastructure
Kuvasz ships as a Docker image (kuvaszmonitoring/kuvasz) and can be deployed on any platform that supports Docker or Kubernetes. The image is built with a multi‑stage Go build, resulting in a lightweight binary (~30 MB). For production use, the recommended stack is:
- PostgreSQL (or any GORM‑compatible DB) for persistence.
- Redis optional, for rate‑limiting and caching of notification delivery status.
- NGINX or Traefik as a reverse proxy to handle TLS termination and path routing.
- Kubernetes with a
Deploymentthat uses aHorizontalPodAutoscaleron CPU usage, ensuring probe scalability as the number of monitors grows.
The service is stateless beyond its database, making horizontal scaling trivial. Each probe routine runs in a bounded worker pool (maxConcurrentProbes), preventing resource exhaustion even when monitoring thousands of endpoints.
Integration & Extensibility
- Plugin System: The notifier interface allows developers to drop in custom notification logic. A simple
go getcan fetch a new notifier package, and the configuration schema supports adding arbitrary JSON payloads for custom endpoints. - Webhooks: Users can register HTTP callbacks that fire on monitor state changes, enabling integration with ticketing systems or custom dashboards.
- SDKs & Clients: While not bundled, the public REST API can be consumed by any HTTP client; community projects provide Go and Python SDKs.
- Custom UI Themes: The SPA is built with Vue.js and supports theme overrides via CSS variables, allowing branding without code changes.
Developer Experience
The project follows a clean monorepo layout with comprehensive test coverage (~80 %+). Documentation is hosted at kuvasz-uptime.dev, featuring a detailed API reference, deployment guides, and a roadmap. The community actively maintains a Discord channel for real‑time support, and the issue tracker is well‑organised with labels for bugs, enhancements, and documentation. The Apache 2.0 license removes licensing friction, encouraging enterprise adoption.
Use Cases
- Internal Ops – Teams can expose a private status page for internal services, integrating alerts into existing Slack channels and Prometheus dashboards.
- SaaS Providers – Offer a branded uptime portal to customers, with customizable incident logs and RSS feeds.
- DevOps Toolchains – Embed Kuvasz probes into CI/CD pipelines to gate releases on service availability checks.
- Educational Platforms – Students can deploy a self‑hosted monitoring stack to learn about observability and alerting.
Advantages
- Open Source & Self‑Hosted: Full control over data, compliance with internal security policies, and no vendor lock‑in.
- Performance: Go’s concurrency model ensures low overhead even with thousands of monitors; the probe engine is
Open SourceReady to get started?
Join the community and start self-hosting Kuvasz today
Related Apps in data-analysis
Uptime Kuma
Self-hosted uptime monitoring for all services
Apache Superset
Open‑source BI for fast, no‑code data exploration
Metabase
Easy open‑source business intelligence for everyone
Netron
Visualize AI models in any browser or desktop
Umami
Privacy‑focused, lightweight web analytics
PostHog
Open‑source product analytics and experimentation platform
Weekly Views
Repository Health
Information
Tags
Explore More Apps
OliveTin
Secure web interface for predefined shell commands

Cgit
Fast, lightweight Git web interface in C
SelfHostBlocks
Your privacy‑first, NixOS‑powered self‑hosting platform
Bubo Reader
Minimalist RSS feed aggregator for self‑hosted sites
Krayin CRM
Open-source Laravel CRM for modern businesses
Gatus
Developer‑oriented health dashboard for services
