feat: add resilient updates and access controls
Container-Image veröffentlichen / container (push) Has been cancelled
Container-Image veröffentlichen / container (push) Has been cancelled
This commit is contained in:
1 parent
a000152423
commit
f02ec9977c
41 files changed
+3277
-151
No files matched your search
@@ -0,0 +1,71 @@
|
||||
# Domain Control aktualisieren
|
||||
|
||||
Die aktuelle Compose-Version ist `v1.3.0`. Datenbank, Einstellungen und
|
||||
verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei
|
||||
den folgenden Verfahren erhalten.
|
||||
|
||||
## Direkt in der Weboberfläche
|
||||
|
||||
1. Als Administrator anmelden und **Update** öffnen.
|
||||
2. Falls noch nicht geschehen, Gitea-Benutzername und einen Token mit
|
||||
Lesezugriff auf Repository und Container-Paket hinterlegen.
|
||||
3. **Nach Update suchen** und anschließend **Jetzt aktualisieren** wählen.
|
||||
4. Warten, bis Image-Download, Containerwechsel und Healthcheck abgeschlossen
|
||||
sind. Bei einem Fehler versucht der Update-Agent automatisch, den vorherigen
|
||||
Container wiederherzustellen.
|
||||
|
||||
Ein nicht erreichbarer Git- oder Registry-Server unterbricht den laufenden
|
||||
DynDNS-Dienst nicht.
|
||||
|
||||
## Mit Docker Compose
|
||||
|
||||
In `compose.yml` wird nur die zentrale, konkret gepinnte Image-Zeile geändert:
|
||||
|
||||
```yaml
|
||||
x-domain-control-image: &domain-control-image
|
||||
image: git.j-mahler.de/admin/domain-control-webinterface-prod:v1.3.0
|
||||
```
|
||||
|
||||
Danach im Ordner der Compose-Datei ausführen:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
Die Web-App und der Update-Agent verwenden durch den YAML-Anker dieselbe
|
||||
Version. Für das Update ist kein `docker compose down` nötig. Insbesondere
|
||||
niemals `docker compose down -v` verwenden, da `-v` die Daten- und
|
||||
Secret-Volumes löschen würde.
|
||||
|
||||
Der Healthcheck lässt sich anschließend direkt prüfen:
|
||||
|
||||
```bash
|
||||
curl --fail http://127.0.0.1:9090/healthz
|
||||
```
|
||||
|
||||
Die erwartete Antwort lautet `ok`.
|
||||
|
||||
## Portainer oder Dockge
|
||||
|
||||
1. Den bestehenden Stack bearbeiten.
|
||||
2. Nur den Tag der zentralen Image-Zeile auf `v1.3.0` setzen.
|
||||
3. Den Stack mit vorherigem Image-Pull erneut bereitstellen.
|
||||
4. Kontrollieren, dass beide Container laufen und die Web-App `healthy` ist.
|
||||
|
||||
Den Stack nicht mitsamt seinen Volumes löschen oder neu anlegen.
|
||||
|
||||
## Rollback
|
||||
|
||||
Falls ein manuelles Rollback nötig ist, die zentrale Image-Zeile wieder auf die
|
||||
zuvor eingesetzte konkrete Version setzen und erneut ausführen:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Vor größeren Versionssprüngen sollten die Volumes `dyndns-data` und
|
||||
`dyndns-secrets` gemeinsam gesichert werden. Nur zusammen enthalten sie sowohl
|
||||
die Datenbank als auch den zur Entschlüsselung benötigten Master-Key.
|
||||
Reference in new issue
Block a user