version: '3.9' services: lnd: image: lightninglabs/lnd:${LND_TAG:-v0.17.4-beta@sha256:668eba1fdb1ac520292db95a57059be91895fb8af076eafd6c8b5e757f0f196c} restart: always network_mode: service:tor container_name: lnd${SUFFIX} depends_on: - tor - bitcoind volumes: - ${TOR_DATA:?}:/var/lib/tor:ro - ${LND_DATA:?}:/root/.lnd - ${LND_CONF:?}:/root/.lnd/lnd.conf - ${LND_AUTOUNLOCK_PWD:?}:/tmp/pwd:ro entrypoint: lnd environment: SUFFIX: ${SUFFIX} LND_RPC_PORT: ${GUEST_LND_RPC_PORT:?} LND_REST_PORT: ${GUEST_LND_REST_PORT:?} thub: image: apotdevin/thunderhub:${THUNDERHUB_TAG:-v0.13.23@sha256:5ad834045dc3030ec199615827c415ca07729da32c4739afd3adfc662af4fe65} restart: always network_mode: service:tor container_name: thub${SUFFIX} env_file: ${THUB_ENVS_FILE} depends_on: - tor - lnd volumes: - ${LND_DATA:?}:/lnd/:ro - ${THUB_ACCOUNTS:?}:${THUB_ACCOUNTS_CONFIG_PATH:?} lit: image: lightninglabs/lightning-terminal:${LIT_TAG:-v0.11.0-alpha@sha256:dc14c495f699b14c2d75c43097ad3ab40e7287fc136a3203df9cffe17b867b71} restart: always network_mode: service:tor container_name: lit${SUFFIX} depends_on: - tor - lnd entrypoint: litd --uipassword ${LIT_PASSWORD} --network=${NETWORK} --lnd-mode=remote --remote.lnd.rpcserver=127.0.0.1:${GUEST_LND_RPC_PORT:?} --remote.lnd.macaroonpath=/lnd/data/chain/bitcoin/${NETWORK}/admin.macaroon --remote.lnd.tlscertpath=/lnd/tls.cert --httpslisten=0.0.0.0:8443 --loop.server.proxy=127.0.0.1:9050 --loop.loopoutmaxparts=25 --loop.maxlsatfee=1 volumes: - ${LND_DATA:?}:/lnd/:ro - ${LIT_DATA:?}:/root/ lndg: build: ./lndg restart: always container_name: lndg${SUFFIX} volumes: - ${LNDG_CONFIG}:/root/supervisord.conf:ro - ${LND_DATA}:/root/.lnd:ro - ${LNDG_DATA}:/lndg/data:rw depends_on: - tor - lnd command: - sh - -c - python initialize.py -net ${NETWORK} -d -dx -dir /root/.lnd -rpc 127.0.0.1:${GUEST_LND_RPC_PORT:?} -pw '${LNDG_PASSWORD:?}' && supervisord -c /root/supervisord.conf && python manage.py runserver 0.0.0.0:8889 network_mode: service:tor # Patch common services tor: ports: - ${THUB_LOCAL_PORT}:3000 - ${LIT_LOCAL_PORT}:8443 robosats: volumes: - ${LND_DATA}:/lnd clean-orders: volumes: - ${LND_DATA}:/lnd follow-invoices: volumes: - ${LND_DATA}:/lnd celery: volumes: - ${LND_DATA}:/lnd # backup: # volumes: # - ${LND_DATA}:/running/lnd:ro # - ${LIT_DATA}:/running/lit:ro # Other LND services you might want to enable # bos: # image: alexbosworth/balanceofsatoshis:latest # restart: always # container_name: bos${SUFFIX} # depends_on: # - tor # - lnd # network_mode: service:tor # volumes: # - ${LND_DATA:?}:/home/node/.lnd:ro # LND healthcheck. # These are hit or miss. Not recommended as you might kill a healthy container or enter a restart loop. # healthcheck: # test: ['CMD', 'lncli', '--network=${NETWORK}', 'getinfo'] # interval: 30s # retries: 3 # start_period: 30m # timeout: 10s # labels: # - "deunhealth.restart.on.unhealthy=true" # docker-compose can't restore an unhealthy container (e.g., restart it). Hence, if you enable the LND # healthcheck you might want to uncomment the `deunhealth` container as well. # deunhealth: # image: qmcgaw/deunhealth:v0.3.0 # container_name: deunhealth${SUFFIX} # restart: always # volumes: # - /var/run/docker.sock:/var/run/docker.sock