📖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 Sproutcast

Step 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 (requires planted_date to be set)

Step 3 — Start the stack

docker compose -f docker-compose.yml up -d

This 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.