Uptime Kuma is an excellent tool. With over 65,000 stars on GitHub, it’s the de facto standard for self-hosted uptime monitoring. I used it for years before building Maintenant.
This article isn’t here to bash Uptime Kuma. It’s an honest comparison to help you pick the right tool for your situation.
What Uptime Kuma does well
Uptime Kuma excels at HTTP endpoint monitoring. The interface is clean, configuration is straightforward through the web UI, and the status pages are well thought out. The community is active and the project is well maintained.
If all you need is to monitor HTTP URLs and display a status page, Uptime Kuma is a solid choice.
Where Maintenant goes further
The fundamental difference: Maintenant is container-aware. It doesn’t just check whether an endpoint responds – it sees your entire Docker or Kubernetes infrastructure.
Auto-discovery
With Uptime Kuma, every monitor must be created manually in the UI. If you add a new container to your stack, you have to remember to add a monitor for it.
With Maintenant, containers are discovered automatically. Add a service to your docker-compose.yml, run docker compose up -d, and it shows up in the dashboard within seconds.
Label-based monitoring
Maintenant uses Docker labels to configure monitoring directly in your docker-compose.yml:
services:
api:
image: myapp:latest
labels:
maintenant.endpoint.http: "http://api:3000/health"
maintenant.endpoint.interval: "15s"
maintenant.alert.severity: "critical"
Your monitoring configuration lives alongside your code. It’s versioned, reproducible, and doesn’t require a separate UI.
System metrics
Uptime Kuma doesn’t monitor system metrics. CPU, RAM, disk, network – you need another tool for that. Maintenant collects them per container and per host, with alerts on configurable thresholds.
Heartbeats and cron jobs
Uptime Kuma added support for push monitors, but Maintenant takes the concept further with job duration tracking, exit codes, and start/finish signals.
Comparison table
| Feature | Maintenant | Uptime Kuma |
|---|---|---|
| HTTP/TCP checks | ✓ | ✓ |
| Container auto-discovery | ✓ | – |
| Docker label config | ✓ | – |
| CPU/RAM/disk metrics | ✓ | – |
| Advanced heartbeats | ✓ | Basic |
| SSL monitoring | ✓ | ✓ |
| Update detection | ✓ | – |
| Native Kubernetes | ✓ | – |
| Status page | ✓ | ✓ |
| REST API | ✓ | ✓ |
| Installation | 1 container | 1 container |
| Memory footprint | ~17 MB | ~100+ MB |
When to choose what
Choose Uptime Kuma if you only need HTTP/TCP monitoring with a polished interface and you don’t manage Docker containers.
Choose Maintenant if you deploy with Docker or Kubernetes and you want a unified view of your entire stack – containers, endpoints, SSL, cron, metrics – in a single tool.
Both are self-hosted, free, and respectful of your data. The question isn’t which one is “better,” but which one fits your use case.