Commit Graph

61 Commits

Author SHA1 Message Date
70dd911a4c fix: Aktualisiere Zeitverzögerung für Update-Überprüfung und füge Timeout für Server-Check hinzu 2026-05-09 02:47:18 +02:00
33b805b582 feat: WireGuard VPN-Funktionalität hinzugefügt und Versionsnummer auf 1.0.9 erhöht 2026-05-09 02:45:12 +02:00
aae616c92b feat: Logs-Div-Element aktualisiert und Versionsnummer auf 1.0.8 erhöht 2026-05-09 02:28:37 +02:00
eef04ca7d5 feat: API-Endpunkt zum Neustarten des Systems hinzugefügt und Versionsnummer auf 1.0.7 erhöht 2026-05-09 02:26:39 +02:00
d1eabea3e3 feat: Protokoll in Logs umbenannt und Versionsnummer auf 1.0.6 erhöht 2026-05-09 02:24:48 +02:00
b24c08ec5a feat: Versionsnummer auf 1.0.5 erhöht und Installationsskript aktualisiert 2026-05-09 02:23:02 +02:00
2af91aa749 Update Version 2026-05-09 02:15:39 +02:00
f57d755156 fix v1.0.3 – Update-Badge HTML-Element fehlte im Topbar
Das <div id="upd-badge"> war im CSS und JS vorhanden, aber
nie ins HTML-Template eingefügt worden – daher kein sichtbares Badge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 02:14:14 +02:00
e96ce8a7d3 Release v1.0.2 – Stromausfall-Schutz
Atomare Schreibvorgänge (schützt vor Dateikorruption durch Stromausfall):
- _atomic_write(): schreibt erst .tmp, sync auf Disk, dann os.replace() (POSIX-atomar)
- save_cfg() / save_state() verwenden _atomic_write statt write_text()
- Update-Install schreibt app.py.tmp, fsync, dann atomares Umbenennen

Korruptionsschutz beim Laden:
- load_cfg() / load_state(): bei JSON-Fehler Warnung loggen, .corrupt-Backup anlegen,
  sicher mit Standardwerten weiterlaufen statt zu crashen

Schutz vor unvollständigen Kopien:
- Jede Datei wird als .picopy_tmp kopiert, erst nach Abschluss atomar umbenannt
- Duplikat-Skip prüft Dateigröße: stimmt sie nicht überein, war die Datei abgeschnitten
  und wird automatisch neu kopiert
- .picopy_incomplete Marker-Datei im Zielordner während des Kopiervorgangs
- Veraltete .picopy_tmp-Dateien werden beim Kopierstart bereinigt
- subprocess.run(['sync']) vor dem Unmounten der Laufwerke

Startup-Bereinigung:
- cleanup_stale_mounts() beim Start: hängende /mnt/picopy-Mounts aus vorherigen
  Abstürzen werden sauber per umount -l entfernt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 02:11:18 +02:00
b54fe0cd60 Release v1.0.1 – Protokoll wieder auf volle Breite
- Log-Karte über gesamte Seitenbreite (col2)
- Log-Fenster Höhe von 200px auf 300px vergrößert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 02:06:22 +02:00
2c02ed4df3 feat: automatisches Update-System
- VERSION-Konstante in app.py (aktuell: 1.0.0)
- version.txt als zentraler Versions-Vergleichspunkt
- Background-Thread prüft alle 6 Stunden auf Updates
- /api/update/status – aktueller Update-Status
- /api/update/check  – manueller Check auslösen
- /api/update/install – Download + Syntax-Check + Neustart
- Topbar-Badge zeigt "↑ v1.x.x verfügbar" wenn Update bereit
- One-Click-Install mit Bestätigungsdialog + Auto-Reload
- README: Update-Anleitung (Web-Interface, SSH, One-Liner)
- README: Release-Prozess für Maintainer dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 02:03:50 +02:00