Skip to content

Updates ​

Noch kein Update-Befehl

Einen eigenen Befehl für Updates gibt es noch nicht. Diese Seite beschreibt, was es heute gibt, und wo die Grenzen sind. Sprich ein Update mit POSTDOG ab, bis es den Befehl gibt.

Welches Image läuft ​

Welches Image läuft, entscheidet eine Zeile in /opt/postdog/.env:

POSTDOG_IMAGE=download.postdog.de/postdog/core@sha256:…

Die Referenz nennt einen Digest, nicht nur einen Tag. Sie zeigt also immer auf genau ein Image – auch wenn unter derselben Versionsnummer etwas anderes veröffentlicht würde.

Was gerade läuft:

sh
docker inspect -f '{{ .Config.Image }}' postdog-core

Was ein zweiter Lauf des Installationsskripts tut ​

Startest du die Installationszeile noch einmal, dann

  • prüft das Skript das aktuelle Release und seine Unterschrift,
  • holt es das Image dieses Releases,
  • lässt es Volumes, Geheimnisse, .env und docker-compose.yml unverändert.

Weil die .env bleibt, startet docker compose danach wieder das Image, das dort steht – also das alte. Ein zweiter Lauf allein ist kein Update.

Ein Update, wie es heute geht ​

  1. Sichern. Siehe Sichern und Wiederherstellen.

  2. Stoppen:

    sh
    cd /opt/postdog && docker compose down

    Ohne -v. Die Volumes sind ohnehin extern, aber gewöhn dir das -v gar nicht erst an.

  3. Die alte .env beiseitelegen, damit das Skript eine neue schreibt:

    sh
    mv /opt/postdog/.env /opt/postdog/.env.vorher
  4. Die Installationszeile noch einmal starten – mit denselben Namen wie beim ersten Mal. Das Skript schreibt eine neue .env mit dem Image des aktuellen Releases und einer frisch geholten Lizenz. Volumes und Geheimnisse bleiben, wie sie sind.

  5. Vergleichen:

    sh
    diff /opt/postdog/.env.vorher /opt/postdog/.env

    Hattest du in der alten .env etwas von Hand ergänzt, übernimm es und starte mit docker compose up -d neu.

Die Grenzen ​

  • Datenbankänderungen eines neuen Releases spielt das Image derzeit nicht selbst ein. Kläre vorher mit POSTDOG, ob das Release welche mitbringt.
  • Die compose-Datei bleibt die vom ersten Lauf. Bringt ein Release eine geänderte mit, bekommst du das von POSTDOG gesagt.
  • Der Container postdog-data (mysql:8.4) gehört nicht zum Release und wird damit nicht aktualisiert.

Zurück zum vorherigen Stand ​

Das alte Image bleibt auf der Maschine liegen, bis du es löschst. Hat das neue Release nichts an der Datenbank geändert, reicht:

sh
cd /opt/postdog
mv .env .env.neu && mv .env.vorher .env
docker compose up -d

Hat es die Datenbank geändert, gehört dazu die Sicherung von vorher.

POSTDOG – Mail, Verteiler, Chat und Besprechungen auf deinem eigenen Server.