maintenant¶
The all-in-one monitoring dashboard your self-hosted stack deserves.
Drop a single container. Watch everything. Sleep at night.
What is maintenant?¶
Most self-hosters juggle 3-5 tools to monitor their stack: one for containers, one for uptime, one for certs, one for metrics, and yet another for a status page. maintenant replaces all of them with a single binary, zero external dependencies, and zero configuration to get started.
Deploy one container, and maintenant auto-discovers your entire stack. Docker or Kubernetes — it does not matter.

Key Features¶
- Container Monitoring — Zero-config auto-discovery for Docker and Kubernetes. State tracking, health checks, restart loop detection, log streaming.
- Docker Swarm Monitoring — Automatic Swarm service discovery, stack grouping, node health, crash-loop detection, rolling update tracking. CE + Enterprise.
- Endpoint Monitoring — HTTP and TCP checks defined as Docker labels. Response times, uptime history, sparklines.
- Heartbeat & Cron Monitoring — Create a monitor, get a URL, curl from your cron job. Tracks durations, exit codes, missed deadlines.
- TLS Certificate Monitoring — Auto-detection from HTTPS endpoints. Alerts at 30, 14, 7, 3, and 1 day before expiry. Full chain validation.
- Resource Metrics — CPU, memory, network I/O, disk I/O per container. Historical charts, alert thresholds, top consumers view.
- Update Intelligence — OCI registry scanning, digest comparison. Compose-aware update commands. Know when your images have updates available.
- Network Security Insights — Automatic detection of exposed ports, dangerous network configurations, and privileged containers. CVE ecosystem mapping via OCI manifest inspection.
- Alert Engine — Unified alerts across all sources. Webhook and Discord channels. Silence rules, exponential backoff. Slack, Teams, and Email with Pro.
- Public Status Page — Component groups, live SSE updates. Incident management, maintenance windows, and subscriber notifications with Pro.
- MCP Server — Expose monitoring data to AI assistants (Claude Code, Cursor) via the Model Context Protocol. 18 tools, stdio and HTTP transports.
Comparison¶
| maintenant | Uptime Kuma | Portainer | Dozzle | |
|---|---|---|---|---|
| Container auto-discovery | Yes | No | Yes | Yes |
| HTTP/TCP endpoint checks | Yes | Yes | No | No |
| Cron/heartbeat monitoring | Yes | Yes | No | No |
| SSL certificate tracking | Yes | Yes | No | No |
| CPU/memory/network metrics | Yes | No | Limited | No |
| Image update detection | Yes | No | Yes | No |
| Network security insights | Yes | No | No | No |
| Public status page | Yes | Yes | No | No |
| Alerting (webhook, Discord) | Yes | Yes | Limited | No |
| Docker Swarm monitoring | Yes | No | Limited | No |
| Kubernetes native | Yes | No | Yes | No |
| MCP for AI assistants | Yes | No | No | No |
| Single binary, zero deps | Yes | Node.js | Docker API | Docker API |
Quick Start¶
Get maintenant running in 30 seconds:
# docker-compose.yml
services:
maintenant:
image: ghcr.io/kolapsis/maintenant:latest
ports:
- "8080:8080"
read_only: true
security_opt:
- no-new-privileges:true
group_add:
- "${DOCKER_GID:-983}" # match host's docker group
tmpfs:
- /tmp:noexec,nosuid,size=64m
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:
Open http://localhost:8080 — your containers are already there. No configuration needed.
For detailed installation instructions, see Installation.