feat: add update management system with version check and one-click update
- Bake version info (commit, branch, date) into /app/version.json at build time
via Docker ARG GIT_COMMIT/GIT_BRANCH/GIT_COMMIT_DATE
- Mount source directory as /app-source for in-container git operations
- Add git config safe.directory for /app-source (ownership mismatch fix)
- Add SystemConfig fields: git_repo_url, git_branch, git_token_encrypted
- Add DB migrations for the three new columns
- Add git_token encryption in update_settings() handler
- New endpoints:
GET /api/settings/version — current version + latest from Gitea API
POST /api/settings/update — DB backup + git pull + docker compose rebuild
- New service: app/services/update_service.py
get_current_version() — reads /app/version.json
check_for_updates() — queries Gitea API for latest commit on branch
backup_database() — timestamped SQLite copy to /app/backups/
trigger_update() — git pull + fire-and-forget compose rebuild
- New script: update.sh — SSH-based manual update with health check
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,12 @@ services:
|
||||
# Only accessible from within the Docker network — never expose port externally
|
||||
|
||||
netbird-msp-appliance:
|
||||
build: .
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
GIT_COMMIT: ${GIT_COMMIT:-unknown}
|
||||
GIT_BRANCH: ${GIT_BRANCH:-unknown}
|
||||
GIT_COMMIT_DATE: ${GIT_COMMIT_DATE:-unknown}
|
||||
container_name: netbird-msp-appliance
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
@@ -55,6 +60,7 @@ services:
|
||||
- ./backups:/app/backups:z
|
||||
- /var/run/docker.sock:/var/run/docker.sock:z
|
||||
- ${DATA_DIR:-/opt/netbird-instances}:${DATA_DIR:-/opt/netbird-instances}:z
|
||||
- .:/app-source:z
|
||||
environment:
|
||||
- SECRET_KEY=${SECRET_KEY}
|
||||
- DATABASE_PATH=/app/data/netbird_msp.db
|
||||
|
||||
Reference in New Issue
Block a user