Update-Skript fuer Linux/macOS und Windows

update.sh bzw. update.ps1 holen den neuen Stand und bauen den Stack neu:

- Bricht ab, wenn git, docker compose oder die .env fehlen.
- Bricht ab, wenn es lokale Aenderungen gibt — ein "git pull" wuerde dort
  im Konflikt enden.
- Holt den Stand mit "git merge --ff-only" und zeigt die neuen Commits.
- Baut nur neu, wenn es tatsaechlich Aenderungen gab (--force erzwingt es).
- Wartet, bis die Anwendung auf APP_PORT antwortet, und gibt bei Zeitablauf
  das Container-Protokoll aus, statt stillschweigend Erfolg zu melden.
- Zeigt zum Schluss die Migrationszeilen aus dem Start und den Status.
- --prune raeumt auf Wunsch verwaiste Images auf, die bei jedem Neubau
  zurueckbleiben.

README um einen Abschnitt "Aktualisieren" ergaenzt.
This commit is contained in:
Florian Wilde
2026-08-13 18:07:03 +02:00
parent b583c88855
commit c731c22160
4 changed files with 350 additions and 0 deletions
+49
View File
@@ -12,6 +12,7 @@ vorbereitet.
## Inhalt
- [Schnellstart](#schnellstart)
- [Aktualisieren](#aktualisieren)
- [Konfiguration](#konfiguration)
- [Bedienung](#bedienung)
- [Technischer Aufbau](#technischer-aufbau)
@@ -45,6 +46,53 @@ docker compose down -v # Stack stoppen und Datenbank löschen
---
## Aktualisieren
Für neue Versionen liegt ein Update-Skript bei — einmal für Linux/macOS und
einmal für Windows. Es holt den aktuellen Stand aus Git, baut den Stack neu
und wartet, bis die Anwendung wieder antwortet.
```bash
./update.sh # Linux / macOS
```
```powershell
.\update.ps1 # Windows
```
Beim ersten Aufruf unter Linux muss das Skript einmal ausführbar gemacht
werden: `chmod +x update.sh`.
Was das Skript tut:
1. prüft, ob `git`, `docker compose` und die `.env` vorhanden sind,
2. bricht ab, wenn es **lokale Änderungen** gibt — sonst würde `git pull` im
Konflikt enden,
3. holt den neuen Stand mit `git merge --ff-only` und zeigt die neuen Commits,
4. baut den Stack nur neu, wenn es tatsächlich Änderungen gab,
5. wartet, bis die Anwendung auf `APP_PORT` antwortet, und zeigt sonst das
Protokoll,
6. gibt die Migrationszeilen aus dem Start-Protokoll und den Containerstatus
aus.
Optionen:
| Option | Wirkung |
| ------------------- | -------------------------------------------------------------- |
| `--force` / `-Force` | Auch ohne neue Commits neu bauen |
| `--prune` / `-Prune` | Danach verwaiste Docker-Images entfernen (`docker image prune`) |
| `--help` | Hilfe anzeigen |
Die Datenbank bleibt beim Update erhalten — neue Migrationen wendet der
App-Container beim Start automatisch an. Wer lieber von Hand aktualisiert:
```bash
git pull
docker compose up -d --build
```
---
## Konfiguration
Alle Einstellungen stehen in der `.env` im Projektverzeichnis (Vorlage:
@@ -171,6 +219,7 @@ prisma/
migrations/ Versionierte Migrationen
docker/
entrypoint.sh Migration + Serverstart im Container
update.sh / update.ps1 Update-Skript (git pull + Neubau + Prüfung)
src/
app/
page.tsx Startseite mit dem Kachel-Grid