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.
Diese Anleitung setzt grundlegende Erfahrung mit Docker voraus. Solltest du noch nicht mit Docker gearbeitet haben, empfehlen wir eine direkte Installation wie in der Linux oder macOS Anleitung beschrieben
Sind deine Geräte nicht über Netzwerk erreichbar (bspw. RS485 Adapter) solltest du auch die direkte Installation wählen. Es gibt technische Lösungen, dies mit Docker umzusetzen. Diese werden hier allerdings nicht behandelt.
Vorbereitung
Konfigurationsdatei
Du benötigst eine evcc.yaml Konfigurationsdatei für deine Komponenten (Zähler, Wallbox, Fahrzeug, ...).
Es gibt mehrere Möglichkeiten, diese zu erstellen:
- 
Assistent auf anderem System: Führe evcc configurevorher auf einem Linux, macOS oder Windows System aus. Verwende die damit erstellteevcc.yamlDatei für deine Docker Installation.
- 
Manuell: Erstelle die evcc.yamlmanuell. Hier findest du eine Anleitung unter evcc.yaml erstellen.
- 
Assistent in Docker: Praktisch, wenn du Docker auf einem Linux System installiert hast. Erstelle eine leere evcc.yamlDatei und führe den Konfigurationsassistenten direkt in Docker aus. Folge den Fragen des Assistenten. Am Ende wird die Konfiguration in die erstellteevcc.yamlDatei geschrieben.touch evcc.yaml
 docker run -v $(pwd)/evcc.yaml:/app/evcc.yaml -it evcc/evcc:latest evcc configure
Volumes
Der evcc Docker Container benötigt zwei Volumes:
- /etc/evcc.yamlfür die Konfigurationsdatei
- /root/.evcc/Verzeichnis für die interne SQLite Datenbank. Die Datenbank wird automatisch in diesem Verzeichnis abgelegt.
Erstelle diese Verzeichnisse auf deinem Host-System.
In dieser Anleitung verwenden wir exemplarisch die Pfade /home/user/.evcc/ und /home/user/evcc.yaml
Installation
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.
via Docker UI
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:
Verfügbare Docker Images
- evcc/evcc:latest(empfohlen)
- evcc/evcc:nightly(Entwickler-Build)
Volume Mounts
| Host Pfad | Container Pfad | Beschreibung | 
|---|---|---|
| /home/user/evcc.yaml | /etc/evcc.yaml | Konfigurationsdatei | 
| /home/user/.evcc/ | /root/.evcc | Verzeichnis für interne Datenbank | 
Ports
| Host Port | Container Port | Beschreibung | Optional | 
|---|---|---|---|
| 7070 | 7070/tcp | Web UI, API | |
| 8887 | 8887/tcp | OCPP Server | Yes | 
| 9522 | 9522/udp | SMA Sunny Home Manager | Yes | 
| 7090 | 7090/udp | KEBA Chargers | Yes | 
| 5353 | 5353/udp | mDNS | Yes | 
| 4712 | 4712/tcp | EEBus | Yes | 
| 8899 | 8899/udp | Modbus UDP | Yes | 
Ö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.
Aktualisierung
Der Aktualisierungsprozess hängt von der jeweiligen Docker UI ab. Schaue dafür in die Dokumentation deines Systems.
Sollten nach einer Aktualisierung bspw. deine Ladevorgänge nicht mehr angezeigt werden ist das /root/.evcc Verzeichnis nicht korrekt gemountet.
via Docker CLI
Installiere und starte den Docker Container der zu deiner Komponenten-Konstellation passt mit einem der folgenden Befehle.
Ob du sudo benötigst, hängt von deinem System ab.
- Standard
- SMA Geräte und EEBus
sudo docker run -d --name evcc \
-v /home/user/evcc.yaml:/etc/evcc.yaml \
-v /home/user/.evcc:/root/.evcc \
-p 7070:7070 \
-p 8887:8887 \
evcc/evcc:latest
sudo docker run -d --name evcc \
-v /home/user/evcc.yaml:/etc/evcc.yaml \
-v /home/user/.evcc:/root/.evcc \
-p 7070:7070 \
-p 8887:8887 \
-p 9522:9522/udp \
-p 4712:4712 \
--network host
-v /etc/machine-id:/etc/machine-id
evcc/evcc:latest
Setze den Netzwerkmodus auf host.
Der SMA Sunny Home Manager benötigt eine eindeutige Geräte-ID.
Unter Linux kannst du machine-id in den Container mounten.
Alternativ kannst du in der evcc.yaml auch eine ID im plant Parameter hinterlegen.
Die obige Konfiguration nutzt nur die grundlegenden Ports. Füge bei Bedarf weitere Ports hinzu. Details findest du im Abschnitt Ports.
Aktualisierung
Um auf eine neue Version von evcc zu aktualisieren, führe folgende Schritte durch. Aktualisiere auf das neuste evcc Image:
sudo docker pull evcc/evcc:latest
Stoppe den evcc Container:
sudo docker stop evcc
Lösche den evcc Container:
sudo docker rm evcc
Starte den evcc Container mit den gleichen Parametern wie beim ersten Start.
sudo docker run [...] evcc/evcc:latest
Springe zum Abschnitt Testen um zu prüfen, ob die Installation erfolgreich war.
via Docker Compose
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:
- Standard
- SMA Geräte und EEBus
version: '3'
services:
  evcc:
    command:
      - evcc
    container_name: evcc
    image: evcc/evcc:latest
    ports:
      - 7070:7070/tcp
      - 8887:8887/tcp
    volumes:
      - /home/user/evcc.yaml:/etc/evcc.yaml
      - /home/user/.evcc:/root/.evcc
    restart: unless-stopped
version: '3'
services:
  evcc:
    command:
      - evcc
    container_name: evcc
    image: evcc/evcc:latest
    ports:
      - 7070:7070/tcp
      - 8887:8887/tcp
      - 9522:9522/udp
      - 4712:4712/tcp
    volumes:
      - /home/user/evcc.yaml:/etc/evcc.yaml
      - /home/user/.evcc:/root/.evcc
      - /etc/machine-id:/etc/machine-id
      - /var/lib/dbus/machine-id:/var/lib/dbus/machine-id
    network_mode: host
    restart: unless-stopped
Die obige Konfiguration nutzt nur die grundlegenden Ports. Füge bei Bedarf weitere Ports hinzu. Details findest du im Abschnitt Ports.
Starte den Container mit:
sudo docker compose up -d
Aktualisierung
Navigiere in das Verzeichnis, das die compose.yml Datei von evcc enthält.
Aktualisiere auf das neuste evcc Image:
sudo docker compose pull
Falls ein neues Image vorhanden ist, startet das folgende Kommando den Container neu - ansonsten läuft der Alte einfach weiter:
sudo docker compose up -d
Testen
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.
Du solltest die evcc Oberfläche sehen und aufgefordert werden ein Administrations-Passwort zu setzen.
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 die Konfiguration in der evcc.yaml Datei.
Weitere Details findest du in evcc.yaml erstellen oder in den GitHub Diskussionen.
Community Anleitungen
Hier findest du von Nutzern erstellte Anleitungen für konkrete Systeme. Für die Richtigkeit und Aktualität können wir nicht garantieren.
Aktualisierungen oder Anleitungen für weitere Systeme sind jederzeit willkommen. Egal ob als PDF, eigener Blog-Artikel oder YouTube Video. Erstelle gerne einen Pull Request im Doku Repository.
Synology NAS
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)
QNAP NAS
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)