FPP-resident build of ShowPilot. Runs on the same host as Falcon Player and provides voting, jukebox, and a now-playing display for visitors. Audio streaming is removed — this is the right pick for shows delivering audio externally (PulseMesh, FM transmitter, Icecast, etc.) where ShowPilot doesn't need to host audio bytes.
Migrating from Remote Falcon? ShowPilot's viewer page renderer is fully compatible with Remote Falcon templates. All the standard placeholders (
{PLAYLISTS},{NOW_PLAYING},{JUKEBOX_QUEUE},{NEXT_PLAYLIST},{QUEUE_DEPTH},{LOCATION_CODE}, etc.) and mode containers ({playlist-voting-dynamic-container},{jukebox-dynamic-container},{after-hours-message},{location-code-dynamic-container}) work identically. Paste your existing Remote Falcon viewer HTML into ShowPilot's editor and it just works — no template rewrite needed. If something doesn't render quite right out of the box (older RF templates sometimes lack a few of the toast hooks or the after-hours setup ShowPilot expects), drop your HTML into the RF Template Converter — it adds the missing pieces, flags layout traps, and gives you back a paste-ready ShowPilot template.
| ShowPilot | ShowPilot-Lite | |
|---|---|---|
| Where it runs | LXC / Docker / VM / bare metal | On FPP itself (same Pi/BBB as the player) |
| Audio streaming to viewers | ✅ HTTP audio + cache + sync | ❌ Removed — pair with PulseMesh / FM / Icecast |
| Voting / Jukebox | ✅ | ✅ |
| Now-playing display | ✅ (with optional player controls) | ✅ (display-only bar, auto-shows when playing) |
| Backup / restore | ✅ | ✅ |
| Plugin sync (sequences, status) | ✅ | ✅ |
| Cover art (Spotify) | ✅ | ✅ |
| Footprint on FPP's SD card | n/a (runs elsewhere) | Tiny — no audio cache, no audio bytes |
If you need HTTP audio for viewers (cars without FM, etc.), use the full ShowPilot on a separate host. If your audio reaches viewers another way, Lite gives you everything else without putting audio I/O on FPP's SD card.
ShowPilot-Lite installs as an FPP plugin. From FPP's web UI:
- Open Content Setup → Plugin Manager
- Either find ShowPilot-Lite in the list (once published to the FPP plugin registry), or scroll to the Manual Add section and paste:
https://raw.githubusercontent.com/ShowPilotFPP/ShowPilot-Lite/main/pluginInfo.json - Click Install. FPP will clone the repo and run the install script, which:
- Installs Node 18 from NodeSource if not already present
- Compiles native dependencies (
better-sqlite3) - Sets up a data directory at
/home/fpp/media/plugindata/ShowPilot-Lite/(backed up by FPP's own backup feature) - Drops a
systemdunit and starts the service on port 3100
- After install completes, click Restart FPPD when prompted, then look for the ShowPilot-Lite entry under FPP's Content Setup menu — it opens the admin UI in a new tab.
- First login:
admin/admin. You'll be prompted to set a password immediately.
If you want to run Lite outside FPP's plugin manager:
# 1. Install Node 18 if not present
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. Clone and install
git clone https://github.com/ShowPilotFPP/ShowPilot-Lite.git
cd ShowPilot-Lite
npm install --omit=dev
# 3. Copy config template, edit if needed
cp config.example.js config.js
# 4. Run
node server.jsShowPilot-Lite assumes audio reaches viewers via something other than itself. PulseMesh is the obvious pick — it handles RF audio distribution at a quality and scale this software can't. Configure PulseMesh per its own docs; ShowPilot-Lite handles the voting / jukebox / display side.
Edit config.js. Defaults are sensible for FPP-on-LAN deployments. Notable settings:
port— defaults to 3100dbPath— defaults to./data/showpilot-lite.dbjwtSecretandshowToken— leavenullto auto-generate; persisted todata/secrets.jsonafter first boottrustProxy—falseif you expose port 3100 directly,1if you put nginx/Caddy in front
MIT. See LICENSE.