Update/Reinstall-Skript für frische Release-Installationen (update.sh)

Ergänzt install.sh (das ein bestehendes Checkout voraussetzt) um einen Weg,
eine bisher ad-hoc gepflegte Installation (z.B. per manuellem Datei-Upload
während der Entwicklung) durch eine frische, aus einem Git-Tag geklonte
Installation zu ersetzen:
- Stoppt/deaktiviert tesm.service, tesm-check.service,
  tesm-check-restart.timer.
- Verschiebt das bestehende /srv/tesm NICHT gelöscht, sondern nach
  /srv/tesm-backup-<Zeitstempel> -- bleibt als Rückfalloption und
  Datenquelle für einen späteren Export/Import vollständig erhalten.
- Klont den angegebenen Release-Tag frisch und führt darin install.sh aus.
- Weist sowohl vor dem Start als auch am Ende deutlich darauf hin, dass das
  Ergebnis eine FRISCHE Installation ohne die Daten der alten Instanz ist --
  vorher exportieren (Einstellungen -> Im-/Export) oder danach alles neu
  einrichten.

README um den entsprechenden Abschnitt ergänzt.
This commit is contained in:
2026-08-13 19:24:59 +02:00
parent 93bcf4f6b6
commit bfb58b62e9
2 changed files with 125 additions and 0 deletions
+28
View File
@@ -1114,6 +1114,34 @@ konfiguriert nginx als Reverse-Proxy auf Port 80.
| `TESM_SECRET_KEY` | Flask Secret Key (überschreibt Datei) | zufällig, in `secret.key` gespeichert|
| `PORT`, `FLASK_DEBUG` | Flask-Serverport / Debug-Modus | `5000` / aus |
### Frische Neuinstallation aus einem Release (`update.sh`)
Für einen Host, dessen `/srv/tesm` bislang ad-hoc gepflegt wurde (z.B. per
manuellem Datei-Upload statt über `install.sh`), oder um einen sauberen
Stand aus einem getaggten Release herzustellen, gibt es zusätzlich zum
`git pull` + `install.sh`-Update oben `update.sh`:
```bash
sudo ./update.sh
# oder mit einer anderen Version/Repo-URL:
sudo TESM_RELEASE_TAG=v1.0.0 TESM_REPO_URL=https://gitea.../alientim/tesm.git ./update.sh
```
Das Skript stoppt und deaktiviert zunächst die laufenden Dienste
(`tesm.service`, `tesm-check.service`, `tesm-check-restart.timer`),
verschiebt das bestehende `/srv/tesm` **ohne es zu löschen** nach
`/srv/tesm-backup-<Zeitstempel>` (bleibt inkl. `sqlite.db` als Rückfall-
option und Datenquelle erhalten), klont dann den angegebenen Git-Tag frisch
und führt darin `install.sh` aus.
**Ergebnis ist eine komplett frische Installation** — neue, leere Datenbank,
keine Geräte/Switche/Zugangsdaten/Benutzer/Einstellungen aus der alten
Instanz. Vor dem Ausführen deshalb unbedingt unter **Einstellungen →
Im-/Export** ein Backup der alten Instanz exportieren; danach entweder alles
manuell neu einrichten oder dieses Backup in die neue Installation
importieren (siehe [Import/Export](#importexport)). Das Skript weist sowohl
vor dem Start als auch am Ende explizit darauf hin.
## Browser-SSH-Terminal (Switch-Verbindungstest)
„Verbindung testen“ im Switch-Modal öffnet eine WebSocket-Verbindung zu