Uptime Kuma Status Page
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:latest4 container_name: uptime-kuma5 restart: unless-stopped6 volumes: 7 - uptime_data:/app/data8 ports: 9 - "${KUMA_PORT:-3001}:3001"1011 ntfy: 12 image: binwiederhier/ntfy:latest13 container_name: kuma-ntfy14 restart: unless-stopped15 command: serve16 ports: 17 - "${NTFY_PORT:-8080}:80"18 volumes: 19 - ntfy_cache:/var/cache/ntfy20 environment: 21 - TZ=${TZ:-UTC}2223volumes: 24 uptime_data: 25 ntfy_cache: .env Template
.env
1# Uptime Kuma Configuration2KUMA_PORT=30013TZ=UTC45# Ntfy Push Notifications6NTFY_PORT=8080Usage Notes
- 1Access Uptime Kuma at http://localhost:3001
- 2Create an admin account on first access
- 3Ntfy push notification server at http://localhost:8080
- 4In Uptime Kuma, add ntfy notification: http://ntfy/your-topic
- 5Subscribe to ntfy topics on your phone for instant alerts
- 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 file2cat > docker-compose.yml << 'EOF'3services:4 uptime-kuma:5 image: louislam/uptime-kuma:latest6 container_name: uptime-kuma7 restart: unless-stopped8 volumes:9 - uptime_data:/app/data10 ports:11 - "${KUMA_PORT:-3001}:3001"1213 ntfy:14 image: binwiederhier/ntfy:latest15 container_name: kuma-ntfy16 restart: unless-stopped17 command: serve18 ports:19 - "${NTFY_PORT:-8080}:80"20 volumes:21 - ntfy_cache:/var/cache/ntfy22 environment:23 - TZ=${TZ:-UTC}2425volumes:26 uptime_data:27 ntfy_cache:28EOF2930# 2. Create the .env file31cat > .env << 'EOF'32# Uptime Kuma Configuration33KUMA_PORT=300134TZ=UTC3536# Ntfy Push Notifications37NTFY_PORT=808038EOF3940# 3. Start the services41docker compose up -d4243# 4. View logs44docker 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/uptimekuma-statuspage/run | bashTroubleshooting
- 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
Components
uptime-kumantfy
Tags
#uptime#status-page#monitoring#alerts#notifications
Category
Monitoring & ObservabilityAd Space
Shortcuts: C CopyF FavoriteD Download