How to self-host Uptime Kuma in 2026: free monitoring + status page
Uptime Kuma is the open-source monitoring tool with 64,000 GitHub stars. Free, 90+ notification channels, public status pages out of the box. Three ways to self-host — including a 3-minute deploy on livemy.app.
Dmytro Chervonyi
Co-founder & CMO, livemy.app
Last updated
TABLE OF CONTENTS
item

AI Summary
Uptime Kuma is the self-hosted alternative to UptimeRobot, Pingdom, BetterStack, and other commercial monitoring services. 64,000 GitHub stars, single Docker container, 90+ notification channels out of the box. Version 2.1 (February 2026) added MariaDB support, rootless containers, Globalping worldwide probes, and domain expiry monitoring. Pricing math is simple: UptimeRobot Pro is $9–18/month for 50 monitors, BetterStack starts at $25/month. Uptime Kuma self-hosted is free — you pay only for the server (~$5/month VPS or $20/month flat on livemy.app for the managed option). This guide walks the three self-host paths, the notification setup that catches teams off guard, and the 3-minute flow to a livemy.app deploy with custom domain and free SSL.
What Uptime Kuma is and why people self-host it
Uptime Kuma is open-source monitoring. Single Docker container, web dashboard, 90+ notification channels (Slack, Discord, Telegram, PagerDuty, email, SMS via Twilio, webhooks, more). 64,000 GitHub stars in 2026 — one of the highest-starred self-hosted projects.
Three reasons people self-host instead of using UptimeRobot, Pingdom, or BetterStack.
Pricing of commercial alternatives. UptimeRobot Pro $9–18/month (50–300 monitors). Pingdom from $15/month. BetterStack from $25/month. Uptime Kuma self-hosted: free at any monitor count.
Better status pages. Built-in public status pages with custom logo, grouped services, real-time uptime percentages — features that commercial monitoring tools usually gate behind paid tiers.
Privacy of monitored endpoints. Internal APIs, staging environments, VPN-protected services — self-hosted Uptime Kuma can monitor anything reachable from your server, including internal network targets.
Three ways to self-host Uptime Kuma
Path A: Docker on your own VPS (simplest setup)
Uptime Kuma is one of the easiest self-hosts — a single command brings it up:
docker run -d --name uptime-kuma --restart unless-stopped -p 3001:3001 -v uptime-kuma-data:/app/data louislam/uptime-kuma:1
For production, use Docker Compose so you can persist data and restart cleanly. Total realistic setup time: 30 minutes including SSL + reverse proxy on a basic VPS.
Path B: Managed Docker host (Coolify, Dokploy)
Uptime Kuma is the textbook one-click template. Both Coolify and Dokploy ship it ready to go. Click Deploy, point your domain, configure your first monitor.
Path C: livemy.app one-click deploy
Pick the Uptime Kuma template, point your domain, ship. livemy.app handles SSL, persistent volume, optional MariaDB (Version 2.0+ supports it for larger setups).
The good. Three-minute deploy. $20/month flat. The monitor itself runs from livemy.app's network — a real third-party perspective on your other apps.
From zero to Uptime Kuma on livemy.app (about 3 minutes)
Step 1: Sign up at livemy.app, pick Maker
Go to livemy.app, click Start free, pick Maker ($20/month). Always-on is non-negotiable for monitoring — a monitor that sleeps doesn't check anything.
Step 2: Deploy from the Uptime Kuma template
In the dashboard: New project → Template → Uptime Kuma. livemy.app pulls the latest louislam/uptime-kuma image, mounts persistent storage.
Step 3: First-time setup wizard
Uptime Kuma has almost no required environment variables — most configuration happens in the UI. When status flips to Live, visit the URL, the first visitor becomes the admin (set a strong password).
Step 4: Add your first monitor
Click Add New Monitor. Pick a type (HTTPS, Ping, Port, Push, gRPC, MQTT, DNS, Steam, Docker container, MariaDB, MS SQL, PostgreSQL, Redis, MongoDB, Radius, Mqtt 5, Group, RabbitMQ, Kafka Producer, Tailscale Ping, Manual). For most websites: HTTPS + URL + 60-second interval.
Step 5: Wire up notifications
Settings → Notifications. Add at least one notification channel. Most popular: Discord webhook, Slack incoming webhook, Telegram bot, email (SMTP). For PagerDuty/Opsgenie, the integration walks you through API keys.
Step 6: Build a status page
Status Pages in the sidebar → New Status Page. Add monitors to groups (e.g., "Marketing site", "API", "Database"), upload a custom logo, set a URL slug. The public status page lives at your-uptime-kuma.com/status/your-slug, updates in real time over WebSocket.
Optional: point a separate subdomain (e.g., status.yourdomain.com) at the same livemy.app instance for a cleaner public URL.
Five things that quietly break self-hosted Uptime Kuma
1. Monitoring your own host means single point of failure
If Uptime Kuma is monitoring your production app and they share the same host, an outage takes both down. You can't be notified about a problem if the notifier is also down.
Fix. Run Uptime Kuma on a different host from the apps it monitors. livemy.app's container runs on different infrastructure than your other livemy.app projects — fine for most setups. For mission-critical monitoring, run Uptime Kuma on a totally separate provider.
2. Notifications quietly fail without test runs
It's easy to configure a Slack webhook, get the green tick, and assume it works — only to discover during an actual outage that Slack throttled the webhook or your incoming webhook URL changed.
Fix. Use the "Test" button next to each notification channel after setup. For critical monitors, configure two notification channels (e.g., Slack + email or PagerDuty + Telegram).
3. SQLite database grows on disk over time
Uptime Kuma stores monitor history in SQLite by default. At 1-minute intervals on 50 monitors, the database grows by a few MB per month. Over years it can reach several GB.
Fix. Set retention in Uptime Kuma settings (default keeps everything; configure to 90 days or 1 year). For very large setups, Version 2.0+ supports MariaDB — better at scale.
4. False positives from monitoring intervals that are too tight
A 20-second monitoring interval will catch any momentary blip — including legitimate ones like a brief network hiccup or a load balancer health check. Result: noisy alerts, alert fatigue, team starts ignoring real outages.
Fix. Default to 60-second intervals. Configure "Retry" to 3–5 (Uptime Kuma waits N consecutive failures before alerting). For non-critical checks, 5-minute intervals are usually plenty.
5. Status page leaks internal details
If you add internal API endpoints to the status page (e.g., https://internal-api.yourcorp.local/health), the URL itself leaks to anyone viewing the status page.
Fix. Use friendly names for status-page monitors ("Marketing API" instead of the raw URL). Group internal services into a separate, password-protected status page.
Cost: commercial monitoring vs self-hosted on livemy.app
Real numbers for a team monitoring 30 endpoints.
UptimeRobot Pro: $9/month for 50 monitors. Fine if 30 is your hard ceiling.
Pingdom Basic: $15/month for 10 uptime checks. Outgrows quickly.
BetterStack: $25/month for 50 monitors, public status page.
Self-hosted Uptime Kuma on a $5 VPS: $5/month for unlimited monitors and one status page.
Self-hosted on livemy.app: $20/month flat. Unlimited monitors, unlimited status pages, custom domain, SSL, backups all included.
Uptime Kuma's edge: unlimited monitors at any of the self-host price points. The commercial alternatives bill per monitor or per check; Uptime Kuma doesn't.
FAQ
Is Uptime Kuma really free?
The software is free under the MIT license. You pay only for the server. Realistic total: $5–20/month depending on hosting choice. No per-monitor fees, no per-status-page fees.
Can I monitor internal services?
Yes — anything reachable from the Uptime Kuma host. For VPN-protected services, host Uptime Kuma inside your network or set up a Tailscale connection. Uptime Kuma supports Tailscale Ping as a native monitor type.
What notifications does Uptime Kuma support?
90+ channels including Slack, Discord, Telegram, Microsoft Teams, PagerDuty, Opsgenie, email (SMTP), webhooks, SMS via Twilio, Apprise, Gotify, Ntfy, and many more. The full list is in Settings → Notifications dropdown.
Can I share a public status page?
Yes. Uptime Kuma's status pages are public by default and live at your-domain.com/status/your-slug. Custom logo, grouped monitors, real-time updates over WebSocket. Optional: point a custom subdomain at the page for a cleaner URL.
Does Uptime Kuma do worldwide probes?
As of version 2.1 (Feb 2026), yes — the Globalping integration adds worldwide probing from multiple regions. Useful for detecting CDN issues or region-specific outages without spinning up Uptime Kuma instances in each region.
Will it auto-update?
On livemy.app, opt into auto-update or pin to a specific version. Uptime Kuma releases minor versions roughly monthly. Auto-update on a managed platform keeps you current without manual work.
Self-host Uptime Kuma — unlimited monitors, custom status page
If you're paying UptimeRobot, Pingdom, or BetterStack monthly for monitoring, Uptime Kuma replaces them at a flat self-hosted cost with no monitor cap. The cheapest path is a $5 VPS. The fastest path is livemy.app's Uptime Kuma template.
→ Start free on livemy.app · Uptime Kuma template, persistent volume, custom domain, SSL, backups, all on Maker at $20/month flat.
Migrating from UptimeRobot or BetterStack? Email hello@livemy.app with your monitor list. Replies inside one business day.
Read next

Dmytro Chervonyi
,
Co-founder & CMO, livemy.app
Co-founder & CMO at livemy.app. 12 years as a CMO scaling SaaS from $0 to $10M+ ARR across marketing, sales, and infra products and tools. Now building the missing step between AI-built code and a live URL — for non-developers who’d rather ship than learn DevOps.


