Commit Graph
183 Commits
Author SHA1 Message Date
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
snxraven fa99bd8c6e Harden server logging and production boot experience
CI / test (push) Has been cancelled
Replace ad-hoc console output with a structured logger (pretty/JSON,
levels, redaction, optional file rotation), a clean startup banner with
Docker/feature probes, graceful shutdown signals, and slow-RPC warnings.
2026-07-10 23:59:13 -04:00
snxraven d87e6fe486 Remove redundant Peers shortcut from sidebar footer
CI / test (push) Has been cancelled
Keep only the Add peer quick action; the Peers nav item is enough.
2026-07-10 23:56:47 -04:00
snxraven 3edf61bd9c Move peer list into dedicated Peers sidebar tab
CI / test (push) Has been cancelled
Keep quick Add peer (and Peers shortcut) in the sidebar footer; full
saved-peer list, counts, and actions live on a new Peers view that is
reachable offline for managing keys.
2026-07-10 23:55:36 -04:00
snxraven 10bd4738ce Polish dark UI buttons, tabs, and control colors
CI / test (push) Has been cancelled
Override Bootstrap outline/solid button variants and nav-tabs/pills
for dark surfaces, align settings subtabs with brand green, and
improve list-group, kbd, and dashboard danger actions contrast.
2026-07-10 23:53:21 -04:00
snxraven 2b6cfc644f Complete Track F optional Docker/Portainer ops items
CI / test (push) Successful in 10m2s
Implement volume browse, stack env file, service scale, create
secret/config, disconnect network, registry Hub search, server
schedules, resource editor, and fleet environment tags. Mark roadmap
Tracks A–F complete.
2026-07-10 23:52:26 -04:00
snxraven b62bcd697e Track E: recreate, system prune, Hub search, swarm secrets/configs
CI / test (push) Successful in 10m3s
Investigate Docker/Portainer gaps and ship high-value ops: recreate
container, system prune + builder prune UI, Docker Hub search in
pull modal, Swarm secrets/configs tables. Update roadmap Track E/F.
2026-07-10 23:48:30 -04:00
snxraven 869ba6a932 Expand Settings into categorized subtabs with full client prefs
CI / test (push) Successful in 10m6s
Add Appearance, Behavior, Notifications, Tunnels, Templates,
Connections, Terminal, and About panels. Wire density, sidebar,
confirmations, refresh, badge mode, toasts, tunnel defaults,
template lists, peer reset, terminal themes, and read-only server
feature flags into peardock.settings.v1.
2026-07-10 23:45:11 -04:00
snxraven 182fe1e675 Only badge the bell for high-signal notifications
CI / test (push) Successful in 10m3s
Danger/warning (or explicit badge:true) increment the tray badge;
success/info stay in the notification center as history without a badge.
2026-07-10 23:42:35 -04:00
snxraven 74cd2f4a2e Idempotent tunnel create: reuse existing, block UI double-submit
CI / test (push) Successful in 10m5s
Return the active tunnel for the same host:port:protocol instead of
starting a second Holesail instance; coalesce concurrent creates.
UI disables the create button and shows “already exists” feedback.
2026-07-10 23:28:07 -04:00
snxraven f732cab26c Require only bare-* modules under Bare for Holesail control
CI / test (push) Successful in 10m3s
Stop falling back to Node builtin names (process/crypto/…) which
bare-module cannot resolve. Detect Bare via globalThis.Bare and drop
bare-process (use global pid instead).
2026-07-10 23:22:10 -04:00
snxraven aa48876d75 Use Bare modules for Holesail control under Pear
CI / test (push) Successful in 10m0s
Map Node builtins to bare-* via package.json imports and dual-load
with which-runtime so holesailBareControl runs on Bare without
MODULE_NOT_FOUND for crypto/fs/http/net.
2026-07-10 23:20:50 -04:00
snxraven 5fbece2bd9 Fix Holesail client connect via Bare main HTTP control
CI / test (push) Successful in 9m58s
pear-run worker RPC timed out from the Electron UI. Run real holesail
in Bare index.js (holesailBareControl) and have the UI call localhost
HTTP instead of loading bare-tcp in the renderer.
2026-07-10 23:19:31 -04:00
snxraven cc6df798e1 Run real holesail in a Bare worker for Pear UI
CI / test (push) Successful in 9m59s
pear-electron cannot load bare-tcp (require.addon) in the renderer.
Use pear-run + workers/holesail-local.cjs so the actual holesail package
runs under Bare; Node still loads holesail in-process. Add connect
fallback modal with copy URL.
2026-07-10 23:13:30 -04:00
snxraven 9e39c27b88 Fix Pear Holesail client createRequire crash; polish confirm modals
CI / test (push) Successful in 9m59s
Load holesail via dynamic ESM import (no createRequire) so Pear can connect local tunnels. Route confirmations through a designed modal with icons and animations instead of native dialogs.
2026-07-10 23:03:21 -04:00
snxraven 244ff569f5 Enable Holesail tunnels by default; keep holesail as required dep
CI / test (push) Successful in 9m59s
Holesail is on unless ENABLE_HOLESAIL=0/false/off. The holesail package remains a required dependency; docs and UI copy match the new default.
2026-07-10 22:56:17 -04:00
snxraven 02f25e0981 Complete roadmap optionals: Holesail, Swarm UI, GitOps, virtualization.
CI / test (push) Successful in 9m58s
Add tunnel persistence and container one-click tunnels with local
Holesail client bind, Swarm services/nodes/tasks view, GitOps stack
sync from git, deploy wizard step chrome, virtualized container lists,
and structure regression tests. Mark Tracks A–D and optional future done.
2026-07-10 22:53:30 -04:00
snxraven 573298b836 Fix peer cache wipe on quit and polish collapsed sidebar rail.
CI / test (push) Successful in 9m54s
Close sockets on unload without forgetting saved peers, merge roster
writes so empty in-memory state cannot erase peers.json, and restyle the
minimized sidebar as a clean icon-only rail with compact peer dots.
2026-07-10 22:43:33 -04:00
snxraven 1b99224f16 Improve deploy errors and use bottom job tray as sole feedback.
CI / test (push) Successful in 9m56s
Map Docker deploy failures to actionable how-to-fix messages, keep full
detail through RPC sanitization, and stop top-center toasts from doubling
the live job tray so operators only see one notification per action.
2026-07-10 22:40:13 -04:00
snxraven a42f5e4dcf Complete Track C roadmap: dashboard, job follow, actions, activity, roles
CI / test (push) Successful in 9m55s
Ship the modern dashboard, job tray log follow, container overflow actions, stacks search, activity history, role-gated controls, invite form with copy token, first-connect checklist, and mark Track C done on the roadmap.
2026-07-10 22:31:16 -04:00
snxraven 2d8b24ec0e Support multiple deploy template list URLs with cross-list dedupe
CI / test (push) Successful in 9m55s
Add Settings UI to configure many Portainer-format template catalogs (not just one), merge them on fetch, drop duplicates by image/stack/title, and show source counts on the Deploy view.
2026-07-10 22:19:46 -04:00
snxraven 60816ed78b Persist peers to disk cache and stop Request failed spam
CI / test (push) Successful in 9m57s
Save configured connections to ~/.config/peardock/cache/peers.json (with localStorage migration), unwrap protomux REQUEST_ERROR causes for real messages, and quiet/dedupe background RPC failures so the notification tray is not flooded.
2026-07-10 22:16:28 -04:00
snxraven 20d078fdc6 Mark Track C phases 13–15 complete on the roadmap
CI / test (push) Successful in 9m55s
2026-07-10 22:10:43 -04:00
snxraven 4063c83597 Ship Track C UX polish: toasts, settings, lists, navigation
CI / test (push) Successful in 9m55s
Add a visible toast stack, fix presentError double-notify, wire density and auto-refresh settings, gate destructive confirms, improve empty/skeleton/search on resource lists, and enable browser history plus keyboard palette navigation.
2026-07-10 22:10:40 -04:00
snxraven 3b3336fbde Make dashboard fit the viewport without outer scroll
CI / test (push) Successful in 9m52s
Restructure the dashboard into a height-contained grid so stats, panels, and actions fill the content pane; only individual cards scroll when their content is long.
2026-07-10 22:05:27 -04:00
snxraven 0d477a2e9e Dock peers footer to bottom so nav never scrolls with peers
CI / test (push) Successful in 9m53s
Stop whole-sidebar scrolling; only the nav region scrolls. Peers live in a fixed sidebar footer that grows up to four rows then scrolls on its own.
2026-07-10 22:03:19 -04:00
snxraven 39af74640c Fix dashboard overflow; pin peer list to bottom with 4-row scroll
CI / test (push) Successful in 10m2s
Contain dashboard layout so views scroll inside the content pane without horizontal bleed, wrap long system values, and keep the peers panel bottom-sticky growing up to four rows before scrolling.
2026-07-10 22:01:50 -04:00