Zum Inhalt springen
EN | DE

Docker

Diese Anleitung beschreibt die Installation von evcc als Docker Image. Aktuell stellen wir Docker Images für AMD64, armv6 und arm64 zur Verfügung. Oft kommen hier NAS-Systeme wie Synology, QNAP, Unraid und TrueNAS zum Einsatz.

evcc kann auf zwei Arten konfiguriert werden:

  1. Weboberfläche (empfohlen): Starte den Container ohne evcc.yaml. Nach dem Start richtest du evcc direkt im Browser ein. Die Konfiguration wird automatisch in der Datenbank gespeichert.

  2. Konfigurationsdatei (traditionelle Methode): Erstelle eine evcc.yaml Datei mit deinen Einstellungen. Eine Anleitung findest du unter Einrichtung.

Der evcc Docker Container benötigt mindestens ein Volume:

  • /root/.evcc/ Verzeichnis für die interne SQLite Datenbank (erforderlich). Die Datenbank wird automatisch in diesem Verzeichnis abgelegt.
  • /etc/evcc.yaml für die Konfigurationsdatei (optional - nur bei dateibasierter Konfiguration)

Erstelle das Datenbank-Verzeichnis auf deinem Host-System. In dieser Anleitung verwenden wir exemplarisch den Pfad /home/user/.evcc/. Falls du die dateibasierte Konfiguration nutzt, verwende zusätzlich /home/user/evcc.yaml

In diesem Abschnitt werden drei Möglichkeiten zur Installation von evcc über Docker beschrieben. Über eine Docker GUI, über die Docker CLI und über Docker Compose.

Hast du ein System mit einer Docker GUI (z. B. Synology, QNAP, Portainer, Unraid, …) kannst du die Installation auch über diese Oberfläche vornehmen. Hier sind die relevanten Angaben, die du eintragen musst:

  • evcc/evcc:latest (empfohlen)
  • evcc/evcc:nightly (Entwickler-Build)
Host PfadContainer PfadBeschreibungErfordert
/home/user/evcc.yaml/etc/evcc.yamlKonfigurationsdatei (nur bei dateibasierter Konfiguration)nein
/home/user/.evcc//root/.evccVerzeichnis für interne Datenbankja
Host PortContainer PortBeschreibungErfordert
70707070/tcpWeb UI, APIja
88878887/tcpOCPP Servernein
95229522/udpSMA Sunny Home Managernein
70907090/udpKEBA Chargersnein
53535353/udpmDNSnein
47124712/tcpEEBusnein
88998899/udpModbus UDPnein

Öffne die Docker UI deines Systems und erstelle einen neuen Container mit den obigen Angaben und starte ihn.

Die genauen Feldbezeichnungen sind von System zu System unterschiedlich. Die Konzepte Ports und Volumes findest du aber in allen Systemen wieder.

Springe zum Abschnitt Testen und überprüfe die Installation.

Der Aktualisierungsprozess hängt von der jeweiligen Docker UI ab. Schaue dafür in die Dokumentation deines Systems.

Installiere und starte den Docker Container mit einem der folgenden Befehle. Ob du sudo benötigst, hängt von deinem System ab.

Terminal-Fenster
sudo docker run -d --name evcc \
-v /home/user/evcc.yaml:/etc/evcc.yaml \ # optional
-v /home/user/.evcc:/root/.evcc \
-p 7070:7070 \
-p 8887:8887 \
evcc/evcc:latest

Um auf eine neue Version von evcc zu aktualisieren, führe folgende Schritte durch. Aktualisiere auf das neuste evcc Image:

Terminal-Fenster
sudo docker pull evcc/evcc:latest

Stoppe den evcc Container:

Terminal-Fenster
sudo docker stop evcc

Lösche den evcc Container:

Terminal-Fenster
sudo docker rm evcc

Starte den evcc Container mit den gleichen Parametern wie beim ersten Start.

