← All Guides
intermediate

Uptime Kuma Advanced Alerting: Notifications, Status Pages, and API Monitors

Go beyond basic HTTP checks. Configure Uptime Kuma to alert on response time, SSL expiry, keyword presence, and send notifications to Discord, Telegram, or email.

Budget Homelab ·
dockermonitoringuptime-kumaalerting

This post contains affiliate links. If you buy through them, I earn a small commission at no extra cost to you.

The basic Uptime Kuma setup gets you HTTP checks and a ping when something goes down. That’s useful, but it’s just the starting point. Uptime Kuma has a full notification system, certificate monitoring, keyword-based checks, and a public status page you can share.

This guide assumes you already have Uptime Kuma running. If you don’t, follow the basic setup first, then come back here.

Notification Channels

Before your monitors are useful, configure where alerts go. Uptime Kuma supports dozens of notification providers.

Go to Settings > Notifications > Add Notification.

Discord

The easiest setup for most homelab users.

  1. In Discord, go to your server settings > Integrations > Webhooks > New Webhook
  2. Name it, set the channel, copy the webhook URL
  3. In Uptime Kuma: select Discord, paste the webhook URL
  4. Click “Test Notification” to verify

You’ll get a message in your chosen channel when any monitor goes down or recovers.

Telegram

  1. Create a bot via BotFather (@BotFather in Telegram) — send /newbot, follow the prompts, copy the API token
  2. Start a chat with your new bot, then get your chat ID: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  3. In Uptime Kuma: select Telegram, enter the token and chat ID

Telegram notifications work well for mobile — they’re instant and don’t require a Discord app.

Email (SMTP)

In Uptime Kuma: select Email (SMTP), enter your SMTP server details. For Gmail, use:

Setting a Default Notification

After creating a notification channel, check “Default Enabled” to automatically apply it to new monitors. You can add multiple channels and they’ll all fire on alerts.

Advanced Monitor Types

Beyond basic HTTP checks:

Response Time Monitoring

For any HTTP monitor, go to the monitor settings and set:

Useful for catching performance degradation before a full outage — a service that takes 5 seconds to respond is effectively down for most users.

SSL Certificate Expiry

Add an SSL certificate monitor:

  1. New Monitor > type: “SSL Certificate”
  2. Enter the hostname (no https://, just the domain)
  3. Set “Expiry Notification Days” — alert when the cert expires in fewer than X days

Set this to 30 days for Let’s Encrypt certificates. They auto-renew, but alerts catch failures before they become outages.

Keyword Monitoring

HTTP(s) Keyword monitors check for a specific string in the response body. Useful when a service returns 200 OK but is actually showing an error page.

If the keyword is missing from the response, the monitor alerts.

This catches scenarios like a Docker container that’s up but its backend database crashed — the web server returns 200 but shows a database error page.

Docker Container Monitor

Monitor whether a container is in the running state:

The Docker socket needs to be mounted in Uptime Kuma:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

DNS Monitoring

Check that a domain resolves correctly:

Use this to monitor that your internal DNS server is resolving correctly after configuration changes.

Alert Heartbeats (Push Monitors)

Push monitors flip the model — instead of Uptime Kuma polling your service, your service pings Uptime Kuma on a schedule. If the ping stops, Uptime Kuma alerts.

This is useful for cron jobs, backup scripts, and anything that runs periodically.

  1. New Monitor > type: “Push”
  2. Copy the generated push URL
  3. At the end of your cron job or script, add:
    curl -fsS -m 10 --retry 3 "YOUR_PUSH_URL"

If your nightly backup script fails or hangs, the push URL doesn’t get called, and Uptime Kuma alerts after the expected interval.

Status Pages

Status pages let you show a subset of your monitors on a public (or internal) page. Useful for sharing service status with family members or for your own reference.

Go to Status Page > New Status Page.

The status page is available at http://your-uptime-kuma-ip:3001/status/YOUR_SLUG.

If you’re running Uptime Kuma behind a reverse proxy, the status page is accessible at your proxy domain automatically. You can set up a dedicated subdomain (e.g., status.home.yourdomain.com) pointing at the status page.

Alert Cooldowns

To avoid notification spam when a service flaps, configure:

For critical services, check every 30 seconds. For low-priority services, 5-minute intervals are fine and reduce load.

Maintenance Windows

Schedule maintenance windows to suppress alerts during planned downtime:

Go to Maintenance > Add Maintenance.

This prevents alert storms when you’re doing planned updates or reboots.

Backing Up Uptime Kuma

All data lives in the volume mapped to /app/data. Back it up:

docker exec uptime-kuma sh -c "cd /app/data && tar czf - ." > uptime-kuma-backup.tar.gz

Run this on a schedule via cron. The backup includes all monitors, notifications, and status page config.

A small USB drive dedicated to local backups of container data is a cheap insurance policy — 32GB holds years of config backups for typical homelab services.

The Monitoring Stack

Uptime Kuma covers availability and basic performance. For deep metrics (CPU usage over time, memory trends, container resource consumption), pair it with Prometheus + Grafana. The two tools complement each other: Uptime Kuma for “is it up?”, Grafana for “how is it performing?”.

Advanced alerting in Uptime Kuma turns a simple uptime checker into a real monitoring tool. The keyword checks, push monitors, and SSL alerts in particular catch categories of failure that a plain HTTP check misses.