What Uptime Kuma Does Well
Uptime Kuma is an excellent tool. With over 65,000 GitHub stars, it is the most popular self-hosted uptime monitor. The interface is clean, setup is simple, and the status pages are well designed. For pure HTTP/TCP endpoint monitoring, it is hard to beat.
If all you need is “is this URL responding?” — Uptime Kuma is a solid choice.
The Limitation
Uptime Kuma is not container-aware. It sees URLs, not infrastructure. When your API goes down because PostgreSQL crashed because the disk was full, Uptime Kuma tells you the API is unreachable — 20 minutes later. But it cannot tell you why.
It does not know:
- Which containers are running, stopped, or in a restart loop
- How much CPU, RAM, or disk each container uses
- Whether your Docker images have security updates available
- Whether your SSL certificates are about to expire (unless you add a dedicated monitor)
- Whether your cron jobs are actually executing
For each of these, you need another tool. And suddenly, you are back to juggling 5 dashboards.
Who Should NOT Switch
Maintenant does not replace Uptime Kuma if you:
- Do not use Docker or Kubernetes — Maintenant is container-focused. If you monitor bare-metal servers or VMs without containers, Uptime Kuma is more appropriate.
- Need 20+ notification channels — Uptime Kuma supports an impressive number of notification services out of the box. Maintenant supports webhook, Discord (Community), and Slack, Teams, Email (Pro).
- Want a polished mobile app — Uptime Kuma has a mature responsive UI optimized for mobile. Maintenant has a PWA that works well on mobile but is newer.
Who Should Switch
- Docker users who want one tool instead of Uptime Kuma + cAdvisor + Healthchecks.io + a bash script
- Self-hosters who are tired of manually adding a monitor every time they deploy a new container
- Teams who want monitoring-as-code via Docker labels instead of clicking through a web UI
Maintenant vs Uptime Kuma — Feature Comparison
| Capability | Uptime Kuma | Maintenant |
|---|---|---|
| HTTP/TCP endpoint checks | ✓ | ✓ |
| Container auto-discovery | ✗ | ✓ |
| Docker label configuration | ✗ | ✓ |
| Container state monitoring | ✗ | ✓ |
| CPU / RAM / disk metrics | ✗ | ✓ |
| Heartbeat / cron monitoring | Basic (push) | ✓ (start/end, duration, exit codes — 10 free, unlimited Pro) |
| SSL certificate monitoring | ✓ (per monitor) | ✓ (auto-detected on HTTPS endpoints) |
| Update detection (OCI digest) | ✗ | ✓ |
| Public status page | ✓ | ✓ (Pro: incidents, maintenance, subscribers) |
| Network security insights | ✗ | ✓ (Pro: CVE + risk score) |
| REST API | ✓ | ✓ |
| Notification channels | 90+ | Webhook + Discord (free), Slack/Teams/Email (Pro) |
| Self-hosted | ✓ | ✓ |
| Runtime | Node.js | Go (single binary) |
| RAM usage (idle) | ~100+ MB | ~17 MB |
| Price | Free | Free (Community) / 9 €/month (Pro) |
What Maintenant Adds
Container auto-discovery
Deploy Maintenant, and all your containers appear in the dashboard within seconds. No manual configuration.

HTTP/TCP endpoint monitoring via Docker labels
Configure monitoring directly in your docker-compose.yml. No web UI clicking:
labels:
maintenant.endpoint.http: "https://api.example.com/health"
maintenant.endpoint.interval: "30s"

System resource metrics
CPU, RAM, network, disk — per container and per host. With threshold alerts.

Advanced heartbeat monitoring
Track cron job durations, exit codes, and detect stuck jobs with start/end signals.

SSL certificate tracking
Automatic detection on all HTTPS endpoints. Alerts at 30, 14, 7, 3, 1 day before expiration.

Update detection
Know when security updates are available for your Docker images before they become a problem.

Migrating from Uptime Kuma
Add Maintenant to your stack. Your containers are discovered automatically. Add Docker labels for HTTP endpoints you want to monitor. Once satisfied, remove Uptime Kuma:
services:
maintenant:
image: ghcr.io/kolapsis/maintenant:latest
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/host/proc:ro
- maintenant-data:/data
environment:
MAINTENANT_ADDR: "0.0.0.0:8080"
MAINTENANT_DB: "/data/maintenant.db"
restart: unless-stopped
volumes:
maintenant-data:
FAQ
Can I run both during a transition? Yes. They do not interfere with each other.
I have 50+ monitors in Uptime Kuma. Do I need to recreate them all? Containers are discovered automatically. For HTTP/TCP endpoints, add Docker labels to your services. For external URLs (not running in Docker), use the Maintenant API or dashboard.
Does Maintenant have as many notification channels as Uptime Kuma? No. Uptime Kuma supports 90+ channels. Maintenant supports webhook (which can integrate with anything), Discord, and with Pro: Slack, Teams, and Email. The webhook channel covers most use cases via services like ntfy or Gotify.
What about the status page? Both offer public status pages. Maintenant Pro adds incident management and maintenance windows.