Skip to content

Instantly share code, notes, and snippets.

@king-11
Last active December 28, 2023 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save king-11/8438b6028edc8fef9cf3735f99eb505c to your computer and use it in GitHub Desktop.
Save king-11/8438b6028edc8fef9cf3735f99eb505c to your computer and use it in GitHub Desktop.
Docker blog for vlsd service setup
title description
docker run vlsd
setup your vlsd service with docker in few simple steps on any system capable of running containerized solution

Great, so you have decided to take a step towards added security by integrating vls into your lightning node system. A fully functional vls system consists of atleast the below mentioned services:

  • bitcoind
  • lightnind
  • txood
  • lightning-storage-server

How to vls

Before moving vls into production if you want to test the system out on testnet we have you covered with our HOWTO covering details about setting up all the services on a single node. A general schema of what steps you have to do for each service is as follows:

  • download the git repo/tar ball
  • download and install the necessary dependencies
  • build the service binaries and copy them to right place
  • setup and start daemon service So just repeat this process for all the (5) services and we have a vls system up and running.

Rolling out updates

vls is currently in beta stage everyday we are rolling out new changes to keep up with them you need to rebuild the system everyday by referring the HOWTO UPDATE. So you always need the build dependencies along with source code in your system. Is it starting to look difficult to manage already?

joke on least possible responsibility

Enter Docker

They say lazy people find ways to make the work require least amount of efforts. So we have you covered now, running all the services on your system is just a few commands away now:

# clone the docker image and compose file repo
git clone https://gitlab.com/lightning-signer/vls-container.git
# create volume for each of the service
docker volume create bitcoin_data
docker volume create lightning_data
docker volume create txoo_data
docker volume create vls_data
# run the compose system
docker compose --profile vls up --build

Note: we have taken the assumption you already have either docker v1/v2 service present in your system. Even if not there is no need to worry, depending on the system you are using refer to this section of README to install docker as a one time step.

Bitcoin Chains

We currently support running vls with regtest and testnet only in our docker images. By default the above commands with run an isolated testnet network of services. If you want to expose the network or change to regtest we can use override:

export DOCKER_COMPOSE_OVERRIDE=docker-compose.regtest.yml
export COMPOSE_PROJECT_NAME=regtest
docker compose --profile vls -f docker-compose.yml -f $DOCKER_COMPOSE_OVERRIDE up --build

You can use testnet override as well to expose the network.

Docker v1 Support

We have gone an extra mile here by providing support for both docker v1 and v2. Even though docker has deprecated docker v1 we understand that the currently available docker packages in all major distros are still v1.

So, irrespective of docker version anyone can run vls, we intend to keep our docker images and compose files backwards compatible until the time those distro packages aren't updated.

VLS Only

Maybe, you already have all the other services except vls running on your system or you want to run vls separately on a device different from where all other services are. In that case you can take advantage of standalone vls system.

You can use the compose file for standalone vls

export BITCOIND_RPC_URL=<RPC_ENDPOINT_BITCOIND>
export CLN_REMOTE_HSMD_URL=<REMOTE_HSMD_ENDPOINT>
cd vlsd
docker compose up

If you wish to have a more fine grained control on vls container instead of using compose setup

cd vlsd
docker build -t vlsd .
docker run \
  -d \
  --rm \
  --name vlsd \
  --network host \
  -e VLS_NETWORK=testnet \
  -e BITCOIND_RPC_URL=$BITCOIND_RPC_URL \
  --mount 'type=volume,src=vls_data,dst=/home/vls/.lightning-signer' \
  vlsd \
  --connect=$CLN_REMOTE_HSMD_URL

Note: If you don't have the services apart from vls already running you can run them by just getting rid of profile flag from compose commands.

That was all for vls on docker, but do make sure to checkout VLS Container Repo for more useful commands on running docker system and learning about our what's next.

thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment