docker.recipes

Uptime Kuma Status Page

beginner

Self-hosted uptime monitoring with beautiful status pages, multiple notification channels, and ntfy for push notifications to your devices.

Overview

Uptime Kuma is a self-hosted monitoring solution that provides comprehensive service availability tracking with beautiful, customizable status pages. Originally created as an open-source alternative to commercial services like Uptime Robot, it supports over 20 monitor types including HTTP/HTTPS, TCP, Ping, DNS Record, Push, Steam Game Server, and Docker Container monitoring. The tool has gained significant popularity in the homelab and small business communities due to its extensive feature set and zero licensing costs. This stack combines Uptime Kuma with ntfy, a simple HTTP-based pub-sub notification service that delivers real-time push notifications to mobile devices without requiring complex setup or third-party dependencies. While Uptime Kuma supports over 90 notification channels including Slack, Discord, and email, ntfy provides instant mobile alerts through a lightweight, self-hosted solution. The integration allows you to receive immediate notifications when services go down, certificates expire, or performance thresholds are exceeded. This combination is ideal for system administrators, DevOps teams, and homelab enthusiasts who want complete control over their monitoring infrastructure without monthly subscription fees. Unlike cloud-based alternatives, this stack provides unlimited monitors, custom check intervals, and the ability to monitor internal services behind firewalls, making it perfect for organizations that prioritize data privacy and cost control.

Key Features

  • Over 20 monitor types including HTTP/HTTPS, TCP, Ping, DNS, Push, Steam Game Server, and Docker Container monitoring
  • Beautiful, responsive status pages with custom branding, logos, and themes for public or private use
  • Certificate expiry monitoring with configurable advance warning notifications
  • Multi-language support with translations for over 30 languages
  • Two-factor authentication (2FA) support for enhanced security
  • Instant mobile push notifications through ntfy without requiring third-party services or API keys
  • Flexible notification rules with maintenance windows, alert grouping, and escalation policies
  • Proxy support for monitoring services through HTTP/HTTPS/SOCKS proxies

Common Use Cases

  • 1Small businesses creating public status pages to communicate service availability to customers
  • 2Homelab enthusiasts monitoring self-hosted services like Plex, Nextcloud, and NAS devices
  • 3DevOps teams tracking internal microservices and API endpoints behind corporate firewalls
  • 4Web developers monitoring client websites with custom check intervals and maintenance windows
  • 5System administrators setting up certificate expiry monitoring for SSL/TLS certificates
  • 6IT departments creating internal dashboards to track server uptime and network connectivity
  • 7Freelancers and agencies providing uptime monitoring services to multiple clients from a single dashboard

Prerequisites

  • Docker and Docker Compose installed on your host system
  • Minimum 256MB RAM available for Uptime Kuma container operations
  • Ports 3001 and 8080 available on your host system (configurable via environment variables)
  • Basic understanding of HTTP monitoring concepts and notification workflows
  • Mobile device with ntfy app installed for receiving push notifications
  • Network access to the services you want to monitor from the container host

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:latest
4 container_name: uptime-kuma
5 restart: unless-stopped
6 volumes:
7 - uptime_data:/app/data
8 ports:
9 - "${KUMA_PORT:-3001}:3001"
10
11 ntfy:
12 image: binwiederhier/ntfy:latest
13 container_name: kuma-ntfy
14 restart: unless-stopped
15 command: serve
16 ports:
17 - "${NTFY_PORT:-8080}:80"
18 volumes:
19 - ntfy_cache:/var/cache/ntfy
20 environment:
21 - TZ=${TZ:-UTC}
22
23volumes:
24 uptime_data:
25 ntfy_cache:

.env Template

.env
1# Uptime Kuma Configuration
2KUMA_PORT=3001
3TZ=UTC
4
5# Ntfy Push Notifications
6NTFY_PORT=8080

Usage Notes

  1. 1Access Uptime Kuma at http://localhost:3001
  2. 2Create an admin account on first access
  3. 3Ntfy push notification server at http://localhost:8080
  4. 4In Uptime Kuma, add ntfy notification: http://ntfy/your-topic
  5. 5Subscribe to ntfy topics on your phone for instant alerts
  6. 6Create public status pages to share service health

Individual Services(2 services)

Copy individual services to mix and match with your existing compose files.

uptime-kuma
uptime-kuma:
  image: louislam/uptime-kuma:latest
  container_name: uptime-kuma
  restart: unless-stopped
  volumes:
    - uptime_data:/app/data
  ports:
    - ${KUMA_PORT:-3001}:3001
ntfy
ntfy:
  image: binwiederhier/ntfy:latest
  container_name: kuma-ntfy
  restart: unless-stopped
  command: serve
  ports:
    - ${NTFY_PORT:-8080}:80
  volumes:
    - ntfy_cache:/var/cache/ntfy
  environment:
    - TZ=${TZ:-UTC}

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 uptime-kuma:
5 image: louislam/uptime-kuma:latest
6 container_name: uptime-kuma
7 restart: unless-stopped
8 volumes:
9 - uptime_data:/app/data
10 ports:
11 - "${KUMA_PORT:-3001}:3001"
12
13 ntfy:
14 image: binwiederhier/ntfy:latest
15 container_name: kuma-ntfy
16 restart: unless-stopped
17 command: serve
18 ports:
19 - "${NTFY_PORT:-8080}:80"
20 volumes:
21 - ntfy_cache:/var/cache/ntfy
22 environment:
23 - TZ=${TZ:-UTC}
24
25volumes:
26 uptime_data:
27 ntfy_cache:
28EOF
29
30# 2. Create the .env file
31cat > .env << 'EOF'
32# Uptime Kuma Configuration
33KUMA_PORT=3001
34TZ=UTC
35
36# Ntfy Push Notifications
37NTFY_PORT=8080
38EOF
39
40# 3. Start the services
41docker compose up -d
42
43# 4. View logs
44docker 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/uptimekuma-statuspage/run | bash

Troubleshooting

  • Uptime Kuma shows 'Cannot connect to database': Check that the uptime_data volume has proper permissions and sufficient disk space available
  • ntfy notifications not working: Verify the ntfy container URL in Uptime Kuma notifications uses 'http://ntfy' (container name) not 'localhost'
  • Mobile app not receiving notifications: Ensure you're subscribed to the exact topic name configured in Uptime Kuma and ntfy container is accessible
  • Status page shows 'Down' for internal services: Check Docker network connectivity and ensure monitored services are accessible from the uptime-kuma container
  • Certificate monitoring fails: Verify the target service uses valid SSL/TLS certificates and the monitoring interval allows sufficient time for SSL handshake
  • High memory usage on Uptime Kuma: Reduce check frequency for monitors or increase container memory limits if monitoring many services simultaneously

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