ðGuides / Getting Started
Installing Sproutcast on a Raspberry Pi
Set up a headless always-on monitoring node using Docker Compose.
8 min readRaspberry Pi, Docker, self-hosted
Why run on a Pi?
A Raspberry Pi 4 (2 GB RAM is enough) running Docker lets you monitor plants continuously â no need to manually trigger captures. Pair it with a USB camera or the Pi Camera Module v3, point it at your plants, and Sproutcast runs the vision pipeline on a schedule.
What you need
- Raspberry Pi 4 (2 GB+) running Raspberry Pi OS Lite 64-bit (Bookworm)
- Docker and Docker Compose installed (
curl -fsSL https://get.docker.com | sh) - A USB webcam or Pi Camera Module v3
- A static local IP address for the Pi (set in your router's DHCP settings)
Step 1 â Clone the repository
git clone https://github.com/TahriT/Sproutcast.git
cd SproutcastStep 2 â Configure the edge device
Edit data/pipeline_config.json to set your capture interval and which pipelines to run:
{
"capture_interval_sec": 900,
"device_id": "pi-shelf-01",
"pipelines": ["P3b.0", "P4.0", "P6.0"]
}Pipeline key:
P3b.0â Plant segmentation (isolates foliage from background)P4.0â Chlorophyll index (leaf greenness)P6.0â Growth rate (requiresplanted_dateto be set)
Step 3 â Start the stack
docker compose -f docker-compose.yml up -dThis starts:
- The C++ edge pipeline binary
- The NATS message broker
- The Go bridge (routes NATS messages to SpacetimeDB)
Step 4 â Connect your PWA
In the Sproutcast app, go to Settings â Server address and enter:
ws://192.168.1.XXX:3000(Replace with your Pi's local IP.) The app subscribes via WebSocket and your captures will appear in real time.
Offline note: If the Pi loses internet the edge pipeline still runs and queues results locally. They sync when the connection is restored.