jam/docker/regtest/docker-compose-common.yml
2026-08-09 20:37:53 +02:00

153 lines
6 KiB
YAML

services:
joinmarket_native:
build:
context: ./dockerfile-deps/joinmarket/latest
dockerfile: Dockerfile
restart: unless-stopped
environment:
ENSURE_WALLET: 'true'
REMOVE_LOCK_FILES: 'true'
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_directory_nodes: ${JM_ALL_DIRECTORY_NODES:?You must set the directory node addresses in generated env file}
jm_minimum_makers: 1 # necessary to do coinjoins with this regtest setup; default is 4
jm_taker_utxo_age: 1 # faster testing of scheduler runs; default is 5
jm_maker_timeout_sec: 30 # easier testing of maker timeouts on regtest (and "Stall Monitor" retries); default is 60
expose:
- 62601 # obwatch
- 27183 # joinmarketd daemon
- 28183 # jmwalletd api
- 28283 # jmwalletd websocket
healthcheck:
test: ['CMD', 'supervisorctl', 'status']
interval: 10s
timeout: 10s
retries: 20
start_period: 60s
start_interval: 3s
joinmarket_jam_standalone:
build:
context: ./dockerfile-deps/joinmarket/webui-standalone
dockerfile: Dockerfile
restart: unless-stopped
environment:
ENSURE_WALLET: 'true'
REMOVE_LOCK_FILES: 'true'
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_directory_nodes: ${JM_ALL_DIRECTORY_NODES:?You must set the directory node addresses in generated env file}
jm_minimum_makers: 1 # necessary to do coinjoins with this regtest setup; default is 4
jm_taker_utxo_age: 1 # faster testing of scheduler runs; default is 5
expose:
- 80 # nginx
- 28183 # jmwalletd api
healthcheck:
test: ['CMD', 'dinitctl', 'status', 'jmwalletd']
interval: 10s
timeout: 10s
retries: 20
start_period: 60s
start_interval: 3s
joinmarket_jam_standalone_ng:
build:
context: ./dockerfile-deps/joinmarket/webui-standalone-ng
dockerfile: Dockerfile
restart: unless-stopped
environment:
JMWALLETD_HOST: 0.0.0.0
BITCOIN__BACKEND_TYPE: descriptor_wallet
BITCOIN__RPC_URL: http://bitcoind:43782
BITCOIN__RPC_USER: regtest
BITCOIN__RPC_PASSWORD: regtest
LOGGING__LEVEL: DEBUG
NETWORK_CONFIG__NETWORK: testnet
NETWORK_CONFIG__BITCOIN_NETWORK: regtest
NETWORK_CONFIG__DIRECTORY_SERVERS: ${JM_ALL_DIRECTORY_NODES:?You must set the directory node addresses in generated env file}
expose:
- 80 # nginx
- 28183 # jmwalletd api
joinmarket_ng_native:
image: ghcr.io/joinmarket-ng/joinmarket-ng/jmwalletd:main
restart: unless-stopped
environment:
JOINMARKET_DATA_DIR: /root/.joinmarket-ng
JMWALLETD_HOST: 0.0.0.0
BITCOIN__BACKEND_TYPE: descriptor_wallet
BITCOIN__RPC_URL: http://bitcoind:43782
BITCOIN__RPC_USER: regtest
BITCOIN__RPC_PASSWORD: regtest
NETWORK_CONFIG__NETWORK: testnet
NETWORK_CONFIG__BITCOIN_NETWORK: regtest
NETWORK_CONFIG__DIRECTORY_SERVERS: ${JM_ALL_DIRECTORY_NODES:?You must set the directory node addresses in generated env file}
ORDERBOOK_WATCHER__HTTP_HOST: joinmarket_ng_orderbook_watcher
ORDERBOOK_WATCHER__HTTP_PORT: 8000
OBWATCH_URL: http://joinmarket_ng_orderbook_watcher:8000
TOR__SOCKS_HOST: tor
TOR__SOCKS_PORT: 9050
TOR__CONTROL_HOST: tor
TOR__CONTROL_PORT: 9051
TOR__COOKIE_PATH: /var/lib/tor/control_auth_cookie
TAKER__MINIMUM_MAKERS: 2 # necessary to do coinjoins with this regtest setup
TAKER__MAKER_TIMEOUT_SEC: 30 # easier testing of maker timeouts on regtest
expose:
- 8000 # obwatch
- 28183 # jmwalletd api
healthcheck:
test:
[
'CMD',
'python',
'-c',
"import socket,ssl,sys; s=socket.socket(); s.settimeout(5);\ntry:\n c=ssl.create_default_context(); c.check_hostname=False; c.verify_mode=ssl.CERT_NONE; c.wrap_socket(s, server_hostname='localhost').connect(('127.0.0.1',28183)); sys.exit(0)\nexcept Exception:\n pass\ntry:\n s=socket.socket(); s.settimeout(5); s.connect(('127.0.0.1',28183)); s.close(); sys.exit(0)\nexcept Exception:\n sys.exit(1)",
]
interval: 10s
timeout: 10s
retries: 20
start_period: 60s
start_interval: 3s
joinmarket_ng_peer:
image: ghcr.io/joinmarket-ng/joinmarket-ng/jmwalletd:main
restart: unless-stopped
environment:
JOINMARKET_DATA_DIR: /root/.joinmarket-ng
JMWALLETD_HOST: 0.0.0.0
BITCOIN__BACKEND_TYPE: descriptor_wallet
BITCOIN__RPC_URL: http://bitcoind:43782
BITCOIN__RPC_USER: regtest
BITCOIN__RPC_PASSWORD: regtest
NETWORK_CONFIG__NETWORK: testnet
NETWORK_CONFIG__BITCOIN_NETWORK: regtest
NETWORK_CONFIG__DIRECTORY_SERVERS: ${JM_ALL_DIRECTORY_NODES:?You must set the directory node addresses in generated env file}
ORDERBOOK_WATCHER__HTTP_HOST: joinmarket_ng_orderbook_watcher
ORDERBOOK_WATCHER__HTTP_PORT: 8000
OBWATCH_URL: http://joinmarket_ng_orderbook_watcher:8000
TOR__SOCKS_HOST: tor
TOR__SOCKS_PORT: 9050
TOR__CONTROL_HOST: tor
TOR__CONTROL_PORT: 9051
TOR__COOKIE_PATH: /var/lib/tor/control_auth_cookie
TAKER__MINIMUM_MAKERS: 2 # necessary to do coinjoins with this regtest setup
expose:
- 8000 # obwatch
- 28183 # jmwalletd api
healthcheck:
test:
[
'CMD',
'python',
'-c',
"import socket,ssl,sys; s=socket.socket(); s.settimeout(5);\ntry:\n c=ssl.create_default_context(); c.check_hostname=False; c.verify_mode=ssl.CERT_NONE; c.wrap_socket(s, server_hostname='localhost').connect(('127.0.0.1',28183)); sys.exit(0)\nexcept Exception:\n pass\ntry:\n s=socket.socket(); s.settimeout(5); s.connect(('127.0.0.1',28183)); s.close(); sys.exit(0)\nexcept Exception:\n sys.exit(1)",
]
interval: 10s
timeout: 10s
retries: 20
start_period: 60s
start_interval: 3s