Install on Raspberry Pi¶
Production installs use pre-built Linux ARM64 release tarballs from GitHub Releases.
Tier 0: one-line install¶
On 64-bit Raspberry Pi OS (Bookworm-aligned), matching arm64 or x64 assets:
curl -fsSL https://raw.githubusercontent.com/dukk/waddle-view/main/deploy/install-latest-release.sh | bash
Non-interactive upgrade (skip confirmation when replacing /opt/waddle-view/bundle):
curl -fsSL https://raw.githubusercontent.com/dukk/waddle-view/main/deploy/install-latest-release.sh | bash -s -- --yes
Install runtime packages when ldd reports missing libraries:
WADDLE_INSTALL_RUNTIME_PACKAGES=1 curl -fsSL https://raw.githubusercontent.com/dukk/waddle-view/main/deploy/install-latest-release.sh | bash
Pin the script URL to a release tag or commit SHA if you do not want main to move.
Tier 1: manual tarball¶
- Download
waddle-view-linux-arm64-<tag>.tar.gzfrom Releases (verify SHA256 when published). - On the Pi:
tar xzf waddle-view-linux-arm64-v1.0.0.tar.gz
cd waddle-view-linux-arm64-v1.0.0
sudo bash install.sh
- On first launch, the app creates
waddle_instance.idin app support (bootstrap for adoption). - Install system libraries if needed:
sudo apt update && sudo apt install -y --no-install-recommends \
at-spi2-core libmpv2 mpv libgtk-3-0 libsecret-1-0
Or re-run install.sh with WADDLE_INSTALL_RUNTIME_PACKAGES=1.
- Configure autostart (
~/.config/autostart/*.desktop) or install samplewaddle-view.service(editUser,DISPLAY, paths). - Disable screen blanking (
xset s off,xset -dpms, or Wayland equivalents).
Tier 2: flashable SD image¶
For a ready-to-flash .img, see deploy/pi-image — requires a pre-built ARM64 bundle. Follow Raspberry Pi trademark guidance if redistributing images.
Data locations¶
- SQLite (default) and
media/live under the Flutter app support directory for the user running the app (path_provider/ XDG on Linux). - Optional PostgreSQL: set
WADDLE_DISPLAY_DATABASE_URLin systemd; blobs still use the samemedia/directory. - Instance id (packaged):
/etc/waddle-view/instance.id
Environment variables¶
Set bind options, live preview, optional Postgres URL, and OAuth client ids via systemd Environment= — see Configuration reference. Configure integration API keys in the controller UI, not env. Release builds do not read .env files.