-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
125 lines (117 loc) · 3.36 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
x-healthcheck: &healthcheck
interval: 10s
timeout: 10s
retries: 10
start_period: 1m
x-depends-on-bitcoin: &depends_on_bitcoin
bitcoin:
condition: service_healthy
restart: true
x-lnd-service: &lnd-service
build:
context: ./docker/lnd
restart: unless-stopped
healthcheck:
<<: *healthcheck
test: ["CMD-SHELL", "lncli --network=regtest --rpcserver=localhost:10001 --lnddir=/home/lnd/.lnd getinfo"]
depends_on: *depends_on_bitcoin
expose:
- 9735 # P2P
- 10001 # RPC
- 8081 # REST
services:
bitcoin:
build:
context: ./docker/bitcoin
restart: unless-stopped
command: "bitcoind -debug=${MOSTRO_BITCOIN_DEBUG:-0}"
healthcheck:
<<: *healthcheck
test: ["CMD-SHELL", "bitcoin-cli -regtest -rpcport=18443 -rpcuser=bitcoin -rpcpassword=bitcoin getblockchaininfo"]
expose:
- 18443 # RPC
- 18444 # P2P
- 29000 # ZMQ TX
- 29001 # ZMQ BLOCK
- 29002 # ZMQ HASH BLOCK
ports:
- '${MOSTRO_BITCOIN_RPC_LOCAL_PORT:-18443}:18443'
- '${MOSTRO_BITCOIN_ZMQTX_LOCAL_PORT:-29000}:29000'
- '${MOSTRO_BITCOIN_ZMQBLOCK_LOCAL_PORT:-29001}:29001'
- '${MOSTRO_BITCOIN_ZMQHASHBLOCK_LOCAL_PORT:-29002}:29002'
volumes:
- bitcoin:/home/bitcoin/.bitcoin
mostro_lnd:
<<: *lnd-service
command: 'lnd --alias=mostro_lnd --externalip=mostro_lnd --tlsextradomain=mostro_lnd --tlsextradomain=host.docker.internal'
ports:
- '${MOSTRO_LND_RPC_LOCAL_PORT:-10001}:10001'
- '${MOSTRO_LND_REST_LOCAL_PORT:-8081}:8081'
volumes:
- mostro_lnd:/home/lnd/.lnd
alice_lnd:
<<: *lnd-service
command: 'lnd --alias=alice_lnd --externalip=alice_lnd --tlsextradomain=alice_lnd --tlsextradomain=host.docker.internal'
volumes:
- alice_lnd:/home/lnd/.lnd
bob_lnd:
<<: *lnd-service
command: 'lnd --alias=bob_lnd --externalip=bob_lnd --tlsextradomain=bob_lnd --tlsextradomain=host.docker.internal'
volumes:
- bob_lnd:/home/lnd/.lnd
thunderhub:
build:
context: ./docker/thunderhub
restart: unless-stopped
healthcheck:
<<: *healthcheck
test: ["CMD-SHELL", "netstat -an | grep :3000"]
environment:
SSO_SERVER_URL: mostro_lnd:10001
expose:
- 3000 # HTTP
ports:
- '${MOSTRO_THUNDERHUB_LOCAL_PORT:-3000}:3000'
depends_on:
mostro_lnd:
condition: service_healthy
restart: true
volumes:
- mostro_lnd:/lnd
nostr_relay:
build:
context: ./docker/nostr_relay
restart: unless-stopped
healthcheck:
<<: *healthcheck
test: ["CMD-SHELL", "nak relay nostr_relay:8080"]
expose:
- 8080 # WS
ports:
- '${MOSTRO_NOSTR_RELAY_LOCAL_PORT:-8080}:8080'
volumes:
- nostr_relay:/home/dev/.nostr_relay
mostro:
build:
context: ./docker/mostro
restart: unless-stopped
healthcheck:
<<: *healthcheck
test: ["CMD-SHELL", "nak req -k 38383 -a 724497f34e6c4f55f9aa90f5e9dcc326c76a9f2ed817b0f0eb940ee7218ac8d5 ws://nostr_relay:8080 | jq -r '.tags[][0]' | grep mostro_pubkey"]
depends_on:
mostro_lnd:
condition: service_healthy
restart: true
nostr_relay:
condition: service_healthy
restart: true
volumes:
- mostro:/home/mostro/.mostro
- mostro_lnd:/lnd
volumes:
bitcoin:
mostro_lnd:
alice_lnd:
bob_lnd:
nostr_relay:
mostro: