Maintenant v1.1.0
New Features
Network Security Insights
Maintenant now inspects container network configurations and flags common misconfigurations:
- Exposed port analysis — detects containers binding directly to
0.0.0.0, database ports exposed without restriction, and host-network mode usage - Dynamic CVE ecosystem resolver — maps container images to their software ecosystem (OS packages, language runtimes, application servers) using OCI manifest inspection with a multi-level fallback chain (labels, manifest config, known image databases)
- Per-container security detail — security insights are accessible directly from the container detail panel
Unified Security Posture Dashboard (Pro)
A new dedicated page provides a single view of infrastructure security health:
- Security posture scoring — each container receives a score based on its network exposure, image update status, and CVE-relevant configuration. A global posture view aggregates scores across the infrastructure
- Global posture score with breakdown by category (network, updates, configuration)
- Per-container risk ranking with drill-down to individual findings
- Severity distribution across all monitored containers
- Risk acknowledgment — dismiss known findings with audit trail
In-Place Entity Navigation
Alerts, dashboard, and security posture pages now open entity details directly in a slide-over panel instead of navigating away. This keeps context visible while inspecting a specific container, endpoint, or certificate.
- Incident feed items link directly to the relevant entity with its detail panel auto-opened
- Deep linking support — entity detail URLs are shareable
Compose-Aware Update Commands
Update and rollback commands now include the correct --project-directory flag, so they work reliably when the compose file lives outside the current working directory.
Bug Fixes
- Stale update records after container upgrade — update records now clear automatically when a container has been upgraded to the latest version, and re-scans correctly update the tracked current tag
- Certificate monitor UNIQUE constraint — certificate monitor creation no longer fails on startup when an inactive monitor already exists for the same host:port pair
- Memory consumer sorting — top consumers are now ranked by absolute memory usage (bytes) instead of percentage of limit, which gave misleading results for containers with memory limits set
- MAINTENANT_ADDR in deployment examples — all docker-compose examples now include the required
MAINTENANT_ADDRenvironment variable
Technical Improvements
Application Architecture
The backend has been restructured for maintainability:
- App container — service wiring extracted from
main.gointointernal/app, reducing the main function to configuration and startup - Dependency injection via Deps structs — all service constructors now accept a typed struct instead of positional parameters, making dependencies explicit and constructor signatures stable as the codebase grows
- Dead code removal — unused
SetEventCallbackcalls and orphaned registration methods cleaned up
HTTP Layer
- Middleware chain extraction — middleware is now composed declaratively instead of being nested in the router constructor
Register*methods folded intoNewRouter— route registration is centralized, removing scattered setup codehttp.Flusherpreservation — the middleware chain now correctly passes through theFlusherinterface, fixing SSE streaming through middleware
Testing
- Unit tests added for heartbeat, resource, status, and five other core service packages
- Tests run with
-raceto catch concurrency issues early
Frontend
ContainerCardredesigned using design system tokens for consistent spacing, typography, and color usage- SMTP notification page shows a clear "not configured" placeholder instead of an empty state
- Page layouts normalized across the application
Build Tooling
Makefileadded withbuild,test, andlinttargets
Upgrading from v1.0.1
- Pull the new image and recreate:
docker compose up -d --force-recreate - Database migrations run automatically (adds compose working directory tracking)
- No configuration changes required