services: database: image: "postgres:16.2-alpine" container_name: moksha-mint-db ports: - 5432:5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: moksha-mint profiles: - tracing bitcoind: stop_grace_period: 5m image: btcpayserver/bitcoin:0.21.0 container_name: bitcoind hostname: bitcoind command: >- bitcoind -server=1 -regtest=1 -rpcauth=polaruser:5e5e98c21f5c814568f8b55d83b23c1c$$066b03f92df30b11de8e4b1b1cd5b1b4281aa25205bd57df9be82caf97a05526 -debug=1 -zmqpubrawblock=tcp://0.0.0.0:28334 -zmqpubrawtx=tcp://0.0.0.0:28335 -zmqpubhashblock=tcp://0.0.0.0:28336 -txindex=1 -dnsseed=0 -upnp=0 -rpcbind=0.0.0.0 -rpcallowip=0.0.0.0/0 -rpcport=18443 -listen=1 -listenonion=0 -fallbackfee=0.0002 -blockfilterindex=1 volumes: - ${HOST_PROJECT_PATH:-.}/data/bitcoind:/home/bitcoin/.bitcoin expose: - "18443" - "18444" - "28334" - "28335" ports: - "18453:18443" #json rpc profiles: - itest lnd-mint: depends_on: - bitcoind stop_grace_period: 2m image: lightninglabs/lnd:v0.17.4-beta container_name: lnd-mint hostname: lnd-mint command: >- lnd --noseedbackup --trickledelay=5000 --alias=lnd-mint --externalip=lnd-mint --tlsextradomain=lnd-mint --tlsextradomain=lnd-mint --tlsextradomain=host.docker.internal --listen=0.0.0.0:9735 --rpclisten=0.0.0.0:10009 --bitcoin.active --bitcoin.regtest --bitcoin.node=bitcoind --bitcoind.rpchost=bitcoind --bitcoind.rpcuser=polaruser --bitcoind.rpcpass=polarpass --bitcoind.zmqpubrawblock=tcp://bitcoind:28334 --bitcoind.zmqpubrawtx=tcp://bitcoind:28335 restart: always volumes: - ${HOST_PROJECT_PATH:-.}/data/lnd-mint:/root/.lnd expose: - "10009" ports: - "11001:10009" profiles: - itest lnd-wallet: depends_on: - bitcoind stop_grace_period: 2m image: lightninglabs/lnd:v0.17.4-beta container_name: lnd-wallet hostname: lnd-wallet command: >- lnd --noseedbackup --trickledelay=5000 --alias=lnd-wallet --externalip=lnd-wallet --tlsextradomain=lnd-wallet --tlsextradomain=lnd-wallet --tlsextradomain=host.docker.internal --listen=0.0.0.0:9735 --rpclisten=0.0.0.0:10009 --bitcoin.active --bitcoin.regtest --bitcoin.node=bitcoind --bitcoind.rpchost=bitcoind --bitcoind.rpcuser=polaruser --bitcoind.rpcpass=polarpass --bitcoind.zmqpubrawblock=tcp://bitcoind:28334 --bitcoind.zmqpubrawtx=tcp://bitcoind:28335 restart: always volumes: - ${HOST_PROJECT_PATH:-.}/data/lnd-wallet:/root/.lnd expose: - "10009" ports: - "12001:10009" profiles: - itest nutshell: image: cashubtc/nutshell:0.16.0 container_name: nutshell ports: - "2228:3338" environment: - MINT_DERIVATION_PATH_LIST=["m/0'/0'/0'", "m/0'/0'/1'", "m/0'/1'/0'", "m/0'/2'/0'"] - MINT_BACKEND_BOLT11_SAT=FakeWallet - MINT_BACKEND_BOLT11_USD=FakeWallet - MINT_LISTEN_HOST=0.0.0.0 - MINT_LISTEN_PORT=3338 - MINT_PRIVATE_KEY=TEST_PRIVATE_KEY - MINT_INFO_NAME=nutshell command: ["poetry", "run", "mint"] profiles: - itest prometheus: image: "prom/prometheus:v2.45.0" command: - "--config.file=/etc/prometheus.yaml" - "--enable-feature=exemplar-storage" - "--web.enable-remote-write-receiver" volumes: - "./conf/prometheus.yaml:/etc/prometheus.yaml" ports: - "127.0.0.1:9090:9090" profiles: - tracing tempo: image: "grafana/tempo:2.4.0" command: - "-config.file=/etc/tempo.yaml" volumes: - "./conf/tempo.yaml:/etc/tempo.yaml" ports: - "127.0.0.1:3200:3200" # Tempo - "127.0.0.1:4317:4317" # OTLP GRPC - "127.0.0.1:4318:4318" # OTLP HTTP profiles: - tracing grafana: image: "grafana/grafana:10.2.4" volumes: - "./conf/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml" environment: - "GF_AUTH_ANONYMOUS_ENABLED=true" - "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" - "GF_AUTH_DISABLE_LOGIN_FORM=true" - "GF_FEATURE_TOGGLES_ENABLE=traceqlEditor" ports: - "127.0.0.1:3000:3000" profiles: - tracing app: #image: "docker.io/ngutech21/moksha-mint:latest" image: "moksha-mint:latest" # for local testing container_name: moksha-mint ports: - 3338:3338 environment: - MINT_DB_URL=postgres://postgres:postgres@moksha-mint-db/moksha-mint - MINT_LIGHTNING_BACKEND=Lnd - MINT_PRIVATE_KEY=supersecretkey depends_on: - database profiles: - app