Commit Graph
273 Commits
Author SHA1 Message Date
Raven Scott 0e07074291 Fix operator invite elevation and pair invite UI with capability grants.
Release rolling / release (push) Successful in 8m15s
Stop silently dropping failed capabilities (which forced viewer), log handshake role/auth, and show each AutoPass invite with its linked capability on one Access card.
2026-07-14 21:27:23 -04:00
Raven Scott 660d901386 Fix invite rotation after delete and add revoke list management.
Release rolling / release (push) Successful in 8m43s
Force-wipe AutoPass invite packages on create/delete so spent capabilities cannot poison new invites, clear stale grants on the client, and let admins unrevoke or clear revoked peers from Access.
2026-07-14 21:11:48 -04:00
Raven Scott f44419d5a7 Updates
Release rolling / release (push) Successful in 9m7s
2026-07-14 20:55:09 -04:00
Raven Scott 6ff528f884 Update
Release rolling / release (push) Successful in 8m30s
2026-07-14 20:41:42 -04:00
Raven Scott d822152c7e Updates
Release rolling / release (push) Successful in 9m23s
2026-07-14 20:27:41 -04:00
Raven Scott cb0b59f5c3 Updates
Release rolling / release (push) Has been cancelled
2026-07-14 20:25:17 -04:00
Raven Scott bd460913bf OTA
Release rolling / release (push) Successful in 8m19s
2026-07-14 20:05:40 -04:00
Raven Scott ecafa4f22a updates
Release rolling / release (push) Has been cancelled
2026-07-14 20:04:49 -04:00
Raven Scott c818edac9d Secure connections with AutoPass invites, HMAC capabilities, and viewer default.
Release rolling / release (push) Successful in 12m24s
Default peers are read-only; admin requires seed proof and operators redeem AutoPass packages with signed grants. ACL UI and docs match the new trust model.
2026-07-14 19:38:53 -04:00
Raven Scott b8bd4eb902 Strip ANSI sequences from container logs for clean display.
Release rolling / release (push) Successful in 8m28s
PM2 and similar tools emit VT100 color codes that browsers hide only
partially, leaving artifacts like [32m between table columns. Strip CSI/OSC
escapes when formatting log lines, and harden Docker multiplex demux on the
server so frames are not mis-parsed as text.
2026-07-13 18:53:17 -04:00
Raven Scott f9aa8d3c7e Add container details action bar for lifecycle operations.
Release rolling / release (push) Successful in 8m10s
Show start, stop, kill, restart, pause, resume, recreate, duplicate/edit,
and remove in the container details header, enabled by runtime state, using
typed RPC for lifecycle operations.
2026-07-13 18:37:49 -04:00
Raven Scott 5c16254ff4 Add Portainer-style container bulk actions and network manager.
Release rolling / release (push) Successful in 8m41s
Always show a containers action bar (start/stop/restart/pause/resume/kill/
recreate/remove/prune) driven by row selection via typed bulk RPC. Rebuild
the container Networking tab into a join/leave network manager with aliases
and optional static IPs, plus a clearer ports table.
2026-07-13 18:22:19 -04:00
Raven Scott 4879b7ca18 Fix container duplication end-to-end (inspect, form, deploy).
Release rolling / release (push) Has been cancelled
Replace the broken fire-and-forget submit path with deployDockerContainer
(including replace prompts), suggest a free name-copy by default, correctly
map custom networks/mounts/ports from inspect, and load config via typed RPC.
2026-07-13 18:18:48 -04:00
Raven Scott 245d532efd Add Portainer-style container name replace on deploy.
Release rolling / release (push) Has been cancelled
When deploying a container whose name already exists, prompt to Replace
(stop and remove the old container) or Cancel. Server accepts replace:true
to perform the swap; clients pre-check names and retry on conflict races.
2026-07-13 18:16:54 -04:00
Raven Scott b2e04caabc Add advanced container stats tab with timeframes and I/O charts.
Release rolling / release (push) Has been cancelled
Expand server history samples with network/block rates and longer
retention, and rebuild the details Stats tab with live KPIs, 1m–30m
windows, auto-scale, pause, CSV export, and CPU/memory/net/disk charts.
2026-07-13 18:13:27 -04:00
Raven Scott 270b38af15 Fix terminal output on connection
Release rolling / release (push) Successful in 8m41s
2026-07-13 17:56:20 -04:00
Raven Scott 50c43ff2e9 Fix the termninal
Release rolling / release (push) Successful in 9m48s
2026-07-13 17:43:08 -04:00
Raven Scott ac754d6f5a Polish container overview layout for filled height without empty voids.
Release rolling / release (push) Has been cancelled
Split overview into a stretching Identity/Runtime/Network band and a
content-height Ports/Mounts/Timeline strip with timeline, mount rows,
and clearer empty states so vertical space is used without sparse panels.
2026-07-13 17:41:19 -04:00
Raven Scott c85324867e Stretch container overview panels to fill remaining viewport height.
Release rolling / release (push) Has been cancelled
Make the overview tab body, card, and section grid grow with the details
shell so Identity/Runtime/Network and related panels use empty vertical
space instead of sitting in a short content-sized block.
2026-07-13 17:38:53 -04:00
Raven Scott 9680437fab Improve container details UX, dashboard shortcuts, and RPC rate limits.
Release rolling / release (push) Successful in 8m38s
Tighten container detail tabs into a fit-to-viewport layout with a richer
overview, debounced process filters, and a readable process table. Make
dashboard KPI cards navigate to resource views (with status filters that
reset on leave), and raise per-peer RPC limits so normal UI polling no
longer trips rate limiting.
2026-07-13 17:25:14 -04:00
Raven Scott f943ea92c2 Fixed. Tab panes were stacking because navigation was fighting Bootstrap’s tab state.
Release rolling / release (push) Successful in 8m19s
Cause
navigateToView was running document.querySelectorAll('.nav-link') and clearing active on every nav link — including container detail tabs (Logs, Terminal, etc.).

That left the previous pane with .show.active while its tab button no longer had .active. Bootstrap’s Tab.show() then couldn’t find/hide the previous pane, so opening Overview (or another tab) stacked both.

Fix
1. Sidebar-only nav updates — only #sidebar .nav-link[data-view] get active-state changes; detail/swarm/settings tabs are left alone.
2. Explicit tab reset — activateContainerDetailsTab() forces a single visible pane when opening a container (defaults to Overview).
3. Safer click wiring — sidebar navigation listeners are scoped the same way so they don’t attach to tab buttons.

Result
• Overview → Logs → other container → Overview shows only Overview
• Same for any other tab when switching containers
• Manual tab clicks continue to show only that tab’s content
2026-07-13 16:54:57 -04:00
snxraven 441781f9d6 Replace container ⋮ menu with a designed actions modal
Release rolling / release (push) Successful in 8m24s
Row more-button opens containerActionsModal with lifecycle, manage, and
danger-zone actions instead of a fragile context/dropdown menu.
2026-07-11 22:23:58 -04:00
snxraven 41d71b57a3 Portal container ⋮ menu to body to stop row steal and scrollbars
Release rolling / release (push) Successful in 8m27s
Replace Bootstrap table dropdowns with a fixed body-portaled menu so
hovering other rows no longer opens their menus and the open menu no
longer expands table overflow.
2026-07-11 22:00:07 -04:00
snxraven 57c87259ad Fix container row actions menu overlapping following rows
Release rolling / release (push) Successful in 8m7s
Raise stacking for the open row, use Bootstrap Popper fixed strategy so
menus escape table paint order, and pause virtualization repaint while
a dropdown is open.
2026-07-11 21:48:19 -04:00
Raven Scott 6c70b6c144 Fix container actions menu stacking above toolbar
Release rolling / release (push) Successful in 9m47s
Use Bootstrap Popper fixed strategy and a high z-index so the containers ⋮ menu is no longer covered by search, headers, or the titlebar.
2026-07-11 21:27:46 -04:00
Raven Scott 9511214382 Docs
Release rolling / release (push) Successful in 8m7s
2026-07-11 20:11:02 -04:00
Raven Scott 4d6777e765 Remove unused container deploy wizard step header
Release rolling / release (push) Successful in 8m18s
The Basics/Network/Volumes/Security/Review steps never advanced and only cluttered Container Configuration. Drop the strip, related CSS, and the structure test id.
2026-07-11 19:40:39 -04:00
Raven Scott 975f9d2f5d Update License
Release rolling / release (push) Successful in 8m58s
2026-07-11 18:47:04 -04:00
Raven Scott 42a69c6dc7 Ship Track G UX, multi-shell terminals, Swarm default-on, install.peardock.boats
Release rolling / release (push) Successful in 8m22s
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
Raven Scott 5d1815070d ss3
Release rolling / release (push) Successful in 8m8s
2026-07-11 17:47:08 -04:00
Raven Scott aa21cc9749 Update SS
Release rolling / release (push) Has been cancelled
2026-07-11 17:43:28 -04:00
Raven Scott ac8419029d Fix CPU and memory usage display in containers table
Release rolling / release (push) Successful in 9m3s
Parse Docker stats streams as NDJSON so samples actually land, ship
memory limit for accurate bars, keep CPU/Memory columns visible with a
compact stacked meter, and match stats updates to table rows reliably.
2026-07-11 17:26:49 -04:00
Raven Scott c54a254c61 Make resource tables fluid without horizontal scroll
Release rolling / release (push) Has been cancelled
Use fixed table layout, cell ellipsis, and progressive column hiding
on narrower widths so containers/images/networks tables stay within
the content pane instead of growing a horizontal scrollbar.
2026-07-11 17:20:20 -04:00
Raven Scott 54c09b5eab Retry peer reconnect every 5s until back online
Release rolling / release (push) Has been cancelled
Replace exponential backoff and the 12-attempt cap with a fixed 5s
retry loop that keeps dialing after unexpected disconnects. Throttle
toasts so the UI is not spammed while the offline banner stays up.
2026-07-11 17:19:09 -04:00
Raven Scott 3fe050d7a6 Fix container start via raw empty-body Docker socket POST
Release rolling / release (push) Successful in 9m0s
dockerode/modem (and Bare HTTP shims) can still emit a non-empty start
body, which Engine API ≥1.24 rejects. Start/pause/unpause now write a
minimal HTTP request on the docker.sock with Content-Length: 0.
2026-07-11 17:04:28 -04:00
Raven Scott c49d7301d0 Stabilize multi-peer UI and fix container start API body
Release rolling / release (push) Successful in 8m25s
Keep the containers table scoped to the active peer with a merge store,
restore the last active server on boot with a restoring screen, start
containers without a Docker API body (v1.24+), and stop ⋮ menus from
sticking to the viewport bottom after refreshes.
2026-07-11 16:52:57 -04:00
Raven Scott 79f57d556b Keep containers table stable across refreshes
Release rolling / release (push) Successful in 8m27s
Ignore transient empty list payloads so rows never vanish, and reconcile
in place with insertBefore instead of replaceChildren (which flashed a
blank tbody). Stats and existing rows stay put until data actually changes.
2026-07-11 16:34:41 -04:00
Raven Scott 7ca939f7a9 Reduce list flicker across images, networks, volumes, stacks, tunnels, swarm
Release rolling / release (push) Successful in 8m32s
Skip skeleton wipes when data already exists, fingerprint list content so
auto-refresh does not rebuild unchanged DOM, and short-circuit container
structure updates when only live stats change.
2026-07-11 16:23:27 -04:00
Raven Scott 3f2e456b37 Smooth containers table: diff rows instead of full redraw
Release rolling / release (push) Has been cancelled
List refreshes no longer wipe the tbody (which reset CPU/memory to
zeros). Rows are patched in place, stats paint via rAF only when values
change, and known samples are re-seeded when a row is (re)created.
2026-07-11 16:21:58 -04:00
Raven Scott f3ebcf2894 Fix containers ⋮ menu overlapping table rows
Release rolling / release (push) Has been cancelled
Use Popper fixed strategy for the actions dropdown so it escapes
table-responsive overflow, and raise z-index / open-row stacking so
the menu paints above neighboring rows.
2026-07-11 16:16:40 -04:00
Raven Scott 5a15b84504 Harden Bare HTTP unix sockets against setKeepAlive crash
Release rolling / release (push) Successful in 9m45s
bare-pipe sockets lack TCP setKeepAlive; bare-http1 Agent calls it when
recycling connections and crashed peardock-server after Docker connected.
No-op keep-alive/unref on IPC sockets and safe-keepSocketAlive on Agent.
2026-07-11 16:00:33 -04:00
Raven Scott 06022e6e90 Fix Holesail in Bare standalone via static import
Release rolling / release (push) Successful in 8m20s
createRequire(import.meta.url) could not resolve holesail inside the
packed app bundle even though holesail was embedded. Import holesail
statically so Bare resolution works; surface loadError in status banner.
2026-07-11 15:50:56 -04:00
Raven Scott 6bdb64b1fd Fix Bare Docker access: HTTP unix socket support for dockerode
Release rolling / release (push) Has been cancelled
bare-http1 ignores socketPath and always dials TCP localhost:80, so
dockerode got HTTP 301→HTTPS and TLS errors. Patch the Bare http Agent
to connect via bare-net IPC when socketPath is set, matching Node.
2026-07-11 15:46:46 -04:00
Raven Scott a8ee0f19b7 Installer: reliably add peardock user to docker group
Release rolling / release (push) Successful in 9m12s
Create the docker group when missing, usermod -aG with verification,
align socket group/mode when needed, and set systemd Group and
SupplementaryGroups so the service can access the Docker socket.
2026-07-11 15:35:20 -04:00
Raven Scott 2e51c49526 Fix Bare dockerode failure: polyfill Node url.resolve
Release rolling / release (push) Has been cancelled
docker-modem calls url.resolve/parse/format, which bare-url does not
implement. Map bare url imports to build/shims/node-url.cjs so the
standalone peardock-server can talk to the Docker socket again.
2026-07-11 15:34:12 -04:00
Raven Scott ff8a96a48a Add interactive one-line installer for server and client
Release rolling / release (push) Successful in 10m17s
scripts/install.sh auto-detects OS/arch, prompts for server vs client
(or both), installs peardock-server under /opt with a systemd unit, and
installs the desktop client for Linux/macOS from the rolling release.
2026-07-11 15:20:31 -04:00
Raven Scott 6ed94a377a Remove workflow artifact upload from rolling release CI
Release rolling / release (push) Has been cancelled
Release assets on the rolling tag are enough; skip actions/upload-artifact backup.
2026-07-11 15:16:24 -04:00
Raven Scott 05fc14862a Fix rcodesign CLI: self-signed p12 instead of removed --ad-hoc
Release rolling / release (push) Has been cancelled
apple-codesign 0.29 rejects --ad-hoc. Generate a self-signed P12 and
sign darwin .app bundles with --p12-file so Linux CI produces a sealed
signature instead of failing postPackage.
2026-07-11 15:16:15 -04:00
Raven Scott 172ed58383 Fix hung Electron client packages on cross-arch (linux-arm64)
Release rolling / release (push) Failing after 3m18s
rebuildConfig:false still ran @electron/rebuild (spread of false is a
no-op), which can stall for many minutes when packaging arm64 on x64 CI
under "Finalizing package". Use onlyModules:[] to truly skip rebuilds,
pre-download Electron zips with timeouts before forge package, point
packager at electronZipDir, and kill any single host package after 8m.
2026-07-11 14:59:14 -04:00
Raven Scott 0f8fde6748 Vendor rcodesign for CI instead of downloading from GitHub
Release rolling / release (push) Has been cancelled
Rolling release runners stall or fail fetching apple-codesign releases.
Ship linux-x64 and linux-arm64 binaries under tools/rcodesign/ and install
from the checkout so the ad-hoc macOS signing step is offline and fast.
2026-07-11 14:41:10 -04:00