2.6 KiB
Counterweight V2
This is the repo where I store everything necessary to spin up my Bitcoin-related node.
It currently includes:
- Bitcoin core
- electrs
- mempool block explorer
- lnbits
How to deploy
Requirements
These instructions assume you are on a debian/ubuntu machine with docker, docker compose and git installed.
Cloning
First, clone this repo where you would like to run your node.
Building electrs
Since there is no good electrs docker image out there, we roll our own one
for this project. The file is electrs-docker/Dockerfile. To build the image,
run the following command:
cd electrs-docker
docker build -t my-electrs:latest -f Dockerfile .
Environment and configuration files
Now, you need to build a .env file. You can start by making a copy of
.env-example and filling it.
Afterwards, create the data folder in the root of the cloned repo. Inside,
create the folders bitcoin, electrs, mempool and lnbits.
Inside data/bitcoin, you will need to place a bitcoin.conf file. You can
use the example in config_templates/bitcoin.conf. Ensure that your inputs
here are consistent with the ones in the .env file.
Inside data/electrs/config, you will need to place a config.toml file. You
can use the example in config_templates/config.toml. For this one, you should
not make any changes if you are following these instructions.
Inside data/lnbits, you will need to place a .env file. Pay attention: this
file is specific for LNbits and is unrelated to the other .env file that sits
on the root of this repo. The best place to get an example
is the official LNbits repository.
Running and Smoke testing
To run, execute a simple docker compose up -d.
Once you get everything running, here is how you can check on the health of the different services:
- All: check if the containers are running.
- Bitcoin: check the logs. You should see Bitcoin updating its tip with as new blocks are found.
- Electrs: connect from Sparrow or another wallet.
- Mempool: visit the page.
- LNbits: visit the page, perhaps make a small transaction if you want to be dead sure everything is up and running.
Upgrading versions of the different services
- Bitcoin: upgrade in docker-compose.yaml.
- electrs: specify tag in the
git checkoutcommand in the custom electrs dockerfile, build again. - mempool: upgrade web, api and db in docker-compose.yaml.
- LNbits: upgrade in docker-compose.yaml.
How to backup data
TODO: explain how to back all the data up with a rsync.