louislam/uptime-kuma
Uptime Kuma
Uptime Kuma is a self-hosted monitoring platform designed to track the availability and performance of network services and websites. It functions as a centralized dashboard that executes asynchronous health checks on a scheduled interval, providing real-time visibility into infrastructure health and service uptime.
The platform distinguishes itself through a dedicated notification engine that dispatches alerts across multiple third-party messaging services, alongside a public status page generator that allows users to communicate service health and historical metrics via custom domains. Its architecture utilizes a reactive, single-page interface that maintains persistent bidirectional connections with the server to push live status updates without requiring manual page refreshes.
The system is built for flexible deployment, supporting containerized environments, native package installations, and bare-metal execution. It manages monitoring configurations and historical data using a local, file-based relational database, while a decoupled abstraction layer ensures that alert delivery logic remains independent of the core monitoring engine.
Features
- Monitoring Engines - Executes asynchronous health checks on a scheduled interval, triggering state transitions and notification workflows upon service status changes.
- Uptime Monitors - Track network services and websites for uptime, latency, and status changes, providing real-time alerts and public-facing status pages for incident communication.
- Monitoring Dashboards - A centralized monitoring platform that tracks service availability and latency while providing real-time incident reporting through automated notification channels.
- Service Monitors - A lightweight monitoring engine capable of tracking network endpoints and system services across diverse infrastructure environments and deployment configurations.
- Public Status Pages - A dedicated interface for communicating service health and historical uptime metrics to end users via customizable, domain-mapped status pages.
- Service Uptime Monitors - Tracking the availability and performance of websites and network services to ensure reliability and minimize downtime for end users.
- Container Images - Launch applications using containerized environments by pulling official images and configuring persistent storage volumes and network ports for the service.
- Container Orchestration Configurations - Manage service dependencies, environment variables, and persistent data volumes in a single command using a multi-container configuration file.
- Compose Orchestrations - Manage service dependencies and network interfaces automatically by using container orchestration defined within a centralized configuration file.
- Standalone Container Deployments - Execute monitoring services as standalone containers with custom port mapping and volume persistence for data storage.
- Incident Communication Pages - Providing transparent, real-time updates to stakeholders through public-facing status pages during service outages or scheduled maintenance windows.
- Automated Alerting Workflows - Configuring multi-channel notification systems to instantly inform engineering teams of critical service status changes or performance degradation events.
- Alerting Engines - A robust messaging integration layer that dispatches real-time status updates and incident alerts across multiple communication platforms and protocols.
- Relational Databases - Utilizes a lightweight, file-based relational database to store monitoring configurations, historical uptime data, and system settings locally.
- Background Daemons - Operates as a long-running daemon that manages internal task scheduling and network I/O independently of the user interface session.
- Infrastructure Health Observability - Maintaining visibility into the operational status of distributed systems and internal services to facilitate proactive maintenance and rapid troubleshooting.
- Native Packages - Install software on Debian-based systems using native package management to handle dependencies and service registration automatically.
- Container Deployment Updaters - Refresh containerized deployments by pulling the latest image and recreating the service containers to apply new application versions.
- Managed Cloud Deployments - Host applications on managed cloud platforms that provide pre-configured environments, automated scaling, and simplified service management for containerized workloads.
- Native Deployment Methods - Deploy applications directly on the host operating system by managing dependencies, runtime environments, and service processes without using containerization.
- WebSockets - Maintains persistent bidirectional connections between the server and client to push live status updates and notifications without polling.
- Notification Abstraction Layers - Decouples alert delivery logic from the core monitoring engine by implementing a unified interface for diverse third-party messaging services.
- Service Status Notifications - Dispatch automated alerts for service status changes through integrated notification services like messaging platforms and email.
- Single-Page Applications - Delivers a reactive user interface that consumes a JSON-based API to manage monitoring tasks and render dynamic status dashboards.