feat: update.sh für den Betrieb unter Linux
Release / veroeffentlichen (push) Canceled after 0s
CI / pruefen (push) Canceled after 0s

Erst sichern, dann anfassen: schlägt die Sicherung fehl, bricht das Skript ab
statt weiterzumachen. Geht danach etwas schief, nennt es den konkreten Weg
zurück — mit dem Commit, zu dem man zurückspringt, und der Datei, die man
einspielt, nicht bloß dem Rat, ein Backup zu haben.

Lokale Änderungen im Arbeitsverzeichnis werden erkannt und nicht überfahren.
Die Erreichbarkeit wird über den veröffentlichten Port geprüft und, falls der
nicht nach außen geht, über den Healthcheck des Containers.

Das Ausführbar-Bit steckt im Repository — nach dem Klonen ist es startklar.
This commit is contained in:
Florian Wilde
2026-09-01 22:46:36 +02:00
parent 9ee8664233
commit 19f8003945
8 changed files with 321 additions and 8 deletions
+23 -6
View File
@@ -114,14 +114,31 @@ flimmer.example.com {
```bash
cd flimmer
git pull
docker compose build
docker compose up -d
./update.sh
```
Datenbankmigrationen laufen automatisch beim Start des Containers — ein eigener
Handgriff ist nicht nötig. **Vor** einem Update ein Backup zu ziehen ist
trotzdem eine gute Angewohnheit.
Das Skript sichert zuerst die Datenbank, holt die Änderungen, baut das Image neu
und wartet, bis die Instanz wieder antwortet. Schlägt etwas fehl, nennt es den
konkreten Weg zurück — mit dem Befehl und der Sicherungsdatei, nicht bloß dem
Rat, ein Backup zu haben.
```
./update.sh --ohne-backup ohne Datenbanksicherung
./update.sh --ohne-pull nur neu bauen und starten
./update.sh --behalte 20 wie viele Sicherungen aufgehoben werden (Standard: 10)
./update.sh --hilfe
```
Die Sicherungen landen unter `backups/` und sind gzip-komprimierte `pg_dump`s.
Von Hand geht es genauso:
```bash
git pull && docker compose build && docker compose up -d
```
Datenbankmigrationen laufen in beiden Fällen automatisch beim Start des
Containers — ein eigener Handgriff ist nicht nötig.
## Backup