Skip to main content

Installation

Prerequisites

Below listed components are required to run the OPI bridge for MangoBoost:

  • mango-drivers-spdk
  • grpci_cli or other gRPC client
  • docker (for running the OPI bridge in a container)

For non-Docker usage, you need the components listed below installed on your system:

  • go (version 1.22 or later)
  • redis
  • jaeger

As mango-drivers-spdk uses different file paths for Unix domain sockets depending on the product currently being used, the OPI bridge should be run with the specific path or a symbolic link to the path of the socket file.

Using Docker Container

You can run the OPI bridge in a Docker container using the provided Docker Compose file. You can modify the docker-compose.yml file to suit your needs, such as defining custom port numbers or socket file path.

~$ docker compose up -d opi-mangoboost-server redis jaeger

You can check the logs of the OPI bridge server using:

~$ docker compose logs opi-mangoboost-server
opi-mangoboost-server-1 | 2025/06/25 06:14:09 TLS files are not specified. Use insecure connection.
opi-mangoboost-server-1 | 2025/06/25 06:14:09 Connection to SPDK will be via: unix detected from /var/tmp/spdk.sock
opi-mangoboost-server-1 | 2025/06/25 06:14:09 gRPC server listening at 0.0.0.0:50051
opi-mangoboost-server-1 | 2025/06/25 06:14:09 HTTP Server listening at 8082

Building from Source

You can build the OPI bridge from source if you prefer not to use Docker. This requires Go SDK and other dependencies to be installed on your system.

~$ git clone https://github.com/opiproject/opi-mangoboost-bridge.git
~$ cd opi-mangoboost-bridge
~$ make
~$ ./opi-mangoboost-bridge

Manually Build grpc_cli

You can build the gRPC client to test the OPI bridge.

~$ git clone --recursive https://github.com/grpc/grpc.git
~$ cd grpc
~$ mkdir -p cmake/build
~$ cd cmake/build
~$ cmake -DgRPC_BUILD_TESTS=ON -DCMAKE_CXX_STANDARD=17 ../..
~$ make grpc_cli -j4
~$ ./grpc_cli --help

Use the grpc_cli binary to interact with the OPI bridge server. Further details can be found in the OPI User Guide documentation.