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 neuem Release. Nichts wird ohne Klick installiert. |
update_auto = true |
Bei jedem Check wird verfügbares Update sofort installiert. |
update_include_prereleases = true |
Auch Pre-Releases als Update angezeigt. |
Manuell aktualisieren
UI:
- Banner oben oder Settings → "Update v0.1.X installieren" klicken
- Bestätigen
- UI zeigt Spinner, polled
/api/v1/health, lädt Seite neu sobald Server zurück
CLI:
sudo nexredirect update # auf neueste, skip wenn schon aktuell
sudo nexredirect update v0.1.10 # auf bestimmten Tag (auch downgrade)
sudo nexredirect update -f # erzwingen auch wenn gleiche Version
Update-Mechanik
update.shprüft latest Release-Tag (oder nimmt übergebenen Tag)- Skip wenn current === latest und kein
-f git fetch --tags && git checkout <tag>als Service-Usernpm ci- Prebuilt
.next-Tarball aus Release-Asset ziehen — spart ~25s gegenüber lokal bauen - Falls kein Asset (oder Download fehlschlägt):
npm run buildals Fallback - CLI-Symlink + Permissions aktualisieren
- Detached restart in 2s (Hauptscript exitet zuerst sauber → API kann response zurückgeben → DANN restart)
Auto-Update aktivieren
Settings → Toggle "Auto-Update aktivieren". Ab dann wird bei jedem stündlichen Check ein verfügbares Update direkt installiert.
Empfehlung: Nur in Test-Umgebungen. In Prod manuell prüfen, Release-Notes lesen.
Rollback
sudo nexredirect update v0.1.10 # auf Vorgänger-Version
update.sh läuft git checkout <tag> egal ob vorwärts oder rückwärts. Schema-Migrationen sind additiv (ALTER TABLE ADD COLUMN) — Downgrade fragmenten ungenutzte Spalten ignorieren.
Falls Schema-Inkompatibilität: vorher Backup, ggf. DB händisch downgraden.
Schema-Migrationen
Beim Start:
ensureSchema(db)legt fehlende Tabellen idempotent an (CREATE TABLE IF NOT EXISTS)runMigrations(db)läuft definierte Schritte (Settings-Flag-basiert + Schema-Check)
Aktuelle Migrationen:
m_301_to_302: alle existierenden 301-Codes auf 302 ändern (Browser-Cache-Fix)sunset_config-Spalte: Self-healing — prüft viaPRAGMA table_infoob Spalte existiert, fügt hinzu wenn nicht
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 (Log-Auszug in der log-Spalte).
→ Weiter mit Architecture