Commit Graph
100 Commits
Author SHA1 Message Date
Raven Scott 8d6de91f17 Fix Template URL
Release rolling / release (push) Successful in 8m57s
2026-07-15 15:10:00 -04:00
Raven Scott 53e6dd8853 Update
Release rolling / release (push) Has been cancelled
2026-07-15 15:08:55 -04:00
Raven Scott a6925d337e Add container image update indicators.
Release rolling / release (push) Has been cancelled
Compare local RepoDigests to remote registry manifest digests, show status in the containers table Updates column, and support force recheck with vault credentials for private registries.
2026-07-15 15:05:04 -04:00
Raven Scott e51de4ad1d Add full registry manager and image pull/push with vault credentials.
Release rolling / release (push) Has been cancelled
Wire credential-aware pull/push, session auth, and an Images Registries tab for vault management.
2026-07-15 14:54:30 -04:00
Raven Scott 1a1394a68b Move Add container button into the containers filter toolbar.
Release rolling / release (push) Has been cancelled
Place it next to Clear so the page header stays compact.
2026-07-15 14:45:53 -04:00
Raven Scott 5e13fc0919 Add always-pull option to Duplicate/Edit container modal.
Release rolling / release (push) Has been cancelled
Match Add container so users can reuse a local image when duplicating.
2026-07-15 14:40:46 -04:00
Raven Scott b185ea7a55 Add container create page from the containers list with always-pull.
Release rolling / release (push) Successful in 8m24s
Adds a dedicated blank create form (name, image, always pull, ports,
auto-remove, advanced settings) separate from template Deploy, reuses
deployContainer with pull-if-missing and publish-all-ports support.
2026-07-15 14:27:05 -04:00
Raven Scott bbf0607aaf Fix container remove timeouts and make force-remove reliable.
Release rolling / release (push) Successful in 9m13s
Lifecycle RPCs now use a 120s operation timeout, remove cleans up
stats/terminal/log streams then SIGKILLs before force-remove, and the
UI awaits the request instead of a fragile 30s wait race.
2026-07-15 14:12:13 -04:00
Raven Scott 1cb85e2cee changes to jobs trey
Release rolling / release (push) Successful in 8m23s
2026-07-15 00:08:43 -04:00
Raven Scott 2ae6f074cb fixes
Release rolling / release (push) Successful in 9m2s
2026-07-14 23:52:46 -04:00
Raven Scott 01f03beb43 Hide bar on linux
Release rolling / release (push) Has been cancelled
2026-07-14 23:47:22 -04:00
Raven Scott 0e74019acc Close create-invite modal after success; drop redundant result panel.
Release rolling / release (push) Successful in 8m4s
Invite strings already appear under Active invites with Copy, so the post-create
panel in the modal was unnecessary and felt stuck open.
2026-07-14 23:00:52 -04:00
Raven Scott 54d3d00901 Add SECURITY_AUTH.md for admin access and invite model.
Release rolling / release (push) Successful in 9m8s
Document seed proof, roles, pd1 capabilities, redeem/reconnect, and revoke,
and link it from the README, threat model, operator, and protocol docs.
2026-07-14 22:50:52 -04:00
Raven Scott abc46c60de Document .env keys after install and pd1 invite flow.
Release rolling / release (push) Has been cancelled
Installer and operator docs now tell users to read SERVER_PUBLIC_KEY and
SERVER_SEED from /opt/peardock/.env, and how to connect as viewer, admin, or
via a pd1. invite without sharing the seed.
2026-07-14 22:43:41 -04:00
Raven Scott f4a97aad2a Move away from Autopass for AlmaLInux Compatibility
Release rolling / release (push) Successful in 8m18s
2026-07-14 22:19:33 -04:00
Raven Scott c6557b487f Updates
Release rolling / release (push) Successful in 8m37s
2026-07-14 21:54:53 -04:00
Raven Scott b76d5cc02c Stop AutoPass invites from silently connecting as viewer.
Release rolling / release (push) Successful in 8m40s
Force fresh capability auth after pairing, heal active grants stuck on the spent list, and fail closed when a grant is spent instead of falling back to bare viewer.
2026-07-14 21:41:26 -04:00
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
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
Raven Scott b0947ca472 Speed up Electron client packaging by filtering prebuilds
Release rolling / release (push) Has been cancelled
Only ship native prebuilds for the target platform/arch (~80MB instead
of ~500MB of multi-arch blobs), skip redundant GUI rebundles, cache
Electron downloads across hosts, and strip more packaging-only deps so
"Finalizing package" no longer crawls multi-hundred-MB asars six times.
2026-07-11 14:36:12 -04:00
Raven Scott d1fcbc5717 Fix rcodesign download URL for apple-platform-rs releases
Release rolling / release (push) Has been cancelled
apple-codesign binaries moved from indygreg/apple-codesign to
indygreg/apple-platform-rs with tags apple-codesign/<version>, which
caused a 404 in the rolling release workflow.
2026-07-11 14:22:31 -04:00
Raven Scott 5946edef28 Fix CI hang on npm install by skipping lifecycle scripts
Release rolling / release (push) Failing after 1m23s
Electron postinstall and ssh2/cpu-features node-gyp run silently after
deprecation warnings and often hang forever on Gitea runners. Install
with --ignore-scripts, then only run esbuild's installer; forge still
downloads per-target Electron during package.
2026-07-11 14:20:41 -04:00
Raven Scott b720e7e68f Wire PearDock branding into app, Electron icons, and README
Release rolling / release (push) Has been cancelled
Copy runtime logos/favicons into assets/ and package icons into build/, then use them for the titlebar, favicons, dock/window icons, and docs so packaging and the UI no longer rely on placeholder marks.
2026-07-11 14:16:28 -04:00
Raven Scott ab3441a7b5 Add branding
Release rolling / release (push) Failing after 1m45s
2026-07-11 14:14:00 -04:00
Raven Scott 2e8ad21326 Update CI codesign
Release rolling / release (push) Failing after 20m49s
2026-07-11 12:58:31 -04:00
Raven Scott 515532450e Update CI
Release rolling / release (push) Failing after 13m48s
2026-07-11 12:39:11 -04:00
Raven Scott d71fefc9ff Update
Release rolling / release (push) Has been cancelled
2026-07-11 12:26:16 -04:00
Raven Scott dffc45080f updates
Release rolling / release (push) Has been cancelled
2026-07-11 12:13:27 -04:00
Raven Scott 49282e4c5f update
Release rolling / release (push) Failing after 2m31s
2026-07-11 12:09:41 -04:00
Raven Scott e99c99a647 Update
Release rolling / release (push) Has been cancelled
2026-07-11 12:00:32 -04:00
Raven Scott 6303b5108d Update CI
Release rolling / release (push) Has been cancelled
2026-07-11 11:44:08 -04:00
Raven Scott 668d3b7f36 push
Release rolling / release-linux (push) Has been cancelled
CI / test (push) Has been cancelled
2026-07-11 11:40:23 -04:00
Raven Scott 2526ebb99b CI 2026-07-11 11:39:59 -04:00
Raven Scott 0bb6ba1692 breaking
CI / test (push) Successful in 9m56s
2026-07-10 20:36:11 -04:00
Raven Scott d6ce72af66 Updates 2026-07-10 20:04:47 -04:00
Raven Scott 448087a583 fix terminal sizing 2025-11-25 02:27:02 -05:00
Raven Scott ae032cc6aa update 2025-11-24 23:47:39 -05:00
Raven Scott c6dbcf9748 more fixes for volumes 2025-11-24 23:36:19 -05:00
Raven Scott 1b9365eadb more updates 2025-11-24 23:23:47 -05:00
Raven Scott 75f25436bd test 2025-11-24 23:03:12 -05:00
Raven Scott b92edd9cdb fix 2025-11-24 22:57:58 -05:00
Raven Scott e6032533e9 test 2025-11-24 22:55:02 -05:00
Raven Scott aa45d86efe fix test 2025-11-24 22:51:06 -05:00
Raven Scott 2278b494f6 standardize messages 2025-11-24 22:33:31 -05:00
Raven Scott 491cacf22a remove debug logs 2025-11-24 20:58:23 -05:00
Raven Scott 51355bb8d4 properly handle ports 2025-11-24 20:51:57 -05:00
Raven Scott bca2555d5a actually fix volume selection 2025-11-24 20:17:35 -05:00
Raven Scott 30fb4f584b debug logs 2025-11-24 19:50:15 -05:00
Raven Scott 9f6bbbd84f add debug logs 2025-11-24 19:35:16 -05:00
Raven Scott ebd6512976 more fixes 2025-11-24 19:29:37 -05:00
Raven Scott 5200028070 another test 2025-11-24 19:19:58 -05:00
Raven Scott fc91f4c6bb continue work 2025-11-24 19:16:23 -05:00
Raven Scott 9ed79d5209 test better deployment mappings 2025-11-24 19:11:55 -05:00
Raven Scott 1a283c6087 continued improvements 2025-11-24 19:02:16 -05:00
Raven Scott 9b5884b975 fix 2025-11-24 18:46:10 -05:00