.. _buildbox-home-installation:

Installation
============

Installing BuildBox requires the user to follow the `buildbox installation guide <https://gitlab.com/BuildGrid/buildbox/buildbox/-/blob/master/README.rst>`_ (detailed below).

.. _builboxcommon-dependencies:

Dependencies
----------------------
buildbox relies on:

* gRPC
* Protobuf
* CMake
* GoogleTest
* abseil
* pkg-config
* OpenSSL

.. _buildbox-home-gnu-linux:

GNU/Linux
---------

**Debian/Ubuntu**

Install major dependencies along with some other packages through `apt`::

    [sudo] apt-get install cmake gcc g++ googletest libgmock-dev libabsl-dev libgrpc++-dev libprotobuf-dev protobuf-compiler-grpc pkg-config libssl-dev uuid-dev

Install the `googletest`, and `googlemock` binaries ::

    cd /usr/src/googletest && mkdir build && cd build
    cmake .. && [sudo] make install


.. _buildbox-home-compiling:

Compiling
--------------
Once you've installed the dependencies, you can compile `buildbox` using the following commands in the buildbox directory::

    mkdir build
    cd build
    cmake .. && [sudo] make [install]


Docker images
-------------
Docker images are published on the GitLab registry. For example: ``registry.gitlab.com/buildgrid/buildbox/buildbox:latest``.

In addition, a nightly image containing all the buildbox components can be obtained from ``registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildbox:nightly``.
