You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: GHCR publish, active update check, live dashboard updates
Three requested features for a complete, shippable build:
- Publish image to GHCR: .github/workflows/release.yml builds a multi-arch
(amd64+arm64) image on pushes to main (edge) and version tags (semver +
latest). README documents running the prebuilt image instead of building.
- Active "Check now": registry.js resolves the current manifest digest for a
tag without pulling (anonymous Docker Hub/GHCR/quay/lscr token flow);
checker.js reconciles every running image against the registry and records
or clears events; POST /api/check exposes it; a Check button drives it from
the dashboard. Makes the app work without (or alongside) Diun and recovers
from missed webhooks.
- Live dashboard updates: a global SSE channel (GET /api/events) broadcasts
containers-changed on webhook receipt, manual check, and finished update;
the dashboard subscribes and auto-refreshes (debounced).
Also fixes a latent build bug: better-sqlite3 has no musl prebuilt, so the
Dockerfile now compiles it in a dedicated server-deps stage (python3/make/g++)
and copies node_modules into a clean runtime image; the client stage pins
--platform=$BUILDPLATFORM so it isn't rebuilt under emulation.
New pure-logic tests: parseRef (6) and parseWwwAuthenticate (2) — 60 total
passing. API_CONTRACT and README updated.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Lj6nYJQDtLaZFvvEQJGM4
0 commit comments