Releases: cipherfoxie/watchdocker
Releases · cipherfoxie/watchdocker
watchdocker v0.1.0
Initial release. Pure-bash Docker Compose auto-updater that runs as a systemd timer instead of a 24/7 container. The bash-native successor to the archived watchtower.
Added
- Core script
bin/watchdockerwith--dry-run,--once,--verbose,--list,--version,--help - Non-evaluating YAML config loader (
projects,skip_projects,pre_hook,post_hook,prune.{enabled,age}) - Auto-discovery of compose files under
/opt,/data,/srv,/homewhenprojects:is unset - Container-level opt-out via the
watchdocker.skip=truelabel - Smart-restart:
docker compose up -donly whenpullactually pulled new layers - Optional post-update image-prune with configurable age threshold (default 168h)
- Hardened systemd service + weekly timer (
ProtectSystem=strict,NoNewPrivileges, empty capability sets, syscall filter) - Idempotent
install.shthat never clobbers existing config - Smoke-test suite under
tests/smoke.sh
Security
- Hook paths validated as absolute, regular, executable, root-owned (when run as root)
- Non-evaluating YAML parse: no
eval, no command substitution from config values - Race-free lockfile via atomic
mkdirwith stale-PID detection
Tested on
- Ubuntu 26.04 LTS + Docker Engine 29.5.2 (AMD64)
- Ubuntu 25.10 + Docker Engine 29.2.1 (DGX Spark, ARM64)
Full notes in CHANGELOG.md.