🐧 Raspberry Pi OS  ·  Ubuntu  ·  Debian

Linux / Raspberry Pi Installation

A single shell script installs everything and registers a systemd service that starts automatically on boot.

Recommended: A Raspberry Pi 3B+, 4 or 5 running Raspberry Pi OS Lite (64-bit, Bookworm) is the ideal platform — silent, fanless, and uses only 3–5 W of power. The dashboard runs permanently in the background without affecting anything else.

📥 givenergy-dashboard.zip

All files including installer  ·  Raspberry Pi OS, Ubuntu 22.04+, Debian Bookworm+

Download zip

Also available separately: setup.sh  ·  config.ini.example

1

Prepare your Raspberry Pi (skip if using an existing Linux machine)

Flash Raspberry Pi OS Lite (64-bit) using Raspberry Pi Imager. In the Imager's OS Customisation screen, set:

  • Hostname (e.g. givenergy)
  • Username and password
  • Your WiFi credentials (or leave blank for ethernet)
  • Enable SSH

Boot the Pi and connect via SSH:

ssh youruser@givenergy.local
2

Copy the project files to the machine

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
Note: the zip download link above will be active once the project is published.
3

Run the installer

From inside the project folder:

bash setup.sh

The script will:

  • Check and install Python 3 if needed
  • Copy files to /opt/givenergy-dashboard/
  • Create a Python virtual environment
  • Install all required packages
  • Generate PWA icons
  • Create and enable a systemd service that starts on boot

Total install time is typically 2–4 minutes depending on your internet connection.

4

Set your inverter IP

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
5

Open the 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
6

Change the admin password

Tap the lightning bolt icon in the top-left to open Settings. The default password is password — change it straight away.

7

Add to your phone (optional)

Open http://<pi-ip>:7890 in your phone's browser.

iPhone (Safari) — works over HTTP:

  • Tap Share → Add to Home Screen → opens full-screen with no browser chrome ✓

Android (Chrome) — requires HTTPS for full-screen:

  • Over plain HTTP, Chrome adds a shortcut that still opens inside the browser with the address bar visible.
  • For a true full-screen PWA on Android, set up Cloudflare Tunnel (see the section below) — it adds HTTPS automatically, and Chrome will then install it as a proper full-screen app.
Useful commands
# 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
Updating to a new version
Upgrades never touch your settings or history. Your config.ini and history.db are always preserved, and any new database columns are added automatically on first run.

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.

Remote access with Cloudflare Tunnel

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.

1

Install cloudflared

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
2

Authenticate and create a tunnel

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
3

Configure and run as a service

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.

Common issues
?

Dashboard shows "Connecting…"

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
?

Service fails to start

Check the logs for details:

sudo journalctl -u givenergy-dashboard -n 50 --no-pager
?

Port 7890 already in use

Edit /opt/givenergy-dashboard/config.ini, change web_port to another value (e.g. 7891), then restart the service.