-
Notifications
You must be signed in to change notification settings - Fork 350
/
docker-compose.yml
156 lines (145 loc) · 5.27 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
version: "3.7"
services:
app_proxy:
environment:
APP_HOST: $APP_SAMOURAI_SERVER_IP
APP_PORT: 8081
PROXY_AUTH_ADD: "false"
db:
image: louneskmt/dojo-db:1.5.0-low-mem@sha256:5af4f90818d55360e572033fcc493cd945143e7a3aaef91fa7e102f3c66c7a5b
init: true
restart: on-failure
stop_grace_period: 5m
user: "1000:1000"
environment:
MYSQL_DATABASE: samourai-main
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: samourai
MYSQL_PASSWORD: password
volumes:
- ${APP_DATA_DIR}/mysql/data:/var/lib/mysql
networks:
default:
ipv4_address: $APP_SAMOURAI_SERVER_DB_IP
node:
image: louneskmt/dojo-nodejs:1.16.1@sha256:49de92774ecfcb88af1dc67f8d498641d750c4ec9acaab3c448d70c4f2d4bfe7
init: true
restart: on-failure
command: "/home/node/app/wait-for-it.sh ${APP_SAMOURAI_SERVER_DB_IP}:3306 --timeout=720 --strict -- /home/node/app/restart.sh"
user: "1000:1000"
environment:
# GLOBAL
COMMON_BTC_NETWORK: $APP_BITCOIN_NETWORK
DOJO_VERSION_TAG: 1.16.1
NET_DOJO_TOR_IPV4: $TOR_PROXY_IP
TOR_SOCKS_PORT: $TOR_PROXY_PORT
NET_DOJO_MYSQL_IPV4: $APP_SAMOURAI_SERVER_DB_IP
# MYSQL
MYSQL_DATABASE: samourai-main
MYSQL_USER: samourai
MYSQL_PASSWORD: password
# NODEJS
NODE_GAP_EXTERNAL: 100
NODE_GAP_INTERNAL: 100
NODE_ADDR_FILTER_THRESHOLD: 1000
NODE_ADDR_DERIVATION_MIN_CHILD: 2
NODE_ADDR_DERIVATION_MAX_CHILD: 2
NODE_ADDR_DERIVATION_THRESHOLD: 10
NODE_TXS_SCHED_MAX_ENTRIES: 10
NODE_TXS_SCHED_MAX_DELTA_HEIGHT: 18
NODE_JWT_ACCESS_EXPIRES: 900
NODE_JWT_REFRESH_EXPIRES: 7200
NODE_PREFIX_STATUS: status
NODE_PREFIX_SUPPORT: support
NODE_PREFIX_STATUS_PUSHTX: status
NODE_TRACKER_MEMPOOL_PERIOD: 10000
NODE_TRACKER_UNCONF_TXS_PERIOD: 300000
NODE_ACTIVE_INDEXER: local_indexer
NODE_FEE_TYPE: ECONOMICAL
# SECURITY
NODE_API_KEY: $APP_SAMOURAI_SERVER_NODE_API_KEY
NODE_ADMIN_KEY: $APP_SAMOURAI_SERVER_NODE_ADMIN_KEY
NODE_JWT_SECRET: $APP_SAMOURAI_SERVER_NODE_JWT_SECRET
# BITCOIN
BITCOIND_IP: $APP_BITCOIN_NODE_IP
BITCOIND_RPC_PORT: $APP_BITCOIN_RPC_PORT
BITCOIND_RPC_USER: $APP_BITCOIN_RPC_USER
BITCOIND_RPC_PASSWORD: $APP_BITCOIN_RPC_PASS
BITCOIND_ZMQ_RAWTXS: $APP_BITCOIN_ZMQ_RAWTX_PORT
BITCOIND_ZMQ_BLK_HASH: $APP_BITCOIN_ZMQ_HASHBLOCK_PORT
# EXPLORER
EXPLORER_INSTALL: "off"
# INDEXER
INDEXER_IP: $APP_ELECTRS_NODE_IP
INDEXER_RPC_PORT: $APP_ELECTRS_NODE_PORT
INDEXER_PROTOCOL: tcp
INDEXER_BATCH_SUPPORT: inactive # 'active' for ElectrumX, 'inactive' otherwise
depends_on:
- db
networks:
default:
ipv4_address: $APP_SAMOURAI_SERVER_NODE_IP
whirlpool:
image: louneskmt/whirlpool:0.10.15@sha256:3b766327dfa4c2ae40f190c18afa1f3c9cb9101d7964049dc79bdcb89fd21a90
init: true
restart: on-failure
user: "1000:1000"
command:
- "--listen"
- "--cli.apiKey=$APP_SAMOURAI_SERVER_WHIRLPOOL_API_KEY"
- "--cli.api.http-enable=true"
- "--cli.api.http-port=$APP_SAMOURAI_SERVER_WHIRLPOOL_PORT"
- "--cli.tor=true"
- "--cli.torConfig.coordinator.enabled=true"
- "--cli.torConfig.coordinator.onion=true"
- "--cli.torConfig.backend.enabled=false"
- "--cli.torConfig.backend.onion=false"
- "--cli.mix.liquidityClient=true"
- "--cli.mix.clientsPerPool=1"
- "--resync"
environment:
WHIRLPOOL_BITCOIN_NETWORK: $APP_BITCOIN_NETWORK
WHIRLPOOL_DOJO: "on"
WHIRLPOOL_DOJO_IP: $APP_SAMOURAI_SERVER_IP
depends_on:
- node
volumes:
- ${APP_DATA_DIR}/whirlpool:/home/whirlpool/.whirlpool-cli
networks:
default:
ipv4_address: $APP_SAMOURAI_SERVER_WHIRLPOOL_IP
nginx:
image: nginx:1.21-alpine@sha256:686aac2769fd6e7bab67663fd38750c135b72d993d0bb0a942ab02ef647fc9c3
init: true
restart: on-failure
command: /bin/sh -c "envsubst < /var/www/connect/js/conf.template.js > /var/www/connect/js/conf.js && /wait-for node:8080 --timeout=720 -- nginx"
volumes:
- ${APP_DATA_DIR}/nginx/wait-for:/wait-for
- ${APP_DATA_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf
- ${APP_DATA_DIR}/nginx/${APP_BITCOIN_NETWORK}.conf:/etc/nginx/sites-enabled/dojo.conf
- ${APP_DATA_DIR}/nginx/connect.conf:/etc/nginx/sites-enabled/connect.conf
- ${APP_DATA_DIR}/nginx/connect:/var/www/connect
environment:
COMMON_BTC_NETWORK: $APP_BITCOIN_NETWORK
DOJO_LOCAL_PORT: $APP_SAMOURAI_SERVER_DOJO_PORT
DOJO_HIDDEN_SERVICE: $APP_SAMOURAI_SERVER_DOJO_HIDDEN_SERVICE
WHIRLPOOL_HIDDEN_SERVICE: $APP_SAMOURAI_SERVER_WHIRLPOOL_HIDDEN_SERVICE
NODE_PREFIX_SUPPORT: support
NODE_ADMIN_KEY: $APP_SAMOURAI_SERVER_NODE_ADMIN_KEY
WHIRLPOOL_API_KEY: $APP_SAMOURAI_SERVER_WHIRLPOOL_API_KEY
ports:
- "$APP_SAMOURAI_SERVER_DOJO_PORT:80"
depends_on:
- node
networks:
default:
ipv4_address: $APP_SAMOURAI_SERVER_IP
tor:
image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
- ${TOR_DATA_DIR}:/data
environment:
HOME: "/tmp"