update.sh: Release-Asset-Download statt git clone, ursprüngliches Bash-Setup mit abschalten

- update.sh lädt jetzt ein fertig gepacktes Gitea-Release-Asset
  (tesm-<tag>.tar.gz, Default "latest") direkt per curl herunter und
  entpackt es -- kein "git clone" bzw. Git auf dem Zielsystem mehr nötig.
- Stoppt/deaktiviert zusätzlich zu den aktuellen TESM-Diensten auch das
  ursprüngliche, noch ältere reine Bash-Setup (rpi-check.service,
  rpi-check-restart.service/.timer -- der Vorgänger von TESM ganz ohne
  Datenbank/Web-UI, statische ips.list statt generate_ips.py), falls auf
  dem Zielsystem noch vorhanden.
- README entsprechend aktualisiert, inkl. kurzer Anleitung zum Paketieren
  eines neuen Release (versionierter Tag + bewegliches "latest"-Tag).
This commit is contained in:
2026-08-13 19:34:58 +02:00
parent bfb58b62e9
commit 31404266f3
2 changed files with 89 additions and 37 deletions
+28 -11
View File
@@ -1114,25 +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`)
### Frische Neuinstallation aus einem Release-Paket (`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`:
manuellem Datei-Upload statt über `install.sh`), für das ursprüngliche,
noch ältere reine Bash-Setup ganz ohne Datenbank/Web-UI (`rpi-check.service`
+ statische `ips.list`), oder um einen sauberen Stand aus einem Gitea-
Release herzustellen, gibt es zusätzlich zum `git pull` + `install.sh`-
Update oben `update.sh` — es lädt ein fertig gepacktes **Gitea-Release**
direkt per HTTP herunter, **kein `git clone`/Git auf dem Zielsystem nötig**:
```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
# oder eine bestimmte Version statt "latest":
sudo TESM_RELEASE_TAG=v1.0.0 ./update.sh
# für ein privates Repo mit Zugriffstoken:
sudo TESM_GITEA_USER=alientim TESM_GITEA_TOKEN=<token> ./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
Das Skript stoppt und deaktiviert zunächst alle laufenden Dienste — sowohl
die aktuellen (`tesm.service`, `tesm-check.service`,
`tesm-check-restart.timer`) als auch, falls noch vorhanden, das
ursprüngliche Bash-only-Setup (`rpi-check.service`,
`rpi-check-restart.service`, `rpi-check-restart.timer`) —, verschiebt ein
bestehendes `/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.
option und Datenquelle erhalten), lädt dann das Release-Paket
(`tesm-<tag>.tar.gz`, standardmäßig `latest`) von den Gitea-Releases dieses
Repos herunter 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
@@ -1142,6 +1151,14 @@ 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.
Ein neues Release paketieren (als Maintainer, nicht auf dem Zielsystem):
```bash
git archive --format=tar.gz --prefix=tesm/ -o tesm-vX.Y.Z.tar.gz vX.Y.Z
# als Release-Asset zum passenden Tag "vX.Y.Z" UND zum beweglichen Tag
# "latest" (zeigt immer auf den neuesten Stand) auf Gitea hochladen.
```
## Browser-SSH-Terminal (Switch-Verbindungstest)
„Verbindung testen“ im Switch-Modal öffnet eine WebSocket-Verbindung zu