Add updates & versioning #4

Merged
backmeupplz merged 2 commits from new-services into master 2026-03-02 14:53:07 +00:00
backmeupplz commented 2026-03-02 14:50:08 +00:00 (Migrated from github.com)

Summary

  • Pin Docker image digests at install time, detect newer images via digest comparison
  • Check GitHub releases for MyGround binary updates with semver comparison
  • Self-update: download, backup, replace binary in-place with systemd restart
  • Scheduler checks for updates every 6 hours, applies auto-updates when enabled
  • REST API: /api/updates/{status,check,update-all,self-update,config}
  • WebSocket /api/services/{id}/update for streaming update progress
  • Frontend: update badges in header/cards, Update All banner, settings toggles

Test plan

  • cargo build — compiles cleanly, no warnings
  • cargo test --lib — all 117 tests pass (including 4 new ones)
  • cargo test --test api_tests — all 55 non-frontend tests pass
  • Install a service → verify image_digest recorded in state.toml
  • API: /api/updates/status returns correct shape
  • Frontend: badges, toggles, streaming update all work

🤖 Generated with Claude Code

## Summary - Pin Docker image digests at install time, detect newer images via digest comparison - Check GitHub releases for MyGround binary updates with semver comparison - Self-update: download, backup, replace binary in-place with systemd restart - Scheduler checks for updates every 6 hours, applies auto-updates when enabled - REST API: `/api/updates/{status,check,update-all,self-update,config}` - WebSocket `/api/services/{id}/update` for streaming update progress - Frontend: update badges in header/cards, Update All banner, settings toggles ## Test plan - [x] `cargo build` — compiles cleanly, no warnings - [x] `cargo test --lib` — all 117 tests pass (including 4 new ones) - [x] `cargo test --test api_tests` — all 55 non-frontend tests pass - [ ] Install a service → verify `image_digest` recorded in state.toml - [ ] API: `/api/updates/status` returns correct shape - [ ] Frontend: badges, toggles, streaming update all work 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.