Skip to main content
Docker Compose runs captaind alongside PostgreSQL, Bitcoin Core, and optionally Core Lightning with Boltz’s hold plugin on regtest. All dependencies are included and configured automatically.
This path runs on regtest, a local-only test network. If you’d prefer to run on signet with each component installed individually, see the manual setup guide instead.
The Compose file handles boot-time dependencies and initializations using depends_on and health checks.

Start the server

1

Clone the repository

git clone https://gitlab.com/ark-bitcoin/bark
cd bark
2

Start all services

docker compose -f contrib/docker/docker-compose.yml up
3

Verify services are running

Once everything is up, you can run commands against the containers:
# bark
docker compose -f contrib/docker/docker-compose.yml run --rm bark bark ark-info

# bitcoin-cli
docker compose -f contrib/docker/docker-compose.yml run --rm bitcoind \
  bitcoin-cli -regtest -rpcuser=second -rpcpassword=ark \
  -rpcconnect=bitcoind getblockchaininfo

# captaind
docker compose -f contrib/docker/docker-compose.yml run --rm captaind \
  captaind --config /root/captaind/captaind.toml get-mnemonic

# Core Lightning
docker compose -f contrib/docker/docker-compose.yml exec cln \
  lightning-cli --regtest getinfo
  • captaind — persistent data for captaind
  • postgres — PostgreSQL database files
  • bark — data for bark
  • bitcoind — Bitcoin Core blockchain and wallet data
  • cln — Core Lightning node data

Fund the server

Generate some regtest blocks and send funds to the server:
# Get the server's funding address
export CAPTAIND_ADDRESS=$(docker compose -f contrib/docker/docker-compose.yml run --rm captaind \
  captaind --config /root/captaind/captaind.toml rpc wallet | jq -r '.rounds.address')

# Generate blocks
docker compose -f contrib/docker/docker-compose.yml run --rm bitcoind \
  bitcoin-cli -regtest -rpcuser=second -rpcpassword=ark \
  -rpcconnect=bitcoind -generate 106

# Send funds to the server
docker compose -f contrib/docker/docker-compose.yml run --rm bitcoind \
  bitcoin-cli -regtest -rpcuser=second -rpcpassword=ark \
  -rpcconnect=bitcoind sendtoaddress $CAPTAIND_ADDRESS 1