Requirements
- Docker version 20.10.0 or higher (including Docker Compose v2 support)
- Linux, macOS, or Windows host with Docker support
This guide explains two alternative ways to install and run the Provider Suite:
- As a Docker Compose stack
- As a single privileged container (Docker-in-Docker)
Recommended for:
- Individual providers who want an easier, modular way to manage and monitor each service (recommended for home setups or single-machine deployments).
- Users who want modularity and want to manage each service independently.
- Environments where running multiple containers is possible.
First, download the latest docker-compose.yml directly from the official repository:
curl -o docker-compose.yml https://raw.githubusercontent.com/OpenGPU-Network/provider-suite/refs/heads/main/docker-compose.ymlYou must provide at least the following variables:
PROVIDER_PRIVATE_KEYMASTER_ADDRESS
There are two ways to set these variables:
-
A. Use a
.envfile: Place a file named.envin the same directory as yourdocker-compose.yml. Example:PROVIDER_PRIVATE_KEY=your_provider_private_key MASTER_ADDRESS=your_master_address
-
B. Export environment variables manually:
export PROVIDER_PRIVATE_KEY=your_provider_private_key export MASTER_ADDRESS=your_master_address
docker compose up -dAll services will start. View logs with:
docker compose logs -f
To gracefully stop all running containers in the stack (without removing them):
docker compose stopTo restart stopped services:
docker compose startTo fully restart (stop, remove, and recreate) all services:
docker compose down -v
# then
docker compose up -dTo remove all containers, networks, and volumes:
docker compose down -vRecommended for:
- Cloud environments or platforms that require running everything inside a single container.
- Scenarios where Docker Compose is not supported.
In this setup, the stack runs inside a privileged container using the docker-dind base image.
Select the image suitable for your hardware:
docker run -d --name opengpu_network__provider_suite__cpu \
--privileged \
-e PROVIDER_PRIVATE_KEY='your_provider_private_key' \
-e MASTER_ADDRESS='your_master_address' \
opengpunetwork/provider-suite:cpudocker run -d --name opengpu_network__provider_suite__cuda \
--privileged --gpus all \
-e PROVIDER_PRIVATE_KEY='your_provider_private_key' \
-e MASTER_ADDRESS='your_master_address' \
opengpunetwork/provider-suite:cudadocker run -d --name opengpu_network__provider_suite__rocm \
--privileged --device /dev/kfd --device /dev/dri \
-e PROVIDER_PRIVATE_KEY='your_provider_private_key' \
-e MASTER_ADDRESS='your_master_address' \
opengpunetwork/provider-suite:rocmNote: The
--privilegedflag is required for inner Docker engine access. For GPU support, ensure your host drivers and Docker runtime are properly configured.
Both deployment methods support graceful shutdown:
-
For Compose:
-
Stop all services (keep containers and volumes):
docker compose stop
-
Remove all (containers, networks, volumes):
docker compose down
-
-
For Single Container:
docker stop <container_name> docker rm <container_name>
- Ensure your Docker version supports required features (Compose v2,
--gpus all, etc.). - If you encounter permission issues, check your Docker daemon and user permissions.
Never share your PROVIDER_PRIVATE_KEY or other secrets publicly.
Use secure secret management solutions in production.