Uptime Kuma is a self-hosted monitoring tool designed for developers and DevOps teams who need reliable, real-time status tracking of their services without relying on third-party SaaS platforms. Built with Vue 3 and Vite.js, it offers a modern single-page application experience using WebSockets for live updates. It addresses the gap left by unmaintained or overly simplistic alternatives like Statping, providing a robust, feature-rich solution for monitoring HTTP(S) endpoints, TCP services, DNS records, Docker containers, and more—all while running entirely on your own infrastructure. Its intuitive UI, multi-language support, and flexible deployment options make it ideal for individuals, small teams, or enterprises seeking full control over their monitoring stack.
Unlike cloud-based monitors that charge per check or limit features, Uptime Kuma is completely free and open source. It supports 2FA, proxy configurations, multiple status pages with custom domains, and integrates with over 90 notification services. Whether you’re monitoring a single website or dozens of microservices across environments, Uptime Kuma delivers enterprise-grade visibility with the simplicity of a personal tool.
What You Get
- Multi-protocol monitoring - Monitor HTTP(S) endpoints with keyword or JSON query checks, TCP ports, DNS records, Ping (ICMP), WebSockets, Steam Game Servers, and Docker containers—all from a single interface.
- 90+ notification integrations - Receive alerts via Telegram, Discord, Gotify, Slack, Pushover, SMTP email, and more; full list available in the GitHub repository’s notifications directory.
- Real-time dashboard with charts - View live uptime statistics, ping response times, and certificate expiration dates in a reactive, fast UI built with Vue 3 and Bootstrap 5.
- Multiple status pages - Create custom public status pages for different projects or clients, and map them to individual domains for professional branding.
- 2FA support - Secure your admin panel with two-factor authentication to prevent unauthorized access to monitoring configurations.
- Docker and non-Docker deployment - Install via Docker Compose, standalone Docker commands, or directly on Linux/Windows with Node.js 20.4+ and PM2 for background process management.
- Proxy and custom domain support - Configure reverse proxies (e.g., Nginx, Caddy) to expose Uptime Kuma behind HTTPS and custom domains for secure external access.
Common Use Cases
- Building a multi-tenant SaaS dashboard with real-time status - A SaaS provider uses Uptime Kuma to monitor each customer’s endpoint, generates individual status pages per tenant, and pushes outages via Telegram to support teams.
- Creating a mobile-first e-commerce platform with 10k+ SKUs - An e-commerce team monitors backend APIs, payment gateways, and Dockerized microservices using TCP and HTTP checks to ensure cart functionality remains available during peak traffic.
- Problem: Lost alerts from free cloud monitors → Solution: Self-hosted, customizable uptime tracking - A developer tired of missing notifications from UptimeRobot due to rate limits switches to Uptime Kuma, configures 2FA and Pushover alerts, and gains full control over alert thresholds and frequency.
- DevOps teams managing microservices across multiple cloud providers - Teams use Uptime Kuma to unify monitoring of AWS EC2 instances, GCP load balancers, and Azure containers via Docker health checks and ping monitors—all visible in one dashboard.
Under The Hood
Uptime Kuma is a modern, feature-rich uptime monitoring solution that combines real-time status page publishing with extensive support for multiple monitor types and a responsive Vue.js-based frontend. The system is designed to be both powerful and accessible, offering developers and teams a comprehensive tool for tracking service availability.
Architecture
Uptime Kuma follows a monolithic architecture with clear separation between frontend and backend components, enabling scalable and maintainable development.
- The backend is organized around a core server module that handles API routes, database operations, and external service integrations with well-defined responsibilities
- The frontend utilizes Vue.js in a component-based architecture to support dynamic UI rendering and efficient state management
- Design patterns such as dependency injection, middleware for request handling, and strategy patterns for various monitor types are consistently applied
- Communication between components is managed through a robust socket-based system that ensures real-time updates and synchronization
Tech Stack
The project leverages a modern JavaScript and TypeScript stack to deliver a flexible, extensible monitoring platform with strong developer tooling.
- Built primarily with JavaScript and Vue.js for the frontend, alongside Node.js and Express forming the core backend architecture, with TypeScript enhancing type safety in backend modules
- Relies on a wide ecosystem of libraries such as axios, knex, socket.io, and various database drivers to support diverse monitoring protocols and data handling
- Development and build processes are streamlined using Vite, ESLint, Stylelint, Prettier, and Playwright for end-to-end testing and code formatting
- A multi-layered testing approach includes Playwright, Node.js built-in test runner, and testcontainers for integration testing with databases and external services
Code Quality
Code quality in Uptime Kuma is well-maintained with consistent patterns, comprehensive testing practices, and a focus on reliability.
- The codebase includes extensive test coverage with a variety of testing tools and strategies to ensure functionality and stability across components
- Error handling is structured with clear patterns that support graceful degradation and informative logging for debugging and monitoring
- Code consistency is maintained through linting, formatting, and structured directory organization that supports long-term maintainability
What Makes It Unique
Uptime Kuma differentiates itself through its modular architecture and rich ecosystem of monitoring capabilities that are rare in similar tools.
- A highly extensible class-based architecture enables support for over 20 different monitor types (HTTP, DNS, TCP, MQTT, etc.) without disrupting core functionality
- The system natively integrates status page publishing with real-time badge endpoints that can be embedded anywhere, setting it apart from tools that treat status pages as secondary features
- Built-in support for embedded MariaDB and Docker host monitoring provides a self-contained deployment model that is uncommon among comparable tools
- The Vue.js frontend features a responsive real-time dashboard with localization support that adapts dynamically to different languages and formats