A Flutter control center for a self-hosted media stack that monitors and manages Docker media services, Node.js backends, and local conversion and automation workflows from a single app — on desktop or mobile, over LAN or Tailscale.
It shows live status, CPU, RAM, and network I/O for containers like Jellyfin, Sonarr, Radarr, qBittorrent, and Prowlarr (talking to the Docker Engine API via Dockerode), with start/stop/restart and log viewing. A process manager spawns and health-checks the various Node backends, stripping PORT/HOST from the parent env so each child reads its own config and avoids port conflicts.
Beyond monitoring it does real work: an MKV→MP4 converter probes files with ffprobe and chooses remux vs. audio re-encode, mapping subtitle streams correctly and reporting live FFmpeg progress; a one-click Anime Dual Audio setup idempotently configures Sonarr/Radarr custom formats and quality-profile scores; and a floating Iris chat bubble streams responses and dispatches parsed actions like “restart jellyfin.” Smart IP resolution lets the same build work on PC, phone-on-WiFi, and phone-on-Tailscale with no config changes.
Dashboard Demo