Inference works on the Raspberry Pi 4 Model B and Raspberry Pi 5, as long as you use the 64-bit version of the operating system. If your SD card is big enough, we recommend the 64-bit "Raspberry Pi OS with desktop and recommended software" version.
Once you have installed the 64-bit OS, install Docker, then use the Inference CLI to select, configure, and start the correct Inference Docker container automatically:
pip install inference-cli
inference server startHardware acceleration
Inference does not yet support hardware acceleration on the Raspberry Pi. Expect about 1 FPS on a Pi 4 and 4 FPS on a Pi 5 for a "Roboflow 3.0 Fast" object detection model (equivalent to a "nano" sized YOLO model).
Larger models like Segment Anything and VLMs like Florence-2 will struggle on the Pi's compute. If you need higher framerates or bigger models, consider an NVIDIA Jetson.
Manually starting the container
If you want more control over the container settings, start it yourself:
sudo docker run -d \
--name inference-server \
--read-only \
-p 9001:9001 \
--volume ~/.inference/cache:/tmp:rw \
--security-opt="no-new-privileges" \
--cap-drop="ALL" \
--cap-add="NET_BIND_SERVICE" \
roboflow/roboflow-inference-server-cpu:latestDocker Compose
If you use Docker Compose for your application, the equivalent YAML is:
version: "3.9"
services:
inference-server:
container_name: inference-server
image: roboflow/roboflow-inference-server-cpu:latest
read_only: true
ports:
- "9001:9001"
volumes:
- "${HOME}/.inference/cache:/tmp:rw"
security_opt:
- no-new-privileges
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICERoboflow Enterprise plans add a Helm chart for Kubernetes deployments, networking solutions for OT networks, and customized support and installation packages. Contact the sales team to learn more.
Next steps
- Run a model against your new server.
- Docker configuration options for ports, caching, and model limits.
- Securing a self-hosted server before you expose it beyond localhost.