Simple, self-hosted and self-managed containerized Bitcoin services definition.
- tor proxy
- bitcoin node
- joinmarket
Make sure both docker and docker compose commands are available.
Clone project to local file system with git.
Start all services with docker compose up -d which will pull images from DockerHub; if you rather build images from dockerfiles, run docker compose build beforehand.
Bitcoin service will create a joinmarket wallet upon startup, used by joinmarket to store addresses as watch-only in this wallet.
Joinmarket wallet on the other hand has to be created interactively with:
docker compose exec joinmarket run wallet-tool.py generateYield generator can then be started with:
docker compose exec joinmarket run yg-privacyenhanced.pyLND deamon will be started automatically as soon as bitcoin service is healthy. Its wallet must either be created or unlocked as follows to further interact with service. See LND wallet documentation for more information.
Create a new wallet with:
docker compose exec lnd run lncli createUnlock wallet with:
docker compose exec lnd run lncli unlocklnd service ships a modified version of lndconnect which will create a tor hidden service automatically with default configuration. An admnin connection QR code will be saved under lnd data directory.
docker compose run -d bitcoin -reindexBitcoin and JoinMarket data are persisted to local file system and can be configured with the following environment variables and which may be set in a .env file. These data folders must exist before starting services, make sure to create any unexisting one.
BITCOIN_BLOCKS_MOUNTPOINT, defaults to./.data/bitcoin/.blocksBITCOIN_DATA_MOUNTPOINT, defaults to./.data/bitcoinJOINMARKET_DATA_MOUNTPOINT, defaults to./.data/joinmarketLND_DATA_MOUNTPOINT, defaults to./.data/lnd
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.