# 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 product’s 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 | ```bash 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 A–F — ✅ 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 view’s 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 - [x] Shortcuts modal + About entry - [x] `/` filter focus + `g` chords - [x] Palette power actions - [x] Density spacious + accent + reduce motion - [x] 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.