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:
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/
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
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
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