Windows installer (x86)
You can run the Roboflow Inference Server on your Windows machine with the native desktop app. Download the latest Windows installer from the latest GitHub release: View the latest release and download installers on GitHub.
- Download the latest installer and run it to install Roboflow Inference.
- When the install finishes, it offers to launch the Inference Server.
- To stop the server, close the terminal window it opens.
- To start it again later, find Roboflow Inference in your Start Menu.
inference-models backend. When used with the inference-models backend, the Inference Server must run with elevated admin rights because of cache management with symlinks. The alternative is to enable Developer Mode.
The inference-models backend is opt-in via an environment flag: $env:USE_INFERENCE_MODELS = "True".
Using Docker
First, install Docker Desktop. Then use the CLI to start the container.
pip install inference-cli
inference server startTo access the GPU, make sure you have installed up-to-date NVIDIA drivers and the latest version of WSL 2, and that the WSL 2 backend is configured in Docker. Follow the setup instructions from Docker.
Then use the CLI to start the container:
pip install inference-cli
inference server startIf the pip install command fails, you may need to install Python first. Once you have Python 3.12, 3.11, or 3.10 on your machine, retry the command.
Manually starting the container
If you want more control over the container settings, start it yourself.
The core CPU Docker image includes support for OpenVINO acceleration on x64 CPUs via onnxruntime. Heavy models like SAM2 may run too slowly (dozens of seconds per image) to be practical; if you need them, use a CUDA-capable GPU.
The primary use cases for CPU inference are processing still images (for example NSFW classification of uploads or document verification) or infrequent sampling of frames from a video (for example occupancy tracking of a parking lot).
To get started with CPU inference, use the roboflow/roboflow-inference-server-cpu:latest container.
docker run -d ^
--name inference-server ^
--read-only ^
-p 9001:9001 ^
--volume "%USERPROFILE%\.inference\cache:/tmp:rw" ^
--security-opt="no-new-privileges" ^
--cap-drop="ALL" ^
--cap-add="NET_BIND_SERVICE" ^
roboflow/roboflow-inference-server-cpu:latestThe GPU container adds hardware acceleration on cards that support CUDA via NVIDIA-Docker. Make sure you have set up Docker to access the GPU, then add --gpus all to the docker run command:
docker run -d ^
--name inference-server ^
--gpus all ^
--read-only ^
-p 9001:9001 ^
--volume "%USERPROFILE%\.inference\cache:/tmp:rw" ^
--security-opt="no-new-privileges" ^
--cap-drop="ALL" ^
--cap-add="NET_BIND_SERVICE" ^
roboflow/roboflow-inference-server-gpu:latestWith the GPU container you can optionally enable TensorRT, NVIDIA's model optimization runtime. It greatly increases your models' speed at the expense of a heavy compilation and optimization step (sometimes 15+ minutes) the first time you load each model.
Enable TensorRT by adding TensorrtExecutionProvider to the ONNXRUNTIME_EXECUTION_PROVIDERS environment variable.
docker run -d ^
--name inference-server ^
--gpus all ^
--read-only ^
-p 9001:9001 ^
--volume "%USERPROFILE%\.inference\cache:/tmp:rw" ^
--security-opt="no-new-privileges" ^
--cap-drop="ALL" ^
--cap-add="NET_BIND_SERVICE" ^
-e ONNXRUNTIME_EXECUTION_PROVIDERS="[TensorrtExecutionProvider,CUDAExecutionProvider,OpenVINOExecutionProvider,CPUExecutionProvider]" ^
roboflow/roboflow-inference-server-gpu: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:
- "${USERPROFILE}/.inference/cache:/tmp:rw"
security_opt:
- no-new-privileges
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICEversion: "3.9"
services:
inference-server:
container_name: inference-server
image: roboflow/roboflow-inference-server-gpu:latest
read_only: true
ports:
- "9001:9001"
volumes:
- "${USERPROFILE}/.inference/cache:/tmp:rw"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
security_opt:
- no-new-privileges
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICEversion: "3.9"
services:
inference-server:
container_name: inference-server
image: roboflow/roboflow-inference-server-gpu:latest
read_only: true
ports:
- "9001:9001"
volumes:
- "${USERPROFILE}/.inference/cache:/tmp:rw"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
ONNXRUNTIME_EXECUTION_PROVIDERS: "[TensorrtExecutionProvider,CUDAExecutionProvider,OpenVINOExecutionProvider,CPUExecutionProvider]"
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.
- Install
inference-gpubare metal on Windows if you cannot use Docker. - Securing a self-hosted server before you expose it beyond localhost.