version: "3"

volumes:
  wallet_server:
  es01:

services:
  wallet_server:
    depends_on: 
      - es01
    image: lbry/wallet-server:${WALLET_SERVER_TAG:-latest-release}
    restart: always
    network_mode: host
    ports:
      - "50001:50001" # rpc port
      - "2112:2112"   # uncomment to enable prometheus
    volumes:
      - "wallet_server:/database"
    environment:
      - DAEMON_URL=http://lbry:lbry@127.0.0.1:9245
      - MAX_QUERY_WORKERS=4
      - CACHE_MB=1024
      - CACHE_ALL_TX_HASHES=
      - CACHE_ALL_CLAIM_TXOS=
      - MAX_SEND=1000000000000000000
      - MAX_RECEIVE=1000000000000000000
      - MAX_SESSIONS=100000
      - HOST=0.0.0.0
      - TCP_PORT=50001
      - PROMETHEUS_PORT=2112
      - FILTERING_CHANNEL_IDS=770bd7ecba84fd2f7607fb15aedd2b172c2e153f 95e5db68a3101df19763f3a5182e4b12ba393ee8
      - BLOCKING_CHANNEL_IDS=dd687b357950f6f271999971f43c785e8067c3a9 06871aa438032244202840ec59a469b303257cad b4a2528f436eca1bf3bf3e10ff3f98c57bd6c4c6
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.11.0
    container_name: es01
    environment:
      - node.name=es01
      - discovery.type=single-node
      - indices.query.bool.max_clause_count=8192
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms4g -Xmx4g"  # no more than 32, remember to disable swap
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es01:/usr/share/elasticsearch/data
    ports:
      - 127.0.0.1:9200:9200