Commit Graph
118 Commits
Author SHA1 Message Date
Raven Scott 637c386e33 Bring Back Realtime Table Stats
Release rolling / release (push) Successful in 7m55s
2026-08-04 22:37:41 -04:00
Raven Scott c5015a66e8 Alert System Changes: Fixes applied (feature kept, load bounded)
Release rolling / release (push) Successful in 8m4s
1. Removed docker.df() entirely
2. Poll only what rules need
   • docker_daemon → cheap ping
   • container_health / stack_health → listContainers
   • resource → host statfs only (no Docker)
   • Event-only rules → no poll timer
3. Poll floor 60s, default 120s (was 15s min / 60s default)
4. No overlapping polls (pollInFlight)
5. Event path: drop noisy actions (exec_*, attach, …), match only relevant rules, serialize work (bounded queue)
6. UI status shows whether poll is active
2026-08-04 22:13:20 -04:00
Raven Scott a9e2b54c70 EXPERIMENTAL: new stats logic
Release rolling / release (push) Successful in 8m29s
2026-08-04 21:47:32 -04:00
Raven Scott ab6cea96c7 Optimize Idle CPU/Dash
Release rolling / release (push) Successful in 8m21s
2026-08-04 21:04:55 -04:00
Raven Scott 26529e92c6 experimental: pop-out container terminals into dedicated windows
Release rolling / release (push) Successful in 7m56s
Pin PTY sessions to the peer they were opened on so shells survive
active-node switches until the window is closed. Electron host owns
the connection; pop-out windows relay I/O via IPC (BroadcastChannel
fallback). Explicit terminal sessionIds no longer wipe sibling PTYs
on the same container.
2026-07-29 06:34:13 -04:00
Raven Scott dcb5b3db4f Prevent removing in-use images and keep Unused filter stable during bulk delete.
Release rolling / release (push) Successful in 8m55s
Disable select/delete for images with container usage, and broadcast image lists with usage attached so the Unused tab no longer flashes the full inventory mid-removal.
2026-07-25 08:31:36 -04:00
Raven Scott 3726d52534 Fixes
Release rolling / release (push) Successful in 9m52s
Terminal
Invalidate local UI immediately on leave (bump gen, dispose xterm, clear DOM)
Show a “Connecting…” placeholder on re-entry
Skip stale queued inits via a desire-generation token
Unique PTY sessionIds so a late kill can’t destroy a new session
Server killTerminal: if a specific sessionId is missing, don’t fall through and kill the active PTY
All live tabs

