# Installation von Updates

> Wie Updates der Docker-Images funktionieren: von Hand per docker compose, automatisch mit Watchtower oder auf Knopfdruck in HELIOS.

Die Komponenten von SOLECTRUS bekommen unabhängig voneinander Updates mit neuen Funktionen und Fehlerkorrekturen. Jede Komponente ist ein Docker-Image, dessen Version in der `compose.yaml` steht.

## Wie Updates bei Docker funktionieren

Docker lädt ein Image einmal herunter und verwendet es danach immer wieder. Auch beim Tag `latest` sieht Docker von sich aus **nicht** nach, ob es inzwischen eine neuere Version gibt. Ohne Zutun läuft eine Installation vom Mai im Dezember noch mit dem Image vom Mai.

Ein Update besteht deshalb aus zwei Schritten: das neue Image holen und den Container damit neu erzeugen. Ob das von Hand, über [Watchtower](/docs/referenz/watchtower/) oder in [HELIOS](/docs/referenz/helios/) geschieht, ändert an diesen beiden Schritten nichts.

## Ohne HELIOS

Bei einer Installation von Hand liegen `compose.yaml` und `.env` in einem Verzeichnis auf dem Server. Ein Update erfolgt dort per SSH:

1. Login auf den Server
2. In das Verzeichnis mit `compose.yaml` und `.env` wechseln.
3. Diese beiden Befehle ausführen:

```bash
docker compose pull
docker compose up -d
```

`docker compose pull` lädt die neuesten Versionen der Docker-Images herunter. `docker compose up -d` erzeugt die geänderten Container neu. Das betrifft alle Dienste aus der `compose.yaml` – Dashboard, Kollektoren und die Datenbanken (InfluxDB, PostgreSQL, Redis).

Wer diese Schritte nicht von Hand ausführen will, richtet [Watchtower](/docs/referenz/watchtower/) ein. Es prüft regelmäßig auf neue Versionen und übernimmt beide Schritte automatisch.

## Mit HELIOS

Zu den Diensten, die [HELIOS](/docs/referenz/helios/) einrichtet und betreibt, gehört [Watchtower](/docs/referenz/watchtower/). Es prüft regelmäßig, ob es neue Versionen der Docker-Images gibt, und installiert sie automatisch. Das gilt für alle Dienste, HELIOS selbst eingeschlossen. Die Befehle von oben sind damit nicht mehr nötig.

In HELIOS steht unter _Konfiguration → Grundeinstellungen → Software-Stand_ je Dienst die Wahl zwischen den Spalten **Stabil** und **Entwicklung**. Im Zweifel: Stabil.

Steht mindestens ein Dienst auf _Entwicklung_, erscheint dort zusätzlich die Frage, wie oft Watchtower nach neuen Versionen suchen soll. Ansonsten prüft es täglich.

Soll ein Update sofort greifen, ohne auf den nächsten Lauf von Watchtower zu warten, gibt es in HELIOS unter **Dienste** beim betreffenden Dienst den Knopf **Aktualisieren**. HELIOS lädt dann das Image neu und erzeugt den Container neu.

Welche Version gerade läuft, steht in derselben Zeile. Ist das Image-Tag veraltet, weist HELIOS darauf hin und bietet ein Update an.

## Major-Upgrade von PostgreSQL

Eine Ausnahme: Neue Major-Versionen von PostgreSQL (etwa 17 → 18) kann Watchtower nicht einspielen, denn dabei muss die Datenbank umgezogen werden. HELIOS bietet das Upgrade unter _Dienste_ als eigenen Schritt an. Näheres unter [PostgreSQL](/docs/referenz/postgresql/#updates).
