Solid starting point. One gap I’d flag: you have Portainer for management and Watchtower for updates, but nothing that tells you when something actually breaks. When you’re running this many containers, you’ll eventually wake up to a service that silently crashed at 3am.
Two directions depending on how deep you want to go:
- Minimal: Uptime Kuma — great for HTTP pinging your services. Simple, clean UI.
- Docker-native: Maintenant (GitHub) — single container, auto-discovers everything via the Docker socket, tracks container states + restart loops + HTTP endpoints + cron jobs + SSL certs. No config needed, ~17 MB RAM, read-only socket access.
Disclaimer: I built Maintenant, so I’m biased — but the reason I built it is exactly this gap. Portainer tells you what’s running, Watchtower keeps it updated, but neither alerts you when something is unhealthy. Worth adding monitoring before you need it.


One thing that helps with the “should I update?” anxiety: knowing what changed and whether it actually matters for your setup before pulling the trigger.
I built Maintenant (GitHub) and one of the features I added for exactly this reason is update detection — it checks OCI registries via HEAD requests (no image pulls, no bandwidth waste) and tells you which containers have newer images available. The Pro tier goes further with CVE detection and risk scoring that cross-references whether the container is exposed to the internet, has dependents, etc.
It won’t auto-update anything — that’s a deliberate choice, the tool is observe-only and never touches your stack. But it gives you the information to decide when updating is worth the risk, instead of either blindly auto-updating with Watchtower or manually checking Docker Hub every week.
Also does container monitoring, HTTP/TCP checks, heartbeats for cron jobs, and SSL cert tracking if you want to consolidate. Single container, zero config, ~17 MB RAM. AGPL-3.0.