version: "3"

services:
  lnd_groestlcoin:
    image: groestlcoin/lnd:v0.10.0-grs
    container_name: btcpayserver_lnd_groestlcoin
    restart: unless-stopped
    environment:
      LND_CHAIN: "grs"
      LND_EXTERNALIP: ${BTCPAY_ANNOUNCEABLE_HOST}
      LND_PORT: 9736
      LND_ALIAS: ${LIGHTNING_ALIAS}
      LND_ENVIRONMENT: "${NBITCOIN_NETWORK:-regtest}"
      LND_REST_LISTEN_HOST: http://lnd_groestlcoin:8080
      LND_HOST_FOR_LOOP: 127.0.0.1:10009
      LND_EXTRA_ARGS: |
        restlisten=lnd_groestlcoin:8080
        rpclisten=127.0.0.1:10008
        rpclisten=lnd_groestlcoin:10009
        rpclisten=127.0.0.1:10009
        groestlcoin.node=groestlcoind
        groestlcoind.rpchost=groestlcoind:43782
        groestlcoind.rpcuser=lnd
        groestlcoind.rpcpass=afixedpasswordbecauselndsuckswithcookiefile
        groestlcoind.zmqpubrawblock=tcp://groestlcoind:21441
        groestlcoind.zmqpubrawtx=tcp://groestlcoind:21441
        adminmacaroonpath=/data/admin.macaroon
        invoicemacaroonpath=/data/invoice.macaroon
        readonlymacaroonpath=/data/readonly.macaroon
        tlsextradomain=lnd_groestlcoin
        no-rest-tls=1
        protocol.wumbo-channels=1
    ports:
      - "9736:9736"
    expose:
      - "8080"
      - "8081"
      - "9736"
    volumes:
      - "lnd_groestlcoin_datadir:/data"
      - "groestlcoin_datadir:/deps/.groestlcoin"
      - "nbxplorer_datadir:/root/.nbxplorer"
    links:
      - groestlcoind

  btcpayserver:
    environment:
      BTCPAY_GRSLIGHTNING: "type=lnd-rest;server=http://lnd_groestlcoin:8080/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;allowinsecure=true"
      BTCPAY_GRSEXTERNALLNDGRPC: "server=/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_groestlcoin"
      BTCPAY_GRSEXTERNALLNDREST: "server=/lnd-rest/grs/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_groestlcoin"
      BTCPAY_GRSEXTERNALLNDSEEDBACKUP: "/etc/lnd_groestlcoin/data/chain/groestlcoin/${NBITCOIN_NETWORK:-regtest}/walletunlock.json"
    volumes:
      - "lnd_groestlcoin_datadir:/etc/lnd_groestlcoin"
    links:
      - lnd_groestlcoin

  groestlcoind:
    environment:
      GROESTLCOIN_EXTRA_ARGS: |
        # rpcuser=lnd
        # rpcpassword=afixedpasswordbecauselndsuckswithcookiefile
        # We need to use rpcauth because we also need cookieauth. rpcpassword disabled cookie file auth.
        # Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped.
        rpcauth=lnd:d031f7567c5b02ba95524170e51c77f4$$827ce5412f653d6613c2f480e521eb437c866b999bdeb2ee4f9c41d3b00dff1c

  nginx:
    links:
      - "lnd_groestlcoin"
    volumes:
      - "lnd_groestlcoin_datadir:/lnd"
  nginx-gen:
    links:
      - "lnd_groestlcoin"
    volumes:
      - "lnd_groestlcoin_datadir:/lnd"

volumes:
  lnd_groestlcoin_datadir:

required:
  - "opt-add-zmq"
