Installation
Now that your Raspberry Pi is set up, it’s time to install the software that powers your Smart Panel: the backend and the panel UI.
Connect to your Pi via SSH
If you’re setting up your Smart Panel without a monitor and keyboard, the easiest way to access your Raspberry Pi is over the network using SSH.
You can do this from another computer on the same network:
ssh pi@smart-panel.localDefault password: raspberry
This works because you set the hostname as smart-panel during the OS flashing step. If you used a different hostname,
replace it accordingly (e.g. pi@your-name.local).
If .local domains don’t work on your system (e.g. Windows without Bonjour), you can find the IP address of your Pi
from your router’s interface and connect like this:
ssh pi@192.168.x.xIf you’re using a monitor and keyboard directly connected to the Pi, you can skip this step and run all commands in the terminal.
Update Your System
Before installing the Smart Panel, it’s a good idea to make sure your Raspberry Pi is up to date:
sudo apt update & sudo apt upgrade -yThis updates all system packages to their latest versions, which helps ensure compatibility and security.
Install Git
Git is a version control tool used to download and manage the Smart Panel’s source code. We’ll use it to clone the project repository from GitHub.
To install Git on your Raspberry Pi:
sudo apt install git -yInstall Node.js
Node.js powers the backend and admin interface. Use the official NodeSource setup script to install the latest LTS version of Node.js:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejsThis installs both node and npm.
Install flutter-pi
The Smart Panel UI is written in Flutter and runs on your Raspberry Pi using flutter-pi , a lightweight runtime that doesn’t require X11 or Wayland.
Install Required Dependencies
sudo apt install cmake libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev \
libdrm-dev libgbm-dev ttf-mscorefonts-installer fontconfig libsystemd-dev \
libinput-dev libudev-dev libxkbcommon-dev -yUpdate the system fonts
sudo fc-cacheBuild and Install flutter-pi
First, create a directory where flutter-pi will live and make sure your user owns it:
sudo mkdir /opt/flutter-pi
sudo chown -R ${USER}: /opt/flutter-piNow clone the flutter-pi repository:
git clone https://github.com/ardera/flutter-pi.git /opt/flutter-piInstall build dependencies and compile flutter-pi (run as user pi):
cd /opt/flutter-pi
mkdir build && cd build
cmake ..
make -j`nproc`
sudo make installGive the pi permission to use 3D acceleration:
Potential security hazard. If you don’t want to do this, launch Smart Panel UI using sudo instead.
sudo usermod -a -G render piOnce installed, you’ll be able to run the Smart Panel UI directly from the console using the flutter-pi command.
Enable KMS/DRM
To ensure proper display rendering, your Raspberry Pi must use the KMS (Kernel Mode Setting) graphics driver. This is required for flutter-pi to access the display via DRM.
Open the boot config file:
sudo nano /boot/firmware/config.txtLook for this line and make sure it is enabled (not commented out):
dtoverlay=vc4-kms-v3dIf it’s not present, add it at the bottom of the file.
Reboot to apply changes:
sudo rebootIf you previously had dtoverlay=vc4-fkms-v3d (the fake KMS driver), it should be removed or commented out.
Install InfluxDB
The Smart Panel backend uses InfluxDB to store time-series data like temperature, humidity, or power usage.
To install InfluxDB v1.8:
wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | sudo tee /etc/apt/trusted.gpg.d/influxdata.ascecho "deb https://repos.influxdata.com/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/influxdata.listsudo apt install influxdb=1.8.10-1 -yThen enable and start the service:
sudo systemctl enable influxdbsudo systemctl start influxdbTo verify that InfluxDB is running:
influxd versionYou should see:
InfluxDB v1.8.10 (git: ...)Make sure you’re using InfluxDB v1.8. Installing InfluxDB 2.x will not work.
Allow Reboot & Power Off Commands
To allow the Smart Panel backend to reboot or shut down the Raspberry Pi, you need to give it permission to execute system commands without a password.
The backend uses the following commands internally:
sudo /sbin/rebootsudo /sbin/poweroff
By default, these require elevated privileges and will prompt for a password — which is not suitable for automated use.
Grant Password-less Access for the pi User
Edit the sudoers file using the safe visudo tool:
sudo visudoThen add this line at the bottom:
pi ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/poweroffThis gives the default pi user permission to execute reboot and poweroff without entering a password.
Only allow specific commands like reboot and poweroff. Never use NOPASSWD: ALL, as it poses a security risk.
Install the Smart Panel Application
To get the full Smart Panel software—including the backend, admin UI, and the display app—you’ll need to download and unpack the latest release.
Create the target directory and give your user ownership:
sudo mkdir -p /opt/smart-panel
sudo chown -R ${USER}:${USER} /opt/smart-panelCreate the storage directory and give your user ownership:
sudo mkdir -p /var/smart-panel
sudo chown -R ${USER}:${USER} /var/smart-panelMove into the project directory:
cd /opt/smart-panelDownload and Unpack the Latest Release:
curl --http1.1 -L -C - -o smart-panel.tar.gz https://github.com/FastyBird/smart-panel/releases/latest/download/smart-panel.tar.gz
tar -xzf smart-panel.tar.gz -C .
rm smart-panel.tar.gzThis archive contains everything you need: backend, admin UI, and the prebuilt display app.
Running this on a Raspberry Pi Zero 2W?
Because of the device’s limited network and CPU performance, the download may take several minutes or could be interrupted.
To avoid starting over, the -C - flag in the curl command tells it to resume the download if it gets interrupted.
If your connection drops, simply run the same command again and it will pick up where it left off.
Make sure you have at least 300 MB of free space on your SD card before starting the download and extraction process.
Optional: Verify Download Integrity
To ensure your downloaded archive is not corrupted, you can optionally verify the SHA-256 checksum:
Download the checksum file:
curl -LO https://github.com/FastyBird/smart-panel/releases/latest/download/smart-panel.sha256Verify the archive:
sha256sum -c smart-panel.sha256If the archive is valid, the output will show:
smart-panel.tar.gz: OK
Run the database migrations to initialize the database:
npm run migration:runThis creates all required tables in the application database so your Smart Panel can start working right away.
Run Backend, Admin & Display as Services
You’ll want your Smart Panel to automatically launch on boot. Here’s how to set up systemd services for both backend and display:
Backend & Admin Service
Create a service file:
sudo nano /etc/systemd/system/smart-panel-backend.servicePaste this:
[Unit]
Description=Smart Panel Backend & Admin Service
After=network.target
[Service]
User=pi
WorkingDirectory=/opt/smart-panel
ExecStart=npm start
Restart=always
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.targetEnable and start the service:
sudo systemctl enable smart-panel-backend
sudo systemctl start smart-panel-backendThe Admin Interface is already bundled and served through the backend — you don’t need to run it separately.
Display Service
Create the display service file:
sudo nano /etc/systemd/system/smart-panel-display.servicePaste this:
[Unit]
Description=Smart Panel Display App
After=network.target
Requires=smart-panel-backend.service
[Service]
User=pi
WorkingDirectory=/opt/smart-panel/display
ExecStart=/usr/local/bin/flutter-pi --release .
Restart=always
[Install]
WantedBy=multi-user.targetWant to rotate the display? Add the -r (physical rotation) flag to the ExecStart line. For example:
ExecStart=/usr/local/bin/flutter-pi -r 270 --release .Valid rotation values: 0, 90, 180, 270
Enable and start the service:
sudo systemctl enable smart-panel-display
sudo systemctl start smart-panel-displayNow, all three apps — backend, admin, and display — will automatically launch on boot and restart if they crash.
What’s Next?
Your Smart Panel is now fully running — including the backend, admin interface, and the display UI.
Now it’s time to pair your devices, customize your dashboard, and start building the smart display you’ve always wanted.
👉 Head over to the next section: Onboarding — where we’ll guide you through device pairing and initial setup.