A guide for Orchestrators looking to improve operational efficiency, specifically those running a multi-node setup. https://forum.livepeer.org/t/guide-livepeer-with-docker-and-portainer-for-operating-at-scale/1850
Each Directory included in this repo.
All the files needed to prepare your Livepeer, Monitoring, and Portainer docker volumes. (lpdata, prometheus-config, and traefik volumes)
Linux scripts to aide running the necessary server installation and configuration setup.
The docker compose file to run the Portainer UI and Edge Server
The Portainer Template for the Livepeer Combined O/T use case
The Portainer Template for the Livepeer Standalone O use case
The Portainer Template for the Livepeer Transcoder use case
The Portainer Template for the Grafana,Prometheus Monitoring use case
Make sure you edit each file and replace the following placeholder values:
eth_acct.json - YOUR_ETH_ACCT_JSON
eth_secret.json - YOUR_ETH_ACCT_PASSWORD
orch_secret.txt - YOUR_ORCH_SECRET
lpcombined.conf - YOUR_ETH_ACCT_ADDRESS, YOUR_ORCH_IP
lporchestrator.conf - YOUR_ETH_ACCT_ADDRESS, YOUR_ORCH_IP
lptranscoder.conf - YOUR_ORCH_IP
traefik.yml - email@domain.com
# Optional - linux-scripts
run_edge_agent.sh - YOUR_EDGE_KEY, YOUR_EDGE_ID
In the walkthrough video, Mike Zupper is unable to browse volumes on the local Portainer server. Generally, when setting up Livepeer for production, you'll want to install Portainer on a server separate from any Livepeer nodes, that way you won't need to browse volumes on the Portainer server. That being said, the way around this limitation is to simply install a Portainer agent on the Portainer server. To do this, copy and paste this code at the bottom of the docker-compose.yml
file we created on the Portainer server.
Note: Since this agent will also be proxied by Traefik, you must create another DNS record and replace agent.example.com
with it.
agent:
image: portainer/agent
container_name: "agent"
restart: unless-stopped
depends_on:
- traefik
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer_agent.entrypoints=websecure"
- "traefik.http.routers.portainer_agent.rule=Host(`agent.example.com`)"
- "traefik.http.routers.portainer_agent.service=agent"
- "traefik.http.services.portainer_agent.loadbalancer.server.port=9001"
- "traefik.http.routers.portainer_agent.tls.certresolver=production"
Bring the docker-compose.yml stack up and log into Portainer like you normally would.
You'll see a new environment called agent
:
This new environment is exactly the same as the local
environment but gives us some more options to play with.
Click into the environment.
Click Host
.
Click Setup
.
Turn on Enable host management features
and Enable volume management for non-administrators
.
You can now navigate to volumes inside the agent environment and browse.