docker.recipes

Uptime Kuma

beginner

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:1
4 container_name: uptime-kuma
5 restart: unless-stopped
6 volumes:
7 - uptime_kuma_data:/app/data
8 ports:
9 - "3001:3001"
10
11volumes:
12 uptime_kuma_data:

.env Template

.env
1# No environment variables required

Usage Notes

  1. 1Docs: https://github.com/louislam/uptime-kuma/wiki
  2. 2Dashboard at http://localhost:3001 - create admin on first visit
  3. 3Monitor types: HTTP, TCP, DNS, Docker, Push, and more
  4. 4Status pages: create public status pages for your services
  5. 5Notifications: Telegram, Discord, Slack, Email, and 90+ integrations
  6. 6Backup data: /app/data contains SQLite DB with all config

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 uptime-kuma:
5 image: louislam/uptime-kuma:1
6 container_name: uptime-kuma
7 restart: unless-stopped
8 volumes:
9 - uptime_kuma_data:/app/data
10 ports:
11 - "3001:3001"
12
13volumes:
14 uptime_kuma_data:
15EOF
16
17# 2. Create the .env file
18cat > .env << 'EOF'
19# No environment variables required
20EOF
21
22# 3. Start the services
23docker compose up -d
24
25# 4. View logs
26docker compose logs -f

One-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 | bash

Troubleshooting

  • 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