Files
geointel/docs/PLATFORM_AUDIT.md
T
Jens d5ea270329
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
Update GeoIntel project files
2026-07-25 23:43:08 +02:00

6.0 KiB
Raw Blame History

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 5000 as 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 1060 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 data instead 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 (summary plus 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_PATH only 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.