Files
hetzner-api-dyndns-records-…/UPDATE.md
T
admin f02ec9977c
Container-Image veröffentlichen / container (push) Has been cancelled
feat: add resilient updates and access controls
2026-08-28 14:02:07 +02:00

2.3 KiB

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:

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:

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:

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:

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.