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.
Multi-arch · amd64 / arm64 / arm/v7 · talks to your inverter over the LAN
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
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.
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.
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.
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
Container logs mirror the dashboard log:
docker logs -f givenergy-dashboard
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.
Change the host side of the port mapping, e.g. "7891:7890", then browse to that port instead.