Terminal-Fenster
sudo docker run [...] evcc/evcc:latest

Springe zum Abschnitt Testen um zu prüfen, ob die Installation erfolgreich war.

docker-compose hat einige Vorteile gegenüber der direkten Ausführung in der Kommandozeile Alle Parameter werden in einer Datei hinterlegt. Zudem kannst du weitere Programme wie Traefik in Verbindung mit evcc konfigurieren und gemeinsam starten. Im aktiven Verzeichnis legt man dazu einfach eine Konfigurationsdatei mit dem Namen compose.yml an. Entsprechend der passenden Komponenten-Konstellation kopiert man eine der folgenden Konfigurationen in die compose.yml und speichert diese ab:

version: "3"
services:
evcc:
command:
- evcc
container_name: evcc
image: evcc/evcc:latest
ports:
- 7070:7070/tcp
- 8887:8887/tcp
volumes:
- /home/user/.evcc:/root/.evcc
- /home/user/evcc.yaml:/etc/evcc.yaml # optional
restart: unless-stopped
# optional:
#user: <UID>:<GID>

Starte den Container mit:

Terminal-Fenster
sudo docker compose up -d

Navigiere in das Verzeichnis, das die compose.yml Datei von evcc enthält.

Aktualisiere auf das neuste evcc Image:

Terminal-Fenster
sudo docker compose pull

Falls ein neues Image vorhanden ist, startet das folgende Kommando den Container neu - ansonsten läuft der Alte einfach weiter:

Terminal-Fenster
sudo docker compose up -d

Hast du deinen Container erfolgreich erstellt und gestartet, kannst du die evcc Web UI unter http://<host>:7070 aufrufen. <host> ist hier die IP-Adresse oder der Hostname des Computers, auf dem der Container läuft.

Bei der ersten Verwendung:

  • Wirst du aufgefordert ein Administrations-Passwort zu setzen
  • Kannst du anschließend deine Geräte über die Weboberfläche einrichten (bei UI-Konfiguration)
  • Oder siehst direkt deine konfigurierten Geräte (bei dateibasierter Konfiguration)

Solltest du keine Verbindung herstellen können, überprüfe die Logs deines Containers. Wenn du die Oberfläche siehst, aber eine Fehlermeldung angezeigt wird, überprüfe:

  • Bei dateibasierter Konfiguration: die Einstellungen in der evcc.yaml Datei
  • Bei UI-Konfiguration: die Geräteeinstellungen auf der Konfigurationsseite

Weitere Details findest du in Einrichtung oder in den GitHub Diskussionen.

Hier findest du von Nutzern erstellte Anleitungen für konkrete Systeme. Für die Richtigkeit und Aktualität können wir nicht garantieren.

Die Einrichtung von evcc über Docker auf einem Synology NAS-System ist über dessen grafische Benutzeroberfläche ohne Verwendung der Kommandozeile möglich. Hierbei sind zwei Netzwerkmodi wählbar: Host oder Bridge. Ob der Bridge-Modus anwendbar ist, hängt von den verwendeten Komponenten ab. Im Zweifelsfall ist immer der Host-Mode zu wählen. Hier die Anleitung dazu: Anleitung: Synology Docker (PDF)

Für den Bridge-Mode ist nach dieser Anleitung zu verfahren: Anleitung: Synology Docker 2 (PDF) (erstellt von at4hawo1)

Auch auf der QNAP NAS kann man über die Container Station evcc in einem Container laufen lassen. Ganz ohne Kommandozeile habe ich hier nicht gearbeitet. Wie auch bei der Synology ist es die Nutzung des Netzwerkmodus abhängig von den verwendeten Komponenten. Insbesondere beim SMA Sunny Home Manager 2.0 ist der “Host-Modus” zu wählen, um den Multicast zu joinen. Hier die Anleitung für das Erstellen des Containers mit der QNAP NAS und der Container Station 2/3: Anleitung: QNAP (PDF)