version: "3.7" services: db: image: louneskmt/dojo-db:1.3.0-low-mem@sha256:76dd4bc0bd3386195adc4564dc6a712c50af9b8400707c4e6ffcb0a859f76c71 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.12.1@sha256:b409a8801b071966f19799ae90a12faf3d8863542a2e24a155ae9ff142d4d95b 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: $BITCOIN_NETWORK DOJO_NODEJS_VERSION_TAG: 1.12.1 NET_DOJO_TOR_IPV4: $TOR_PROXY_IP NET_DOJO_TOR_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: $SAMOURAI_SERVER_NODE_API_KEY NODE_ADMIN_KEY: $SAMOURAI_SERVER_NODE_ADMIN_KEY NODE_JWT_SECRET: $SAMOURAI_SERVER_NODE_JWT_SECRET # BITCOIN BITCOIND_IP: $BITCOIN_IP BITCOIND_RPC_PORT: $BITCOIN_RPC_PORT BITCOIND_RPC_USER: $BITCOIN_RPC_USER BITCOIND_RPC_PASSWORD: $BITCOIN_RPC_PASS BITCOIND_ZMQ_RAWTXS: $BITCOIN_ZMQ_RAWTX_PORT BITCOIND_ZMQ_BLK_HASH: $BITCOIN_ZMQ_HASHBLOCK_PORT # EXPLORER EXPLORER_INSTALL: "off" # INDEXER INDEXER_IP: $ELECTRUM_IP INDEXER_RPC_PORT: $ELECTRUM_PORT 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.11@sha256:a7cfb9e287aa5f2e4137a5d2fdddbfd348624e24e7dd7bed7fa0f4e2e22734d5 init: true restart: on-failure user: "1000:1000" command: - "--listen" - "--cli.apiKey=$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: $BITCOIN_NETWORK WHIRLPOOL_DOJO: "on" WHIRLPOOL_DOJO_IP: $APP_SAMOURAI_SERVER_IP 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/${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: $BITCOIN_NETWORK DOJO_LOCAL_PORT: $APP_SAMOURAI_SERVER_DOJO_PORT DOJO_HIDDEN_SERVICE: $SAMOURAI_SERVER_DOJO_HIDDEN_SERVICE WHIRLPOOL_HIDDEN_SERVICE: $SAMOURAI_SERVER_WHIRLPOOL_HIDDEN_SERVICE NODE_PREFIX_SUPPORT: support NODE_ADMIN_KEY: $SAMOURAI_SERVER_NODE_ADMIN_KEY WHIRLPOOL_API_KEY: $SAMOURAI_SERVER_WHIRLPOOL_API_KEY ports: - "$APP_SAMOURAI_SERVER_DOJO_PORT:80" - "$APP_SAMOURAI_SERVER_CONNECT_PORT:8081" depends_on: - node networks: default: ipv4_address: $APP_SAMOURAI_SERVER_IP