6.0 KiB
6.0 KiB
DockDeck platform audit
Updated: 2026-07-15
Executive assessment
DockDeck is now a complete daily-use dashboard rather than a launcher with generic telemetry. Navigation, app management, responsive presentation, widget composition, service-specific data, Unraid host depth, freshness, portability and diagnostics form one coherent read-only product. The P0, P1 and P2 roadmap from the previous audit is implemented.
Current scorecard
| Area | Assessment | Evidence |
|---|---|---|
| Navigation and search | Complete | Dynamic index follows renames, removals, URLs, categories, favorites and Tower. |
| Responsive shell | Complete | Mobile, tablet, desktop and ultrawide layouts have no positive horizontal overflow. |
| App management | Complete | Rename, override, categorize, hide and persistent DockDeck-only removal. |
| Widget composition | Complete | Order, three sizes, content layers, per-metric visibility/order/style, limits, labels, warnings and edit mode. |
| Widget data depth | Complete framework | Live audit: 97/97 apps have a specific capability profile, zero generic profiles; 23 native providers. |
| Unraid host depth | Complete | AppOps plus array/parity/storage/temperature/UPS, selectable stats and configurable server trend charts. |
| Freshness and trends | Complete | Fresh/stale/unavailable semantics, cadence, stale cache and selectable line/area/bar charts up to sixty samples. |
| Portability | Complete | Full secret-free backup plus independent layout preset import/export. |
| Operations | Complete for LAN | Secret-free diagnostics, health endpoint, PWA shell and authenticated reverse-proxy guide. |
| Security | Strong for trusted LAN | Single socketless container, GET-only integrations, masked secrets and API-excluding service worker. |
Delivered roadmap
Personal widget depth
- Persistent Tower name and URL in Settings with port
5000as the default Unraid WebUI route. - Capability coverage expanded from a provider shortlist to every discovered app.
- Native Audiobookshelf, Netdata and PeerTube readers added to the existing provider set.
- Domain profiles for the actual live inventory, including app/API/frontend/worker/database/cache, mail, GPU, download, media, document and custom-project workloads.
- Per-app metric visibility and ordering, including dynamically returned labels and preset/export persistence.
- Per-app value/gauge/progress presentation, statistic limits, line/area/bar charts, legends and selectable 10–60 sample windows.
- Warning rules can target any numeric infrastructure or provider metric and trigger above or below the configured value.
- Capability labels remain app-specific before an endpoint is connected; absent values say
Connect datainstead of showing unrelated generic Docker labels. - BlockPilot root/runtime/API/web/Minecraft/ViaProxy, LumaOps, Chimera, OpenRGB, Porkfolio and unnamed legacy workloads now have explicit profiles rather than the last generic service profile.
- Tower exposes selectable/ordered server statistics and charts for containers, images, storage, temperature, parity and UPS.
- A constrained custom contract (
summaryplus at most twelve stats) for apps without a native read API; endpoint and optional bearer token are configured in Widget Studio and remain server-side.
P0
- Independent widget order with keyboard-accessible move controls.
- Native Unraid adapter for array state, parity, disk/pool usage, temperatures and optional UPS data.
- App-specific Gitea adapter and GET-only metrics bridges for Deluge, JDownloader and Tdarr.
- Explicit freshness states with last-successful provider cache.
P1
- Metric order, primary metric, custom labels and numeric provider/infrastructure warning thresholds.
- Saved, applicable, removable and portable layout presets.
- Safe per-widget refresh cadence between 15 seconds and 5 minutes.
- Direct dashboard edit mode with move, resize and hide controls.
- Provider expansion for Jellyfin, Seerr, Prowlarr, Authentik, NPM, Portainer, Grafana, Prometheus and Nextcloud, plus bridges for qBittorrent, Bazarr and Vaultwarden.
P2
- Selectable line, area and bar charts with at most sixty in-memory points and no monitoring database.
- Installable PWA application shell; API responses are never cached.
- Independent preset export/import.
- Secret-free diagnostics and an authenticated external-access guide.
Remaining environment-dependent opportunities
- Fill provider credentials or bridge URLs in Settings only for services whose protected API data is desired. Safe Docker fallback remains available without them.
- Configure
UNRAID_UPS_STATUS_PATHonly when a stable read-only APC/UPS status file is available on the host. - Enable external access only behind authenticated HTTPS; DockDeck deliberately has no built-in user system.
- Persistent long-term history, alerts and notifications remain intentionally outside scope. They would turn DockDeck into a monitoring platform and need separate retention and delivery decisions.
Guardrails
- A widget is app-specific only when its metrics describe the real workload of that app.
- Every external request remains GET-only, time-bounded and server-side.
- Provider failure never blocks navigation and always falls back to safe telemetry.
- Compact panels answer one question, standard panels a few, and wide panels may expose deeper context.
- Layout remains fully usable without drag-and-drop and is tested at both mobile and ultrawide sizes.