Container Footprint Review
Last updated: 2026-06-14
This note records the current bias for VHNIC Docker architecture: avoid adding
more containers unless a separate container provides a clear operational,
security, or maintainability benefit. Consolidation is allowed when it reduces
complexity without making rollback, permissions, monitoring, or upgrades worse.
Current Bias
- Prefer improving existing stacks before creating new services.
- Prefer one project per functional area, not one project per experiment.
- Keep admin/automation tools internal-only unless there is a deliberate access
- Keep public exposure narrower than internal service count.
- Use monitoring to identify idle or noisy containers before consolidating.
- Do not combine containers just to reduce the visual count if it creates
- Audiobookshelf and Kavita are reader-facing.
- Mylar3 is automation/admin-facing.
- Kavita intentionally gets read-only media mounts; Mylar3 may need writable
- ReadAIrr was approved for retirement on 2026-06-14 and should be removed from
- If Mylar3 is not useful for comics/manhwa, stop or remove Mylar3 after exact
- Keep Audiobookshelf and Kavita if they become the actual reader/player apps.
- HTTP reachability through Blackbox Exporter for
Homepage,Homepage Docs, - Expected-container presence/restart checks through cAdvisor for
homepage, tdarr-exporter,tautulli-exporter,unifi-exporter,- Keeping them separate preserves clearer failure isolation, narrower mounts,
- Combining them would merge secrets/mount permissions and make a bug in one
- The best near-term compromise is to keep exporters separate, but avoid adding
plan.
tighter coupling, broader filesystem permissions, or worse failure isolation.
Book And Audiobook Stack Assessment
| Component | Current Role | Consolidation View |
audiobookshelf | User-facing audiobook library/player | Keep separate. It is the app users care about, has its own metadata/appdata, and may later be public through Caddy for ShelfPlayer. |
readairr | Retired audiobook/ebook automation trial | Remove from runtime and monitoring. The tool created repeated high-IO scans and bad imports without enough value. |
readairr-postgres | Retired ReadAIrr database | Remove with ReadAIrr; no other service should depend on it. |
kavita | Ebook/comic/manhwa reader with read-only media mounts | Keep separate. It is the reader UI and has a safer read-only media posture. |
mylar3 | Comic/manhwa management candidate | Candidate to disable/remove later if unused. Do not connect indexers/download clients until the workflow is explicitly reviewed. |
| Area | Candidate | Notes |
| Historical compose folders | dispatcharr-compose, homarr-compose, old standalone Seerr/NZBGet/Tautulli folders | Keep as history unless the user approves exact cleanup. They should not run or create monitoring noise. |
| Homepage Docs | homepage-docs companion nginx container | Candidate to combine only if Homepage can reliably serve generated docs itself. Current nginx sidecar is simple, read-only, and low risk. |
| Observability exporters | Tdarr, Tautulli, UniFi, Synology log, media pipeline exporters | Combining into a single exporter image would reduce container count but increase blast radius and deployment friction. Keep separate unless exporter overhead becomes a measured problem. |
| Reverse proxy | Caddy | Keep separate. It is the public edge and should stay isolated from app containers. |
| qBittorrent/Gluetun | VPN project | Keep separate as designed. qBittorrent's network namespace depends on Gluetun; this separation is security-relevant. |
| Recyclarr | Manual/reference tool | Already removed from always-on service expectations. Keep manual-only unless explicitly reactivated. |
| Container | Approx Working Set | Interpretation |
plex | 7.7 GB | Dominant load; not a consolidation candidate. |
tdarr | 3.4 GB | Expected heavy media-processing service. |
qbittorrent | 1.0 GB | Meaningful but tied to Gluetun/VPN posture. |
nzbhydra2 | 408 MB | Existing meta-search service; not related to the new book containers. |
seerr | 301 MB | Request app. |
radarr | 266 MB | Core media-management app. |
tautulli | 242 MB | Plex observability/history. |
sonarr | 213 MB | Core media-management app. |
kavita | 205 MB | Reader app; reasonable for a durable reader. |
| Container | Approx Working Set | Approx CPU Cores |
tdarr-exporter | 27 MB | 0.031 |
tautulli-exporter | 18 MB | 0.003 |
media-pipeline-exporter | 17 MB | 0.003 |
unifi-exporter | 12 MB | 0.001 |
synology-log-exporter | 10 MB | 0.007 |
discord-alert-bridge | 5 MB | 0.000 |