v0.2.0 — daemon mode (Watchtower replacement)
The Watchtower-replacement release. Bumpsight is now a long-running daemon that scans your compose files on a schedule, classifies new tags as patch / minor / major, applies the safe ones automatically, and emails you the rest with one-click approve / deny links — accompanied by an LLM-summarised read of the upstream release notes (or a general-knowledge opinion when no notes exist).
Watchtower was archived 2025-12-17. Bumpsight is the human-in-the-loop alternative.
Highlights
- Drop-in container:
docker pull ghcr.io/miller-joe/bumpsight:0.2.0. One mount for your compose tree, one for the docker socket, one volume for state. - Auto-discovery: every
<stack>/compose.{yaml,yml}under the mounted root. Opt-out via per-stack policynone. - Semver-aware policy:
patch/minor/major/notify/none, global default + per-stack overrides. - HTML email with action card at top — instruction + styled Approve / Deny buttons, then metadata, then LLM summary.
- OpenAI-compatible LLM client. Works with LiteLLM (recommended for self-hosters without a GPU), Ollama, OpenAI, vLLM, anything that speaks
/v1/chat/completions. - LLM advise with opinion-fallback. When upstream release notes are available, summarises breaking changes / new features / required actions. When they aren't (Docker Official wrappers, projects without GitHub Releases), falls back to a structured general-knowledge read: risk level, what this typically changes, recommended action.
- Apply step rewrites only the targeted service's tag (preserving comments + formatting), then
docker compose pull && up -d. - Apprise integration via apprise-api endpoints for fan-out to Discord, ntfy, Slack, Gotify, etc.
- Multi-arch image:
linux/amd64andlinux/arm64.
Install
docker pull ghcr.io/miller-joe/bumpsight:0.2.0
# or
npm install -g bumpsight@0.2.0See the README for the drop-in compose snippet and config docs.
Known issues / fixes coming in v0.2.1
- Notification delivery failure is silently swallowed — rows are marked
notifiedeven when the SMTP/Apprise send returned an error. Will gate the status flip on actual delivery success. - No built-in rate-limit on email dispatch. A first-scan burst against an SMTP relay with strict throttling can trip per-minute limits. Workaround: stagger via your relay's queue config, or use Apprise's rate-limit options.
- No built-in UI to inspect pending / failed bumps. SQLite query against the state DB works for now.