> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/self-hosted/inference-server/install/raspberry-pi.md).

# Install on Raspberry Pi

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](https://www.raspberrypi.com/software/operating-systems/). 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](https://docs.docker.com/engine/install/debian/), then use the Inference CLI to select, configure, and start the correct Inference Docker container automatically:

```bash
pip install inference-cli
inference server start
```

## Hardware 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](/deployment/self-hosted/inference-server/install/jetson.md).

## Manually starting the container

If you want more control over the container settings, start it yourself:

```bash
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:latest
```

## Docker Compose

If you use Docker Compose for your application, the equivalent YAML is:

```yaml
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_SERVICE
```

{% hint style="info" %}
Roboflow Enterprise plans add [a Helm chart](https://github.com/roboflow/inference/tree/main/inference/enterprise/helm-chart) for Kubernetes deployments, networking solutions for OT networks, and customized support and installation packages. [Contact the sales team](https://roboflow.com/sales) to learn more.
{% endhint %}

## Next steps

* [Run a model](/deployment/self-hosted/self-hosted.md#run-a-model) against your new server.
* [Docker configuration options](/deployment/self-hosted/inference-server/configuration/docker-configuration.md) for ports, caching, and model limits.
* [Securing a self-hosted server](/deployment/self-hosted/inference-server/configuration/security.md) before you expose it beyond localhost.
