Skip to main content
Back to blog

Monitoring your services with Uptime Kuma

·2 min readHomelab

Running services without monitoring is flying blind. You find out something is down when you try to use it, or worse, when someone else tells you. Uptime Kuma is a self-hosted monitoring tool that checks your services and alerts you when they are unreachable.

What it monitors

Uptime Kuma can monitor HTTP endpoints, TCP ports, DNS records, Docker containers, and more. For each monitor, it periodically sends a request and records whether the service responded correctly. If it fails a configurable number of times, it sends you an alert.

The dashboard shows uptime percentages, response times, and a history of incidents. It is clean and easy to read at a glance.

Setting it up

One Docker container:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data

Open http://your-server-ip:3001, create an admin account, and start adding monitors.

What I monitor

I have monitors for every service I run:

  • HTTP monitors for web apps (Nextcloud, Vaultwarden, this website)
  • TCP monitors for databases and non-HTTP services
  • Docker container monitors for services running on the same host
  • Ping monitors for network infrastructure

Each monitor checks every 60 seconds. If a service fails 3 consecutive checks, I get an alert.

Notifications

Uptime Kuma supports a long list of notification channels: Discord, Slack, Telegram, email, Pushover, Gotify, and many more. I use Telegram because it is instant and works on every device.

Setting up a Telegram notification:

  1. Create a Telegram bot through BotFather
  2. Get your chat ID
  3. Add the bot token and chat ID in Uptime Kuma's notification settings
  4. Assign the notification to your monitors

Now when my Nextcloud goes down at 2 AM, I get a Telegram message. Whether I act on it at 2 AM is a different question.

Status pages

Uptime Kuma can generate public status pages that show the current state of your services. This is useful if you run services that other people depend on. You get a clean page showing which services are up, any active incidents, and uptime history.

The value

Before Uptime Kuma, I would occasionally discover that a service had been down for days without me noticing. Now I know within minutes. For a single Docker container with zero ongoing costs, the visibility it provides is invaluable.

Sources

Enjoying the blog? Subscribe via RSS to get new posts in your reader.

Subscribe via RSS