version: "3.7"

services:
  app_proxy:
    environment:
      APP_HOST: $APP_LIBRE_RELAY_IP
      APP_PORT: 3005
  
  server:
    image: ghcr.io/petertodd/umbrel-bitcoin-libre-relay:libre-relay-v28.0-2@sha256:3821e11276e595c5a7e61d4efda891564fd9559ac76a8303d0f707c4bc7c7b1d
    depends_on: [bitcoind]
    restart: on-failure
    volumes:
      - ${APP_DATA_DIR}/data/app:/data # volume to persist advanced settings json
      - ${APP_LIBRE_RELAY_DATA_DIR}:/bitcoin/.bitcoin # volume to persist umbrel-bitcoin.conf and bitcoin.conf
    environment:
      PORT: "3005"
      BITCOIN_HOST: "${APP_LIBRE_RELAY_NODE_IP}"
      RPC_PORT: "${APP_LIBRE_RELAY_RPC_PORT}"
      BITCOIN_RPC_PORT: "${APP_LIBRE_RELAY_RPC_PORT}"
      RPC_USER: "${APP_LIBRE_RELAY_RPC_USER}"
      BITCOIN_RPC_USER: "${APP_LIBRE_RELAY_RPC_USER}"
      RPC_PASSWORD: "${APP_LIBRE_RELAY_RPC_PASS}"
      BITCOIN_RPC_PASSWORD: "${APP_LIBRE_RELAY_RPC_PASS}"
      BITCOIN_RPC_HIDDEN_SERVICE: "${APP_LIBRE_RELAY_RPC_HIDDEN_SERVICE}"
      BITCOIN_P2P_HIDDEN_SERVICE: "${APP_LIBRE_RELAY_P2P_HIDDEN_SERVICE}"
      BITCOIN_P2P_PORT: "${APP_LIBRE_RELAY_P2P_PORT}"
      DEVICE_DOMAIN_NAME: "${DEVICE_DOMAIN_NAME}"
      BITCOIN_DEFAULT_NETWORK: "${BITCOIN_DEFAULT_NETWORK:-mainnet}"
      BITCOIN_INITIALIZE_WITH_CLEARNET_OVER_TOR: "${BITCOIN_INITIALIZE_WITH_CLEARNET_OVER_TOR:-unset}"
      BITCOIND_IP: "${APP_LIBRE_RELAY_NODE_IP}"
      TOR_PROXY_IP: "${APP_LIBRE_RELAY_TOR_PROXY_IP}"
      TOR_PROXY_PORT: "9050"
      TOR_PROXY_CONTROL_PORT: "9051"
      TOR_PROXY_CONTROL_PASSWORD: "moneyprintergobrrr"
      I2P_DAEMON_IP: "${APP_LIBRE_RELAY_I2P_DAEMON_IP}"
      I2P_DAEMON_PORT: "7656"
    networks:
      default:
        ipv4_address: $APP_LIBRE_RELAY_IP

  bitcoind:
    image: ghcr.io/petertodd/bitcoin:libre-relay-v28.0-2@sha256:66432790260ed9e538e76dbdc17f66ce6cf0656c2a58c05868bba4138af0e6a8
    user: "1000:1000"
    command: "${APP_LIBRE_RELAY_COMMAND}"
    restart: unless-stopped
    stop_grace_period: 15m30s
    volumes:
      - "${APP_LIBRE_RELAY_DATA_DIR}:/data/.bitcoin"
    ports:
      - "${APP_LIBRE_RELAY_P2P_PORT}:${APP_LIBRE_RELAY_P2P_PORT}"
      - "${APP_LIBRE_RELAY_RPC_PORT}:${APP_LIBRE_RELAY_RPC_PORT}"
    networks:
      default:
        ipv4_address: $APP_LIBRE_RELAY_NODE_IP

  tor:
    image: getumbrel/tor:0.4.7.8@sha256:2ace83f22501f58857fa9b403009f595137fa2e7986c4fda79d82a8119072b6a
    user: "1000:1000"
    restart: on-failure
    volumes:
      - ${APP_DATA_DIR}/torrc:/etc/tor/torrc:ro
      - ${TOR_DATA_DIR}:/data
    environment:
      HOME: "/tmp"
    networks:
      default:
        ipv4_address: "${APP_LIBRE_RELAY_TOR_PROXY_IP}"
  
  i2pd_daemon:
    image: purplei2p/i2pd:release-2.44.0@sha256:d154a599793c393cf9c91f8549ba7ece0bb40e5728e1813aa6dd4c210aa606f6
    user: "root"
    command: --sam.enabled=true --sam.address=0.0.0.0 --sam.port=7656 --loglevel=error
    restart: on-failure
    volumes:
      - ${APP_DATA_DIR}/data/i2pd:/home/i2pd/data
    networks:
      default:
        ipv4_address: "${APP_LIBRE_RELAY_I2P_DAEMON_IP}"
