version: "3.5" services: ############# ## Lbrycrd ## ############# lbrycrd: image: lbry/lbrycrd:v0.17.3.2-deprecatedrpc restart: "no" ports: - "15201:29246" - "15200:29245" expose: - "29246" - "29245" ## host volumes for persistent data such as wallet private keys. volumes: - "./persist:/data" environment: - RUN_MODE=regtest ################### ## Wallet Server ## ################### walletserver: image: lbry/wallet-server:latest-release restart: always environment: - DB_DIRECTORY=/database - MAX_SEND=1000000000000000000000 - DAEMON_URL=http://lbry:lbry@lbrycrd:29245 - MAX_SUBS=1000000000000 - BANDWIDTH_LIMIT=80000000000 - SESSION_TIMEOUT=10000000000000000000000000 - TCP_PORT=50001 - ELASTIC_HOST=es01 ports: - "15300:50001" expose: - "50001" depends_on: - lbrycrd - es01 ulimits: nofile: soft: 90000 hard: 90000 #command: lbry.wallet.server.coin.LBC command: lbry.wallet.server.coin.LBCRegTest ############# ## elasticsearch ## ############# 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=8196 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms4g -Xmx4g" ulimits: memlock: soft: -1 hard: -1 ports: - "9200:9200" expose: - "9200" ############# ## Lbrynet ## ############# lbrynet: image: lbry/lbrynet:v0.99.0 restart: always ports: - "15100:5279" - "15101:5280" expose: - "5279" - "5280" depends_on: - walletserver environment: - LBRY_STREAMING_SERVER=0.0.0.0:5280 volumes: - "./persist/.lbrynet:/home/lbrynet" - ".:/etc/lbry" #Put your daemon_settings.yml here # /private/var/tmp for OSX and /var/tmp for Linux - "${LOCAL_TMP_DIR}" ########### ## MySQL ## ########### mysql: image: mysql/mysql-server:5.7.33 restart: "no" ports: - "15500:3306" expose: - "3306" environment: - MYSQL_ALLOW_EMPTY_PASSWORD=true - MYSQL_DATABASE=lbry - MYSQL_USER=lbry - MYSQL_PASSWORD=lbry - MYSQL_LOG_CONSOLE=true volumes: - "./init.sql:/docker-entrypoint-initdb.d/init.sql" - "./chainquery/docker/my.cnf:/etc/mysql/conf.d/chainquery-optimizations.cnf" ################### ## Internal APIs ## ################### internalapis: image: lbry/internal-apis:master restart: "no" ports: - "15400:8080" expose: - "8080" depends_on: - mysql - lbrycrd environment: - MYSQL_DSN=lbry:lbry@tcp(mysql:3306)/lbry - LBRYCRD_CONNECT=rpc://lbry:lbry@lbrycrd:29245 - REPLICA_DSN=lbry:lbry@tcp(mysql:3306)/lbry entrypoint: wait-for-it -t 0 chainquery:6300 -- wait-for-it -t 0 lbrycrd:29245 -- ./latest serve ################ ## Chainquery ## ################ chainquery: image: lbry/chainquery:master restart: "no" ports: - 6300:6300 depends_on: - lbrycrd - mysql ## TODO: Uncomment this in a docker-compose.override.yml to allow for external configurations. volumes: - ./chainqueryconfig.toml:/etc/lbry/chainqueryconfig.toml entrypoint: wait-for-it -t 0 lbrycrd:29245 -- wait-for-it -t 0 mysql:3306 -- start