Uptime Kuma
Self-hosted monitoring tool for websites and services with beautiful status pages and multi-channel notifications.
Overview
Uptime Kuma is a modern, self-hosted monitoring solution created by Louis Lam as an open-source alternative to commercial services like Uptime Robot and StatusCake. This Node.js-based application provides comprehensive monitoring capabilities for websites, APIs, servers, and services while offering beautiful, customizable status pages that can be shared publicly with users. Unlike cloud-based monitoring services, Uptime Kuma gives you complete control over your monitoring data and removes the limitations imposed by subscription tiers.
This Docker deployment creates a lightweight monitoring infrastructure that can track multiple types of services including HTTP/HTTPS endpoints, TCP ports, ping responses, DNS records, and even Docker containers. Uptime Kuma stores all monitoring data and configuration in a SQLite database, making it simple to backup and restore while providing detailed uptime statistics, response time graphs, and incident history. The application includes an intuitive web interface for configuring monitors, setting up notification channels, and creating public status pages.
This stack is ideal for small to medium businesses, homelab enthusiasts, and development teams who need reliable monitoring without ongoing subscription costs. System administrators will appreciate the extensive notification options supporting over 90 services including Telegram, Discord, Slack, and email, while the multi-language support and 2FA authentication make it suitable for international teams and security-conscious environments.
Key Features
- Multiple monitor types including HTTP/HTTPS, TCP port, ping, DNS record, and Docker container monitoring
- Beautiful, customizable status pages that can be made public for user communication during outages
- Over 90 notification integrations including Telegram, Discord, Slack, email, webhooks, and SMS services
- Certificate expiry monitoring with advance warnings before SSL certificates expire
- Two-factor authentication support for securing administrative access to the monitoring dashboard
- Proxy support for monitoring services behind firewalls or in restricted network environments
- Multi-language interface supporting dozens of languages for international team collaboration
- Docker container health monitoring to track the status of containerized applications and services
Common Use Cases
- 1Website and API uptime monitoring for e-commerce sites to ensure customer-facing services remain available
- 2Public status pages for SaaS applications to communicate service availability and incident updates to users
- 3Homelab monitoring to track personal servers, NAS devices, and self-hosted applications
- 4Development environment monitoring to ensure staging and testing services are operational for continuous integration
- 5SSL certificate expiry tracking for multiple domains to prevent unexpected certificate-related outages
- 6Multi-location server monitoring using proxy configurations to check services from different geographic locations
- 7Docker infrastructure monitoring to track container health and restart patterns in containerized deployments
Prerequisites
- Docker and Docker Compose installed on the host system
- Minimum 256MB RAM available for Uptime Kuma container operation
- Port 3001 available on the host system for web interface access
- Basic understanding of the services and endpoints you want to monitor
- Email server credentials if planning to use email notifications for alerts
- Network connectivity from the Docker host to all services being monitored
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 uptime-kuma: 3 image: louislam/uptime-kuma:14 container_name: uptime-kuma5 restart: unless-stopped6 volumes: 7 - uptime_kuma_data:/app/data8 ports: 9 - "3001:3001"1011volumes: 12 uptime_kuma_data: .env Template
.env
1# No environment variables requiredUsage Notes
- 1Docs: https://github.com/louislam/uptime-kuma/wiki
- 2Dashboard at http://localhost:3001 - create admin on first visit
- 3Monitor types: HTTP, TCP, DNS, Docker, Push, and more
- 4Status pages: create public status pages for your services
- 5Notifications: Telegram, Discord, Slack, Email, and 90+ integrations
- 6Backup data: /app/data contains SQLite DB with all config
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 uptime-kuma:5 image: louislam/uptime-kuma:16 container_name: uptime-kuma7 restart: unless-stopped8 volumes:9 - uptime_kuma_data:/app/data10 ports:11 - "3001:3001"1213volumes:14 uptime_kuma_data:15EOF1617# 2. Create the .env file18cat > .env << 'EOF'19# No environment variables required20EOF2122# 3. Start the services23docker compose up -d2425# 4. View logs26docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/uptime-kuma/run | bashTroubleshooting
- Container fails to start with permission errors: Ensure the uptime_kuma_data volume has proper write permissions and sufficient disk space available
- Cannot access web interface at localhost:3001: Check that port 3001 is not blocked by firewall and no other service is using this port
- Monitors show false positives or connection timeouts: Verify network connectivity from the Docker container to target services and check DNS resolution
- Notification channels not working: Validate webhook URLs, API tokens, and authentication credentials for your chosen notification services
- Status page not updating or showing old data: Check container logs for database errors and ensure SQLite database in /app/data is not corrupted
- High memory usage or performance issues: Monitor the number of active monitors and reduce check frequency for non-critical services to improve performance
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download