Enter handlers only run when newly entering (no double-init)
Leave handlers for logs / terminal / stats / processes
Processes: ignore late replies; reset on container switch
Stats: don’t create charts on a hidden 0×0 canvas
Inspect: ignore stale replies; don’t wipe a newer container’s callback
Processes shortcuts use showContainerDetails(container, { tab: 'processes-tab' }) instead of click + double-fetch
Switching Terminal ↔ Logs ↔ Stats ↔ Processes repeatedly should stay stable; Terminal should recover cleanly instead of hanging.
2026-07-23 22:36:06 -04:00
Raven Scott dff35affb7 Fix anonymous registry push X-Registry-Auth EOF error
Release rolling / release (push) Successful in 7m34s
Docker requires a valid X-Registry-Auth header on push; send empty
anonymous credentials for ttl.sh and other no-auth targets.
2026-07-18 08:07:56 -04:00
Raven Scott 8235a8a6c8 Fix flatten push auth by retargeting short names to vault registry
Release rolling / release (push) Has been cancelled
Private registry credentials were applied while pushing Docker Hub short
names. Auto-retag under the credential host and prefix the flattener repo.
2026-07-18 07:46:07 -04:00
Raven Scott e9fb26153a Add Container Flattener (export|import squash with job tray push)
Release rolling / release (push) Successful in 7m49s
Squash a container into a single-layer image from Manage → Flatten, with
repo/tag, pause, config re-apply, vault credentials, and optional registry push.
2026-07-18 07:31:58 -04:00
Raven Scott a78ef40966 Speed up terminal shell selection with bash/sh/ash fast path
Release rolling / release (push) Successful in 7m48s
Try bash, sh, and ash first with a short alive-probe so common images
attach quickly; fall back to other shells and adaptive probes only after.
2026-07-17 22:59:58 -04:00
Raven Scott dc3d4ac872 Allow anonymous Docker Hub pulls without usable credentials
Release rolling / release (push) Successful in 7m26s
Only attach auth when username and password are complete and match the
image registry; retry anonymously if ambient auth fails on public pulls.
2026-07-17 20:07:02 -04:00
Raven Scott 30f283394e Harden live server apply for alerts and peer roles
Release rolling / release (push) Successful in 7m37s
Flush alert config immediately, re-arm runtime without restart, and push
role updates to connected clients so ACL changes apply live.
2026-07-17 19:51:30 -04:00
Raven Scott e2fa2ff85a Apply all settings and alerts live without Save buttons
Release rolling / release (push) Has been cancelled
Auto-persist client preferences on change with footer feedback, and
apply server alert engine settings/channels/rules immediately.
2026-07-17 19:48:28 -04:00
Raven Scott f6f059ab94 Add remote registry repository delete
Release rolling / release (push) Has been cancelled
Delete all tags/manifests for a repository via Registry V2 digests, with
admin RPC, audit logging, and catalog/tags UI actions.
2026-07-17 19:43:53 -04:00
Raven Scott 5b8fb142bb Add experimental server alerts and webhook notifications
Release rolling / release (push) Successful in 7m30s
Server-side alerting for Docker/container/stack health with Discord,
Slack, Teams, ntfy, Gotify, Telegram, and generic webhooks. Settings
tab, client cache, and backup/restore coverage; marked experimental.
2026-07-17 18:10:43 -04:00
Raven Scott 49794febf8 Fix image push failing with tag:undefined under Bare
Release rolling / release (push) Successful in 9m42s
bare-querystring stringifies JS undefined as the literal "undefined", so
dockerode push options with tag: undefined made Docker look up
repo:undefined. Only pass defined push options, and fail the job when
Docker streams an error in the progress body.
2026-07-16 23:09:36 -04:00
Raven Scott abc34b39d8 Restore and restart origin container when swap deploy fails
Release rolling / release (push) Successful in 8m45s
On duplicate/swap failure after parking, rename the origin back and start
it if it was running so a bad deploy does not leave the source offline.
2026-07-16 22:26:22 -04:00
Raven Scott bd512df950 Park source container on duplicate so host ports can be reused
Release rolling / release (push) Has been cancelled
When duplicating with the same host ports, stop+rename the origin, deploy
and verify the new container, then remove the parked source. Client
precheck ignores ports owned only by the origin to avoid false blocks.
2026-07-16 22:24:49 -04:00
Raven Scott 55421cdecd Fix Terminal State!
Release rolling / release (push) Has been cancelled
2026-07-16 14:06:57 -04:00
Raven Scott 67dffcadb8 Remove networks on compose down
Release rolling / release (push) Has been cancelled
2026-07-16 04:40:50 -04:00
Raven Scott d697f6f90d Fix logs tab stuck on Loading after switching away and back.
Release rolling / release (push) Successful in 9m0s
2026-07-16 00:45:30 -04:00
Raven Scott 645f025042 Fix Duplicate/Edit cloning (volumes/settings) and initial image update check.
Release rolling / release (push) Successful in 9m49s
2026-07-16 00:01:07 -04:00
Raven Scott b53f4a58b1 Fix stuck container remove with timed raw Docker stop/kill/delete.
Release rolling / release (push) Successful in 9m2s
2026-07-15 23:22:27 -04:00
Raven Scott afc10d1dbc Stop containers gracefully before remove instead of immediate SIGKILL.
Release rolling / release (push) Successful in 8m31s
2026-07-15 22:56:15 -04:00
Raven Scott 9775fe5305 Move Peers into Settings and add a full Registry browser tab.
Release rolling / release (push) Successful in 9m39s
Peers live under Settings; Images is local-only. Registry is a top-level view with vault credentials, Hub search, and Registry API V2 catalog/tags/manifest/delete over the wire.
2026-07-15 16:04:27 -04:00
Raven Scott 42f066fa47 Fix image update checks against registries on Bare.
Release rolling / release (push) Has been cancelled
Registry HTTP now sets host/hostname, disables keep-alive, and times out cleanly; resolve container image tags/digests more reliably and surface check errors in the UI.
2026-07-15 15:31:46 -04:00
Raven Scott e9e78f52c9 Fix registry vault KDF on Bare (no scryptSync).
Release rolling / release (push) Successful in 8m29s
bare-crypto lacks scrypt; derive vault keys with PBKDF2-SHA256 there, keep scrypt on Node, and record the KDF on encrypted blobs.
2026-07-15 15:22:53 -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 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 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 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 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 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 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