Install & Configure Docker

Key folder structure

Livepeer will require files to be placed on the host and within the docker container. Here is a list of the key folders used by the docker install.

Host Folders

By default, docker will store all volumes in the /var/lib/docker/volumes directory

This installation will create a volume called: gateway-lpData and it will be located at /var/lib/docker/volumes/gateway-lpData/_data

Container Folders

Within the docker container, the volume gateway-lpData will be mounted at /root/.lpData

Install Prerequisites

If docker is already installed, you can skip this step. The installation assumes you are running Docker 20.10.x. If an older version of docker is installed remove it with the following command:

As the root user (or sudo), run the following:

apt remove docker*

Install Docker

curl https://releases.rancher.com/install-docker/20.10.sh | sh

Create a Docker volume

docker volume create gateway-lpData

Create Docker Compose file from the root user’s home directory /root/

nano docker-compose.yml

Copy and paste the following and save the following

version: '3.9'

services:
   gateway:
    image: livepeer/go-livepeer:<RELEASE_VERSION>
    container_name: "gateway"
    hostname: "gateway"
    ports:
      - 1935:1935
      - 8935:8935
    volumes:
      - gateway-lpData:/root/.lpData
    command: '-ethUrl=https://arb1.arbitrum.io/rpc/
              -ethKeystorePath=/root/.lpData
              -network=arbitrum-one-mainnet
              -cliAddr=gateway:5935
              -broadcaster=true
              -monitor=true
              -v=99
              -blockPollingInterval=20
              -maxPricePerUnit=300
              -pixelsPerUnit=1
              -rtmpAddr=0.0.0.0:1935
              -httpAddr=0.0.0.0:8935
              '
volumes:
  gateway-lpData:
    external: true

Create Livepeer Gateway ETH account

In this step we need to start the Gateway in order to create an Ethereum account.

docker compose run -it gateway

When prompted for the ETH password, enter a strong password to secure your Ethereum account. This password is used to decrypt and access the ETH private key.

Make sure to never share or lose access to either the password or the keystore file.

Keep this password handy, we will use it in the following steps.

After you see the message that the Ethereum account has been unlocked, CTRL+C to exit the Livepeer docker instance.

Using the previously created ETH password, create the eth-secret file

nano -p /var/lib/docker/volumes/gateway-lpData/_data/eth-secret.txt

Modify Docker compose file to include eth-secret.txt

nano docker-compose.yml

Add the following line below the -ethKeystorePath and save

-ethPassword=/root/.lpData/eth-secret.txt

Here is the full modified version of the docker-compose.yml file

version: '3.9'

services:
  gateway:
    image: livepeer/go-livepeer:<RELEASE_VERSION>
    container_name: "gateway"
    hostname: "gateway"
    ports:
      - 1935:1935
      - 8935:8935
    volumes:
      - gateway-lpData:/root/.lpData
    command: '-ethUrl=<YOUR ARB APC>
              -ethKeystorePath=/root/.lpData
              -ethPassword=/root/.lpData/eth-secret.txt
              -network=arbitrum-one-mainnet
              -cliAddr=gateway:5935
              -broadcaster=true
              -monitor=true
              -v=99
              -blockPollingInterval=20
              -maxPricePerUnit=300
              -pixelsPerUnit=1
              -rtmpAddr=0.0.0.0:1935
              -httpAddr=0.0.0.0:8935
              '
volumes:
  gateway-lpData:
    external: true

Start Livepeer in the background

docker compose up -d

Launch the livepeer_cli

docker exec -it gateway /bin/bash
livepeer_cli -host gateway -http 5935

Jump to Configure Transcoding Options to finish configuring the Gateway