version: "3.7"

services:
  app_proxy:
    environment:
      APP_HOST: $APP_ELECTRS_IP
      APP_PORT: 3006

  app:
    image: getumbrel/umbrel-electrs:v1.0.2@sha256:3dae686b22b1fdfd72ff058d022045f96cc5116e76f82f435d58f1cfe8f46418
    depends_on:
      - electrs
    restart: on-failure
    environment:
      ELECTRUM_HIDDEN_SERVICE: "${APP_ELECTRS_RPC_HIDDEN_SERVICE}"
      ELECTRUM_LOCAL_SERVICE: "${DEVICE_DOMAIN_NAME}"
      ELECTRS_HOST: "${APP_ELECTRS_NODE_IP}"
      BITCOIN_HOST: "${APP_BITCOIN_NODE_IP}"
      RPC_USER: "${APP_BITCOIN_RPC_USER}"
      RPC_PASSWORD: "${APP_BITCOIN_RPC_PASS}"
      RPC_PORT: "${APP_BITCOIN_RPC_PORT}"
    networks:
      default:
        ipv4_address: $APP_ELECTRS_IP
  
  electrs:
    image: getumbrel/electrs:v0.10.2@sha256:bcd3066e795b0f242540481736705b5e86fa159b539fdd562f08007bd112faf9
    restart: always
    environment:
      ELECTRS_LOG_FILTERS: "INFO"
      ELECTRS_NETWORK: "${APP_BITCOIN_NETWORK_ELECTRS}"
      ELECTRS_DAEMON_RPC_ADDR: "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_RPC_PORT}"
      ELECTRS_DAEMON_P2P_ADDR: "${APP_BITCOIN_NODE_IP}:${APP_BITCOIN_P2P_PORT}"
      ELECTRS_ELECTRUM_RPC_ADDR: "0.0.0.0:${APP_ELECTRS_NODE_PORT}"
      ELECTRS_SERVER_BANNER: "Umbrel Electrs (${APP_VERSION})"
      ELECTRS_DB_DIR: "/data/db"
    volumes:
      - "${APP_BITCOIN_DATA_DIR}:/data/.bitcoin:ro"
      - "${APP_DATA_DIR}/data/electrs:/data"
    ports:
      - "${APP_ELECTRS_NODE_PORT}:${APP_ELECTRS_NODE_PORT}"
    networks:
      default:
        ipv4_address: $APP_ELECTRS_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"