cx-nexredirect/docs/UPDATE.md

2 KiB
Raw Blame History

Updates

NexRedirect prüft alle 60 Minuten gegen die GitHub-Releases-API auf neue Versionen. Keine Auto-Updates außer aktiviert.

Update-Verhalten

Setting Verhalten
(Default) Stündlicher Check, Banner in der UI bei verfügbarem Update. Nichts wird ohne Klick installiert.
update_auto = true Bei jedem Check wird ein verfügbares Update sofort installiert.
update_include_prereleases = true Auch Pre-Releases werden als Update angezeigt.

Manuell aktualisieren

In der UI:

  1. Einstellungen → "Update X.Y.Z installieren" klicken
  2. Bestätigen
  3. Server fährt herunter, zieht Tag, baut, startet neu (Admin-UI ~510s down)
  4. Redirects bleiben über Caddy aktiv (Caddy-Block enthält statisches Fallback-redir)

Auf der Konsole:

sudo /opt/corex-nexredirect/scripts/update.sh v0.2.0

Auto-Update aktivieren

Einstellungen → "Auto-Update aktivieren" klicken. Ab dann wird bei jedem stündlichen Check ein verfügbares Update direkt installiert. UI-Banner erscheint nicht mehr (oder kurz).

Empfehlung: Auto-Update nur in Test-Umgebungen, in Prod manuell prüfen.

Rollback

cd /opt/corex-nexredirect
sudo -u nexredirect git tag --list | sort -V
sudo /opt/corex-nexredirect/scripts/update.sh v0.1.0   # Vorgänger-Tag

Der Update-Skript ruft git checkout <tag> und rebuilt — daher gleich für Forward- und Rollback-Updates.

Schema-Migrationen

ensureSchema in lib/db.ts legt fehlende Tabellen/Indizes idempotent an — CREATE TABLE IF NOT EXISTS für jede Tabelle. Reine additive Migrationen sind damit automatisch.

Für destruktive Migrationen (Spalten umbenennen, droppen): manuelles SQL vor dem Update einspielen, Schritte werden im Release-Note dokumentiert.

Update-Log

Jeder Update-Versuch wird in der update_log-Tabelle protokolliert:

SELECT ts, from_version, to_version, status FROM update_log ORDER BY ts DESC LIMIT 10;

Status: success oder failed (mit Log-Auszug in der log-Spalte).