Skip to Content

Self-Host Uptime Kuma: Monitor All Your Services in 10 Minutes

Keep tabs on every service in your homelab with this lightweight, beautiful monitoring tool

You can't fix what you don't know is broken. Uptime Kuma gives you real-time monitoring for every service in your homelab — with a beautiful dashboard, instant alerts, and a 5-minute setup.

Why Self-Host Your Monitoring?

Commercial monitoring services like UptimeRobot or Pingdom work fine — until you hit their free tier limits or need to monitor internal services. If you're running a homelab with Plex, Nextcloud, Pi-hole, or any self-hosted apps, you need monitoring that can reach inside your network.

Uptime Kuma is the answer. It's lightweight, open-source, and designed specifically for homelab enthusiasts. Unlike enterprise tools that require a PhD to configure, Uptime Kuma is refreshingly simple.

What You'll Build

  • A self-hosted monitoring dashboard accessible from anywhere
  • HTTP(s), TCP, ping, and keyword monitoring for unlimited services
  • Instant notifications via Telegram, Discord, email, or 20+ other channels
  • Beautiful status pages you can share with users
  • Response time graphs and uptime history

Prerequisites

  • A VPS or server with Docker installed (1GB RAM minimum, 2GB recommended)
  • Docker and Docker Compose plugin installed
  • A domain name (optional, for HTTPS)
  • 10 minutes of your time

Step 1: Create the Docker Compose File

Create a directory for Uptime Kuma and a docker-compose.yml file:

mkdir -p ~/uptime-kuma && cd ~/uptime-kuma

cat > docker-compose.yml << 'EOF'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=UTC
EOF

Step 2: Start Uptime Kuma

docker compose up -d

That's it. Uptime Kuma is now running on port 3001.

Step 3: Initial Setup

  1. Open http://your-server-ip:3001 in your browser
  2. Create your admin account (username + password)
  3. You'll land on the dashboard — empty, ready for your first monitor

Step 4: Add Your First Monitor

Click "Add New Monitor" and configure:

  • Monitor Type: HTTP(s) for web services, Ping for servers, TCP for databases
  • Friendly Name: "My Nextcloud" or "Plex Server"
  • URL: The service URL (e.g., https://nextcloud.mydomain.com)
  • Interval: 60 seconds (default) or as low as 20 seconds for critical services

Click "Save" — Uptime Kuma starts checking immediately.

Step 5: Set Up Notifications

This is where Uptime Kuma shines. Click Settings → Notifications → Add Notification:

  • Telegram: Create a bot via @BotFather, get the token and chat ID
  • Discord: Create a webhook in your server settings
  • Email: Use SMTP or a service like Mailgun
  • Pushover/Pushbullet: For mobile push notifications

Test the notification, then assign it to your monitors. You'll get alerted within seconds of a service going down.

Step 6: Create a Status Page (Optional)

Want to show service status to users or teammates? Go to Status Pages → New Status Page:

  • Give it a name and custom domain
  • Select which monitors to display
  • Share the public URL

Perfect for teams, homelab dashboards, or showing off your uptime to friends.

Verification

Confirm everything is working:

  1. Visit your dashboard — you should see green "Up" badges for all monitors
  2. Stop a test service: docker stop <container_name>
  3. Within 60 seconds, Uptime Kuma should show red "Down" and send a notification
  4. Restart the service — confirm the "Up" notification arrives

Next Steps

  • Reverse proxy: Put Uptime Kuma behind Traefik or Nginx Proxy Manager for HTTPS
  • Monitor Docker containers: Use the Docker socket proxy for container health checks
  • Backup: The ./data directory contains everything — back it up regularly
  • Pair with Grafana: Export metrics to Prometheus for long-term trending

Related Guides

Uptime Kuma is the monitoring tool every homelab needs but doesn't know it yet. Set it up once, and you'll wonder how you ever managed without it.

Self-Host Kopia: Modern Encrypted Backups with GUI in 15 Minutes