forked from snxraven/peardock
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.
137 lines
6.0 KiB
Markdown
137 lines
6.0 KiB
Markdown
# 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.
|