Skip to content

Commit ccdefcd

Browse files
add docker-compose.yml for LDK Server testing
introduces docker-compose.yml with Bitcoin Core, CLN, and LND for Lightning testing. The default profile runs these services; the 'ldk-server' profile adds the LDK server; the 'rabbitmq' profile includes RabbitMQ for events.
1 parent 1a255b7 commit ccdefcd

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

docker-compose.yml

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
services:
2+
ldk-server:
3+
container_name: ldk-server
4+
build:
5+
context: .
6+
args:
7+
BUILD_FEATURES: ""
8+
command: [
9+
"--node-listening-address=0.0.0.0:3001",
10+
"--node-rest-service-address=0.0.0.0:3000",
11+
"--bitcoind-rpc-host=ldk-server-bitcoin",
12+
"--bitcoind-rpc-port=18443",
13+
"--bitcoind-rpc-user=user",
14+
"--bitcoind-rpc-password=pass",
15+
]
16+
ports:
17+
- "3000:3000"
18+
- "3001:3001"
19+
networks:
20+
- ldk-server
21+
depends_on:
22+
bitcoin:
23+
condition: service_healthy
24+
profiles: ["ldk-server"]
25+
26+
bitcoin:
27+
container_name: ldk-server-bitcoin
28+
image: blockstream/bitcoind:29.1@sha256:9fcffa83feed0fc382dfb2f26990ca07656d150ba49434096a5aeedac6695a01
29+
platform: linux/amd64
30+
command:
31+
[
32+
"bitcoind",
33+
"-printtoconsole",
34+
"-regtest=1",
35+
"-rpcallowip=0.0.0.0/0",
36+
"-rpcbind=0.0.0.0",
37+
"-rpcuser=user",
38+
"-rpcpassword=pass",
39+
"-fallbackfee=0.00001",
40+
"-zmqpubrawblock=tcp://0.0.0.0:28332",
41+
"-zmqpubrawtx=tcp://0.0.0.0:28333"
42+
]
43+
ports:
44+
- "18443:18443"
45+
- "18444:18444"
46+
networks:
47+
- ldk-server
48+
healthcheck:
49+
test: ["CMD", "bitcoin-cli", "-regtest", "-rpcuser=user", "-rpcpassword=pass", "getblockchaininfo"]
50+
interval: 5s
51+
timeout: 10s
52+
retries: 5
53+
# Example command: bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass getblockchaininfo
54+
55+
lnd:
56+
image: lightninglabs/lnd:v0.18.5-beta@sha256:2b560c9beb559c57ab2f2da1dfed80d286cf11a6dc6e4354cab84aafba79b6f6
57+
container_name: ldk-server-lnd
58+
ports:
59+
- "9735:9735" # P2P
60+
- "10009:10009" # RPC
61+
command:
62+
- "--noseedbackup"
63+
- "--trickledelay=5000"
64+
- "--alias=ldk-node-lnd-test"
65+
- "--externalip=lnd:9735"
66+
- "--bitcoin.active"
67+
- "--bitcoin.regtest"
68+
- "--bitcoin.node=bitcoind"
69+
- "--bitcoind.rpchost=ldk-server-bitcoin:18443"
70+
- "--bitcoind.rpcuser=user"
71+
- "--bitcoind.rpcpass=pass"
72+
- "--bitcoind.zmqpubrawblock=tcp://ldk-server-bitcoin:28332"
73+
- "--bitcoind.zmqpubrawtx=tcp://ldk-server-bitcoin:28333"
74+
- "--accept-keysend"
75+
- "--accept-amp"
76+
- "--rpclisten=0.0.0.0:10009"
77+
- "--tlsextradomain=lnd"
78+
- "--tlsextraip=0.0.0.0"
79+
- "--listen=0.0.0.0:9735"
80+
depends_on:
81+
bitcoin:
82+
condition: service_healthy
83+
networks:
84+
- ldk-server
85+
# Example command: lncli --tlscertpath=/root/.lnd/tls.cert --macaroonpath=/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon getinfo
86+
87+
cln:
88+
image: blockstream/lightningd:v25.05@sha256:4f61a5e77deb27c14ed223dd789bb3bfafe00c0c13f4f1e973c0a43b8ad5de90
89+
container_name: ldk-server-cln
90+
platform: linux/amd64
91+
command:
92+
[
93+
"--bitcoin-rpcconnect=ldk-server-bitcoin",
94+
"--bitcoin-rpcport=18443",
95+
"--bitcoin-rpcuser=user",
96+
"--bitcoin-rpcpassword=pass",
97+
"--network=regtest",
98+
"--log-level=debug",
99+
"--alias=ldk-server-cln",
100+
]
101+
ports:
102+
- "19846:19846" # RPC
103+
- "9736:9736" # P2P
104+
depends_on:
105+
bitcoin:
106+
condition: service_healthy
107+
networks:
108+
- ldk-server
109+
# Example command: lightning-cli --network=regtest getinfo
110+
111+
rabbitmq:
112+
image: rabbitmq:3-management
113+
container_name: ldk-server-rabbitmq
114+
ports:
115+
- "5672:5672"
116+
- "15672:15672"
117+
networks:
118+
- ldk-server
119+
profiles: ["rabbitmq"]
120+
121+
networks:
122+
ldk-server:
123+
driver: bridge

0 commit comments

Comments
 (0)