A single shell script installs everything and registers a systemd service that starts automatically on boot.
All files including installer · Raspberry Pi OS, Ubuntu 22.04+, Debian Bookworm+
Also available separately: setup.sh · config.ini.example
Flash Raspberry Pi OS Lite (64-bit) using Raspberry Pi Imager. In the Imager's OS Customisation screen, set:
Boot the Pi and connect via SSH:
ssh youruser@givenergy.local
Download the project and copy it to the target machine. If you have the files on your PC already, use scp:
scp -r givenergy-dashboard/ youruser@givenergy.local:~/
Or download the zip directly from this site and unzip it on the Pi:
wget https://software.andrewcampbell.co.uk/downloads/givenergy-dashboard.zip
unzip givenergy-dashboard.zip
cd givenergy-dashboard
bash setup.sh
From inside the project folder:
bash setup.sh
The script will:
Total install time is typically 2–4 minutes depending on your internet connection.
Edit the configuration file — the only value you must change is the inverter's IP address:
nano /opt/givenergy-dashboard/config.ini
[inverter]
ip = 192.168.1.100 # change to your inverter's LAN IP
Find your inverter's IP in your router's DHCP client list. It is usually labelled GivEnergy or similar.
After editing, restart the service:
sudo systemctl restart givenergy-dashboard
From any device on your network, open a browser and go to:
http://<pi-ip-address>:7890
You can find the Pi's IP with hostname -I, or use the hostname if mDNS is working:
http://givenergy.local:7890
Tap the ⚡ lightning bolt icon in the top-left to open Settings. The default password is password — change it straight away.
Open http://<pi-ip>:7890 in your phone's browser.
iPhone (Safari) — works over HTTP:
Android (Chrome) — requires HTTPS for full-screen:
# Check the service is running
sudo systemctl status givenergy-dashboard
# View live log output
sudo journalctl -u givenergy-dashboard -f
# Restart after a config change
sudo systemctl restart givenergy-dashboard
# Stop the dashboard
sudo systemctl stop givenergy-dashboard
# Disable auto-start on boot
sudo systemctl disable givenergy-dashboard
Download the latest project zip, unzip it, and from inside the folder run:
unzip givenergy-dashboard.zip
cd givenergy-dashboard
bash update.sh
The updater auto-detects your install, backs up your config and database to a timestamped folder, copies only the application files, refreshes packages and restarts the service. Re-running setup.sh is also safe, but update.sh is faster.
Want to check your solar generation while you're away from home? Cloudflare Tunnel creates a secure public URL for your dashboard without any port forwarding or static IP needed.
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bookworm main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install -y cloudflared
You need a free Cloudflare account and a domain name.
cloudflared tunnel login
cloudflared tunnel create my-dashboard
cloudflared tunnel route dns my-dashboard yourdomain.com
Create ~/.cloudflared/config.yml pointing http://localhost:7890 at your domain, then:
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
Your dashboard will be reachable at https://yourdomain.com from anywhere in the world.
Check the inverter IP in config.ini and that the Pi can reach it:
ping 192.168.1.100 # replace with your inverter IP
telnet 192.168.1.100 8899 # should connect if Modbus TCP is enabled
Check the logs for details:
sudo journalctl -u givenergy-dashboard -n 50 --no-pager
Edit /opt/givenergy-dashboard/config.ini, change web_port to another value (e.g. 7891), then restart the service.