Skip to content

Commit 5d4ec81

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 02c28a1 commit 5d4ec81

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

docker-compose.yml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
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+
- "3002:3002"
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+
54+
lnd:
55+
image: lightninglabs/lnd:v0.18.5-beta@sha256:2b560c9beb559c57ab2f2da1dfed80d286cf11a6dc6e4354cab84aafba79b6f6
56+
container_name: ldk-server-lnd
57+
ports:
58+
- "9735:9735" # P2P
59+
- "10009:10009" # RPC
60+
command:
61+
- "--noseedbackup"
62+
- "--trickledelay=5000"
63+
- "--alias=ldk-node-lnd-test"
64+
- "--externalip=lnd:9735"
65+
- "--bitcoin.active"
66+
- "--bitcoin.regtest"
67+
- "--bitcoin.node=bitcoind"
68+
- "--bitcoind.rpchost=ldk-server-bitcoin:18443"
69+
- "--bitcoind.rpcuser=user"
70+
- "--bitcoind.rpcpass=pass"
71+
- "--bitcoind.zmqpubrawblock=tcp://ldk-server-bitcoin:28332"
72+
- "--bitcoind.zmqpubrawtx=tcp://ldk-server-bitcoin:28333"
73+
- "--accept-keysend"
74+
- "--accept-amp"
75+
- "--rpclisten=0.0.0.0:10009"
76+
- "--tlsextradomain=lnd"
77+
- "--tlsextraip=0.0.0.0"
78+
- "--listen=0.0.0.0:9735"
79+
depends_on:
80+
bitcoin:
81+
condition: service_healthy
82+
networks:
83+
- ldk-server
84+
# Example command: lncli --tlscertpath=/root/.lnd/tls.cert --macaroonpath=/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon getinfo
85+
86+
cln:
87+
image: blockstream/lightningd:v25.05@sha256:4f61a5e77deb27c14ed223dd789bb3bfafe00c0c13f4f1e973c0a43b8ad5de90
88+
container_name: ldk-server-cln
89+
platform: linux/amd64
90+
command:
91+
[
92+
"--bitcoin-rpcconnect=ldk-server-bitcoin",
93+
"--bitcoin-rpcport=18443",
94+
"--bitcoin-rpcuser=user",
95+
"--bitcoin-rpcpassword=pass",
96+
"--network=regtest",
97+
"--log-level=debug",
98+
"--alias=ldk-server-cln",
99+
]
100+
ports:
101+
- "19846:19846" # RPC
102+
- "9736:9736" # P2P
103+
depends_on:
104+
bitcoin:
105+
condition: service_healthy
106+
networks:
107+
- ldk-server
108+
# Example command: lightning-cli --network=regtest getinfo
109+
110+
rabbitmq:
111+
image: rabbitmq:3-management
112+
container_name: ldk-server-rabbitmq
113+
ports:
114+
- "5672:5672"
115+
- "15672:15672"
116+
networks:
117+
- ldk-server
118+
profiles: ["rabbitmq"]
119+
120+
networks:
121+
ldk-server:
122+
driver: bridge

0 commit comments

Comments
 (0)