10 docker compose.yml
Alex Grin edited this page 2023-01-12 10:21:22 -05:00
version: "3"

volumes:
  lbry_lbcd:
    external: true
  lbry_rocksdb:
    external: true
  es01:
    external: true

services:
  lbcd:
    image: lbry/lbcd:latest
    restart: always
    network_mode: host
    command:
      - "--notls"
      - "--listen=0.0.0.0:9246"
      - "--rpclisten=127.0.0.1:9245"
      - "--rpcuser=lbry"
      - "--rpcpass=lbry"
    volumes:
      - "lbry_lbcd:/root/.lbcd"
    ports:
      - "9246:9246"   # p2p


  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.16.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=-Dlog4j2.formatMsgNoLookups=true -Xms8g -Xmx8g"  # 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"


  scribe:
    depends_on:
      - lbcd
    image: lbry/hub:${SCRIBE_TAG:-master}
    restart: always
    network_mode: host
    volumes:
      - "lbry_rocksdb:/database"
    ports:
      - "2113:2113"
    environment:
      - HUB_COMMAND=scribe
      # - SNAPSHOT_URL=https://snapshots.lbry.com/hub/block_1288882/lbry-rocksdb.tar
    command:  # for full options, see `scribe --help`
      - "--daemon_url=http://lbry:lbry@127.0.0.1:9245"
      - "--prometheus_port=2113"
      - "--max_query_workers=2"
      - "--index_address_statuses"
      - "--db_disable_integrity_checks"
      - "--db_max_open_files=32"


  scribe_elastic_sync:
    depends_on:
      - es01
      - scribe
    image: lbry/hub:${SCRIBE_TAG:-master}
    restart: always
    network_mode: host
    ports:
      - "127.0.0.1:19080:19080"  # elastic notifier port
    volumes:
      - "lbry_rocksdb:/database"
    environment:
      - HUB_COMMAND=scribe-elastic-sync
      - FILTERING_CHANNEL_IDS=770bd7ecba84fd2f7607fb15aedd2b172c2e153f 95e5db68a3101df19763f3a5182e4b12ba393ee8 d4612c256a44fc025c37a875751415299b1f8220
      - BLOCKING_CHANNEL_IDS=dd687b357950f6f271999971f43c785e8067c3a9 06871aa438032244202840ec59a469b303257cad b4a2528f436eca1bf3bf3e10ff3f98c57bd6c4c6 145265bd234b7c9c28dfc6857d878cca402dda94 22335fbb132eee86d374b613875bf88bec83492f f665b89b999f411aa5def311bb2eb385778d49c8
    command:  # for full options, see `scribe-elastic-sync --help`
      - "--max_query_workers=2"
      - "--elastic_host=127.0.0.1"            # elasticsearch host
      - "--elastic_port=9200"                 # elasticsearch port
      - "--elastic_notifier_host=127.0.0.1"   # address for the elastic sync notifier to connect to
      - "--elastic_notifier_port=19080"


  herald:
    depends_on:
      - lbcd
      - es01
      - scribe_elastic_sync
      - scribe
    image: lbry/hub:${SCRIBE_TAG:-master}
    restart: always
    network_mode: host
    ports:
      - "50001:50001" # electrum rpc port and udp ping port
      - "2112:2112"   # comment out to disable prometheus metrics
    volumes:
      - "lbry_rocksdb:/database"
    environment:
      - HUB_COMMAND=herald
      - FILTERING_CHANNEL_IDS=770bd7ecba84fd2f7607fb15aedd2b172c2e153f 95e5db68a3101df19763f3a5182e4b12ba393ee8 d4612c256a44fc025c37a875751415299b1f8220
      - BLOCKING_CHANNEL_IDS=dd687b357950f6f271999971f43c785e8067c3a9 06871aa438032244202840ec59a469b303257cad b4a2528f436eca1bf3bf3e10ff3f98c57bd6c4c6 145265bd234b7c9c28dfc6857d878cca402dda94 22335fbb132eee86d374b613875bf88bec83492f f665b89b999f411aa5def311bb2eb385778d49c8
    command:  # for full options, see `herald --help`
      - "--index_address_statuses"
      - "--daemon_url=http://lbry:lbry@127.0.0.1:9245"
      - "--max_query_workers=4"
      - "--host=0.0.0.0"
      - "--prometheus_port=2112"              # comment out to disable prometheus metrics
      # - "--elastic_host=127.0.0.1"            # elasticsearch host
      # - "--elastic_port=9200"                 # elasticsearch port
      # - "--elastic_notifier_host=127.0.0.1"   # address for the elastic sync notifier to connect to
      # - "--elastic_notifier_port=19080"
      # - "--max_sessions=100000              # uncomment to increase the maximum number of electrum connections, defaults to 1000
      # - "--allow_lan_udp"                   # uncomment to reply to clients on the local network