Skip to content

Hosting your own LBRY Web Instance ​

Run your own instance of https://lbry.tv using Docker images.

Run the SDK ​

The LBRY SDK provides RPC and streaming endpoints to interact with the LBRY network. Web users will connect to it directly, so it must be web-accessible. You may have to open ports on your firewall.

shell
docker run -d -p 5279:5279 -p 5280:5280 vshyba/websdk

This image will not save files to disk. It has the save_blobs and save_files config options set to false. If you want to save files, see Building your own SDK image below.

Run the web app ​

Clone and install the app as described in the lbry-desktop repo README. If you want to customize it further, follow the extra steps in Customize the web app section. Otherwise:

shell
git clone https://github.com/lbryio/lbry-desktop.git
yarn
cp .env.defaults .env

Configure .env with the following settings. They must match the SDK ports in the previous section.

dotenv
WEB_SERVER_PORT=8080
SDK_API_PATH=http://localhost:5279
LBRY_WEB_API=http://localhost:5279
LBRY_WEB_STREAMING_API=http://localhost:5280
LBRY_API_URL=http://disabled-api/
LBRY_WEB_BUFFER_API=https://disabled

Compile and run

shell
NODE_ENV=production yarn compile:web
nodejs web/index.js

Building your own SDK image ​

If you want to customize the SDK settings, you can

Clone the SDK repo:

shell
git clone https://github.com/lbryio/lbry-sdk.git

Create a docker/webconf.yaml file and modify as you need. This is a good start:

shell
allowed_origin: "*"
max_key_fee: "0.0 USD"
save_files: false
save_blobs: false
streaming_server: "0.0.0.0:5280"
api: "0.0.0.0:5279"
data_dir: /tmp
download_dir: /tmp
wallet_dir: /tmp

Note that it is required to have streaming_server and api set to user-accessible IPs. If you want this to be accessible on the open web, that means setting them to 0.0.0.0.

To build the image, run:

shell
docker build -f docker/Dockerfile.web -t <your dockerhub username>/<project name, like 'websdk'> .
docker push <dockerhub username/project name>

With love for community