jam/docker/regtest/docker-compose.yml
d11n c022c205bb
feat: allow for deployment in subdirectory (#129)
* feat: allow for deployment in subdirectory

* Fix sprite path

* Basepath fix

* Update proxy and websocket paths

* Add nginx for testing deployment in subdirectory

* Update docker/regtest/docker-compose.yml

Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>

* nginx: Move file and add websocket connection

Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>
2022-03-02 12:37:29 +01:00

231 lines
6.5 KiB
YAML

version: "3"
services:
nginx:
container_name: jm_regtest_nginx_test_basepath
image: nginx
volumes:
- ./dockerfile-deps/nginx:/etc/nginx/templates
ports:
- "8000:80"
extra_hosts:
- "host.docker.internal:host-gateway"
bitcoind:
container_name: jm_regtest_bitcoind
restart: unless-stopped
image: btcpayserver/bitcoin:22.0-1
environment:
HIDDENSERVICE_NAME: BTC-P2P,BTC-RPC
BTC-P2P_HIDDENSERVICE_VIRTUAL_PORT: 8333
BTC-P2P_HIDDENSERVICE_PORT: 39388
BTC-RPC_HIDDENSERVICE_VIRTUAL_PORT: 8332
BTC-RPC_HIDDENSERVICE_PORT: 43782
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
BITCOIN_WALLETDIR: "/walletdata"
BITCOIN_EXTRA_ARGS: |
rpcport=43782
rpcbind=0.0.0.0
rpcallowip=0.0.0.0/0
port=39388
whitelist=0.0.0.0/0
maxmempool=500
debug=rpc
logips=0
networkactive=1
dnsseed=0
uacomment=jmdevbitcoindregtest
printpriority=1
logtimemicros=1
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
zmqpubhashblock=tcp://0.0.0.0:28334
# tor
dns=1
onion=tor:9050
torcontrol=tor:9051
# do not automatically create tor hidden service
listenonion=0
# rpcauth (user=regtest; password=regtest)
rpcauth=regtest:20b58677979ad9d3cf4b78b1d6e85e44$$2ec3e1e1c00c7c58d7aff1d4bf96e4a984ea1af5d676d862fd0faa857a1d4d7c
# rpcauth (user=joinmarket; password=joinmarket)
rpcauth=joinmarket:260b4c5b1fbd09d75a4aabf90226282f$$76e170af088d43a588992cdd5e7bae2242b03c33aa672cccfd1fb75f9281299e
# rpcauth (user=joinmarket2; password=joinmarket2)
rpcauth=joinmarket2:521bf9f4468529d49c0a41f9c9f8fdbf$$63ae94a73d2aa45e7ee756945d9b1e469f9873ce026b815d676a748f777e0b8d
# rpcauth (user=nbxplorer; password=nbxplorer)
rpcauth=nbxplorer:8953867752ed07ca27bc0b1d7a10fa99$$e46553870d4a2c59753bfe453797be070ab4dbd5fdfc2fecdb7862ea0ae6b127
expose:
- "43782" # RPC
- "39388" # P2P
- "28332" # ZMQ
- "28333" # ZMQ
- "28334" # ZMQ
volumes:
- "bitcoin_datadir:/data"
- "bitcoin_wallet_datadir:/walletdata"
- "tor_datadir:/home/tor/.tor"
depends_on:
- tor
nbxplorer:
container_name: jm_regtest_nbxplorer
restart: unless-stopped
image: nicolasdorier/nbxplorer:2.2.18
environment:
NBXPLORER_NOAUTH: 1
NBXPLORER_CHAINS: "btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCRPCUSER: nbxplorer
NBXPLORER_BTCRPCPASSWORD: nbxplorer
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_TRIMEVENTS: 10000
NBXPLORER_SIGNALFILESDIR: /datadir
expose:
- "32838"
volumes:
- "nbxplorer_datadir:/datadir"
- "bitcoin_datadir:/root/.bitcoin"
depends_on:
- bitcoind
- tor
irc:
container_name: jm_regtest_irc
restart: unless-stopped
image: ghcr.io/ergochat/ergo:stable
expose:
- 6667
volumes:
- "irc_datadir:/ircd"
joinmarket:
container_name: jm_regtest_joinmarket
build:
context: ./dockerfile-deps/joinmarket/latest
dockerfile: Dockerfile
restart: unless-stopped
environment:
READY_FILE: /root/.nbxplorer/btc_fully_synched
ENSURE_WALLET: 1
jm_gaplimit: 2000
jm_rpc_wallet_file: jm_primary
jm_max_cj_fee_abs: 42000000 # 0.42 btc
jm_max_cj_fee_rel: 0.1337 # 13.37%
jm_minimum_makers: 1
jm_taker_utxo_age: 1
jm_taker_utxo_retries: 10
jm_tx_broadcast: self
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_rpc_user: joinmarket
jm_rpc_password: joinmarket
jm_tor_control_host: tor
jm_tor_control_port: 9051
jm_onion_socks5_host: tor
jm_onion_socks5_port: 9050
jm_socks5_host: tor
jm_socks5_port: 9050
expose:
- 8080 # payjoin server
- 62601 # obwatch
- 27183 # joinmarketd
- 28183 # jmwalletd api
- 28283 # jmwalletd websocket
ports:
- "62601:62601"
- "28183:28183"
- "28283:28283"
volumes:
- "joinmarket_datadir:/root/.joinmarket"
- "nbxplorer_datadir:/root/.nbxplorer"
- "tor_datadir:/home/tor/.tor"
depends_on:
- bitcoind
- irc
- nbxplorer
- tor
joinmarket2:
container_name: jm_regtest_joinmarket2
build:
context: ./dockerfile-deps/joinmarket/webui-standalone
dockerfile: Dockerfile
restart: unless-stopped
environment:
READY_FILE: /root/.nbxplorer/btc_fully_synched
ENSURE_WALLET: 1
APP_USER: joinmarket
APP_PASSWORD: joinmarket
jm_gaplimit: 2000
jm_rpc_wallet_file: jm_secondary
jm_max_cj_fee_abs: 42000000 # 0.42 btc
jm_max_cj_fee_rel: 0.1337 # 13.37%
jm_minimum_makers: 1
jm_taker_utxo_age: 1
jm_taker_utxo_retries: 10
jm_tx_broadcast: self
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_rpc_user: joinmarket2
jm_rpc_password: joinmarket2
jm_tor_control_host: tor
jm_tor_control_port: 9051
jm_onion_socks5_host: tor
jm_onion_socks5_port: 9050
jm_socks5_host: tor
jm_socks5_port: 9050
expose:
- 80 # nginx
- 8080 # payjoin server
- 62601 # obwatch
- 27183 # joinmarketd
- 28183 # jmwalletd api
- 28283 # jmwalletd websocket
ports:
- "29183:28183"
- "29283:28283"
- "29080:80"
volumes:
- "joinmarket2_datadir:/root/.joinmarket"
- "nbxplorer_datadir:/root/.nbxplorer"
- "tor_datadir:/home/tor/.tor"
depends_on:
- bitcoind
- irc
- nbxplorer
- tor
tor:
container_name: jm_regtest_tor
restart: unless-stopped
image: btcpayserver/tor:0.4.6.5
environment:
TOR_PASSWORD: changeme
TOR_ADDITIONAL_CONFIG: /usr/local/etc/tor/torrc-2
TOR_EXTRA_ARGS: |
CookieAuthentication 1
expose:
- "9050" # SOCKS
- "9051" # Tor Control
volumes:
- "tor_datadir:/home/tor/.tor"
- "tor_torrcdir:/usr/local/etc/tor"
- "tor_servicesdir:/var/lib/tor/hidden_services"
volumes:
bitcoin_datadir:
bitcoin_wallet_datadir:
nbxplorer_datadir:
joinmarket_datadir:
joinmarket2_datadir:
irc_datadir:
tor_datadir:
tor_torrcdir:
tor_servicesdir: