🐳 Docker  ·  Raspberry Pi  ·  PC  ·  NAS

Docker Installation

Run the dashboard in a container with one command. Multi-arch images cover amd64 (PCs/NAS), arm64 (Pi 4/5 on a 64-bit OS) and arm/v7 (Pi 3 / Zero 2). Your settings and history live in a data folder, so updates never lose anything.

🐳 ghcr.io/acbcsoftware/givenergy-dashboard

Multi-arch  ·  amd64 / arm64 / arm/v7  ·  talks to your inverter over the LAN

View on GitHub
Prerequisite: Docker Engine with the Compose plugin. On a Pi or Linux box the quickest install is curl -fsSL https://get.docker.com | sudo sh, then sudo usermod -aG docker $USER and log out/in.
1

Create a docker-compose.yml

Make a folder for the dashboard and save this as docker-compose.yml inside it:

services:
  givenergy-dashboard:
    image: ghcr.io/acbcsoftware/givenergy-dashboard:latest
    container_name: givenergy-dashboard
    ports:
      - "7890:7890"
    volumes:
      - ./data:/data
    environment:
      - TZ=Europe/London
    restart: unless-stopped
Set your timezone. Change TZ to your own (e.g. Europe/London). The scheduler and time-of-use tariffs use local time, so an unset timezone would be an hour out during BST.
2

Start it

docker compose up -d

Docker pulls the right image for your hardware and starts the container. It'll come back up automatically after a reboot.

3

Open the dashboard and set your inverter IP

Browse to http://<your-host-ip>:7890, open Settings, and enter your inverter's IP address. Everything you configure is saved to the ./data folder next to your compose file, alongside the history database and logs.

Update without losing data

Your ./data folder is separate from the image, so updating is just swapping the image. The history database upgrades itself in place.

docker compose pull
docker compose up -d
docker image prune -f     # optional: remove the old image

To roll back, pin a previous tag (e.g. image: ghcr.io/acbcsoftware/givenergy-dashboard:3.0) and run docker compose up -d again.

Common issues
?

Dashboard can't reach the inverter

The container talks to the inverter over your LAN. On the rare Docker host whose bridge network can't route to the LAN, swap the ports: block for host networking:

    # remove the ports: block and add:
    network_mode: host
?

Check the logs

Container logs mirror the dashboard log:

docker logs -f givenergy-dashboard
?

Times / scheduler an hour out, or a day's data missing

Set the TZ environment variable to your timezone in the compose file, then docker compose up -d to apply it. The dashboard groups history by calendar day using the container's system timezone, so an unset or wrong TZ can make a whole day look empty on screen, not just shift the clock by an hour.

Set up the container by hand instead of docker-compose.yml - e.g. Synology DSM Container Manager, Portainer, or Unraid's Docker UI? These don't read this project's compose file, so the TZ=Europe/London default above is never applied. Add a TZ environment variable to your timezone directly in that tool's container settings, then restart the container.

?

Port 7890 already in use

Change the host side of the port mapping, e.g. "7891:7890", then browse to that port instead.