Files
peardock/ROADMAP.md
T
Raven Scott 42a69c6dc7 Ship Track G UX, multi-shell terminals, Swarm default-on, install.peardock.boats
Probe bash/sh/ash and related shells until a container terminal works, enable Swarm APIs by default, add keyboard go-chords and appearance prefs, and point install docs at https://install.peardock.boats.
2026-07-11 18:06:46 -04:00

6.0 KiB
Raw Blame History

peardock Roadmap

Goal: A production-grade, peer-to-peer Docker operations console—full Engine coverage on the server, and a desktop UI that feels as complete, guided, and trustworthy as the best commercial Docker management tools, without copying any products branding or layout.

Status (2026-07-11):

Track Status
A — Platform / Engine / security Complete
B — Product UI & operator experience Complete
C — UX polish & full-app experience Complete
D — Holesail tunnels Complete
E — Docker ops / Portainer-parity (core) Complete
F — Optional Docker ops enhancements Complete
G — UI/UX design system & power-user chrome 🔄 In progress
npm test
npm run server
npm run dev

Implementation map

Concern Location
Host snapshot / IPAM / suggestions server/utils/suggestions.js
Multi template lists client/templateLists.js, Settings
Peer disk cache client/peerCache.js
Jobs + feedback client/jobs.js, libs/uiUtils.js
Settings subtabs ui/ops-app.js, index.html
Holesail server/services/holesail-tunnels.js, client/holesailBareControl.cjs
GitOps server/utils/gitops.js
Recreate / system prune recreateContainer, systemPrune
Track F extras UI ui/track-f-extras.js
Track G UX chrome ui/track-g-ux.js, ui/modern.css, Settings → Appearance
Volume browser browseVolume RPC
Schedules server/services/schedules.js
Fleet environments peer env tags + filter

Tracks AF — Complete

See git history. Core Engine coverage, product UI, Holesail, recreate, system prune, Hub search, secrets/configs lists, settings subtabs, volume browse, schedules, fleet envs.


Track F — Optional Docker ops — Complete

Item Delivery
Volume file browser RPC browseVolume + Volumes 📂 action + modal
Stack env file + re-deploy Env file textarea on deploy stack → envFileContent
Service scale UI Scale button on Swarm services table → scaleService
Create secret / config Forms on Swarm Secrets/Configs tabs
Disconnect network Unlink on container networking cards → disconnectNetwork
Registry browser Access view Hub search + pull (vault for private creds)
Scheduled maintenance Server schedules (prune/ping) + Host panel UI
Container resource editor Resources… menu → live updateContainer
Log download / export logs-download-btn + getContainerLogs
Multi-host environments Fleet env tags (prod/staging/dev/lab) + filter

Track G — UI/UX design system & power-user chrome — 🔄

Elevate the desktop console: denser/spacier layouts, accessible motion, keyboard-first navigation, and subtle chrome that makes long operating sessions less fatiguing.

Delivered (this pass)

Item Delivery
Keyboard shortcuts modal ? opens a designed cheatsheet (openShortcutsModal); Settings → About link
Quick filter focus / focuses the active views search/filter
Go-chords g then letter jumps views (g c containers, g i images, …); titlebar g… hint
Command palette extras Shortcuts, focus filter, toggle sidebar, cycle density, refresh view
Density: spacious Settings + body[data-density=spacious|compact|comfortable]
Accent themes Teal / cyan / violet (body[data-accent])
Reduce motion Preference + OS prefers-reduced-motion
List refresh stamp “Updated HH:MM:SS” on headers after poll / navigation
Sticky table headers Resource tables keep thead visible while scrolling
Scroll-to-top Floating control after scrolling long content
View enter motion Subtle fade/slide (disabled when reduce-motion)
Swarm auto-refresh Included in list poll when Swarm view is active
ENABLE_SWARM default on Opt out with ENABLE_SWARM=0 (same pattern as Holesail)

Track G checklist

  • Shortcuts modal + About entry
  • / filter focus + g chords
  • Palette power actions
  • Density spacious + accent + reduce motion
  • Refresh stamp + sticky headers + scroll-top
  • Dashboard density cards — sparkline polish, empty-state CTAs per role
  • Column visibility prefs per table (containers/images)
  • Saved filters (status + search presets)
  • Bulk action bar sticky + keyboard multi-select (x / shift)
  • Notification grouping by peer + severity collapse
  • Onboarding checklist progress persisted across peers
  • High-contrast mode for projector / outdoor ops
  • Font scale preference (sm / md / lg)
  • Mobile breakpoints for ops on tablet (read-mostly)

Proposed Track H (later)

Theme Ideas
Observability Per-container sparkline history UI, export CSV, host heat map
Fleet Cross-peer bulk restart, tag-based deploy targets
Extensibility Plugin UI surface when ENABLE_PLUGINS=1
Accessibility audit axe / keyboard trap pass, ARIA live regions review

Cross-cutting NFR

Destructive confirms · job tray · roles · smart defaults · Holesail · GitOps · prune/recreate · notification badge policy · schedules · keyboard-first chrome (Track G)


Definition of done

  1. Full container/image/network/volume/stack RPC + UI
  2. Swarm services/nodes/tasks/secrets/configs (+ create/scale); Swarm on by default
  3. Holesail, GitOps, recreate, system prune, Hub search
  4. Volume browse, resource edit, disconnect network, schedules, fleet envs
  5. Settings subtabs · Access vault · multi-peer fleet
  6. 🔄 Track G UX chrome (first ship); remaining items open
  7. npm test green

Next: finish remaining Track G checklist (column prefs, saved filters, bulk keyboard, a11y), then open Track H as needed.