Skip to content

Add self-update from GitHub releases to Settings → System - #86

Merged
bsnwgit merged 1 commit into
mainfrom
feature/self-update
Oct 10, 2026
Merged

bsnwgit merged 1 commit into
mainfrom
feature/self-update

Conversation

@bsnwgit

@bsnwgit bsnwgit commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Adds an Updates panel to Settings → System that checks this repository for a newer release and installs it.

  • Checks the latest GitHub release hourly and on demand (admin).
  • Update now downloads the release package, replaces only the application files, and exits so systemd restarts the service. Configuration, database, venv and logs are never touched.
  • Manual mode by default; automatic mode installs inside a configurable window.
  • Optional GitHub token (stored encrypted) for private repositories.
  • Git checkouts can check but not apply.
  • Two workflows build the package: one publishes a release when VERSION is raised on main, the other attaches it to a release cut by hand.
  • Admin guide gains an "Updating from Settings" section.

Tested: tests/test_self_update.py (mocked GitHub; extraction safety, protected files, token encryption, private repo); update routes reject unauthenticated callers; frontend typechecks and builds.

Note: the first release is published when this merges, because the workflow runs on the VERSION already on main.

Settings → System → Updates checks the repository's latest release hourly and on demand, and an admin can install it: the release package replaces only the application files (config, database, venv and logs are never touched) and the service exits so systemd restarts it. Manual mode is the default; automatic mode installs inside a configurable window. A GitHub token, stored encrypted, covers private repositories. Installs that are git checkouts can check but not apply.

Two workflows build the package: one publishes a release when VERSION is raised on main, the other attaches the package to a release cut by hand.
@bsnwgit
bsnwgit merged commit 759669c into main Oct 10, 2026
3 of 4 checks passed
@bsnwgit
bsnwgit deleted the feature/self-update branch October 10, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant