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.
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.
- In Discord, go to your server settings > Integrations > Webhooks > New Webhook
- Name it, set the channel, copy the webhook URL
- In Uptime Kuma: select Discord, paste the webhook URL
- Click “Test Notification” to verify
You’ll get a message in your chosen channel when any monitor goes down or recovers.
Telegram
- Create a bot via BotFather (
@BotFatherin Telegram) — send/newbot, follow the prompts, copy the API token - Start a chat with your new bot, then get your chat ID:
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - 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:
- Host:
smtp.gmail.com - Port:
587 - Security: STARTTLS
- Username: your Gmail address
- Password: an App Password (not your account password — generate one in Google Account settings)
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:
- Max Response Time: the threshold in milliseconds
- Uptime Kuma alerts if the site responds but is slower than this threshold
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:
- New Monitor > type: “SSL Certificate”
- Enter the hostname (no
https://, just the domain) - 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.
- New Monitor > type: “HTTP(s) - Keyword”
- URL: your service URL
- Keyword: a string that should appear in a healthy response (e.g., “Welcome” or a specific element ID)
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:
- New Monitor > type: “Docker Container”
- Container name: exact name of the container
- Docker host:
unix:///var/run/docker.sock(or configure a remote Docker host)
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:
- New Monitor > type: “DNS”
- Hostname: the domain to resolve
- Resolver Server: the DNS server to query (useful for testing Pi-hole or your internal DNS)
- Lookup Type: A, AAAA, CNAME, etc.
- Expect: the expected IP or value
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.
- New Monitor > type: “Push”
- Copy the generated push URL
- 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.
- Set the slug (the URL path for the page)
- Add monitors you want to display
- Configure incident messages if you want to add manual status updates
- Toggle “Public” if you want it externally accessible
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:
- Resend Notification Every X Hours When Down — sends a reminder if a service stays down
- Heartbeat Interval — how often to check (default 60 seconds; adjust per service)
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.
- Set the time window and recurring schedule
- Select which monitors to suppress during 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.