Files
explorer-v1/compose.luxnet.yml

104 lines
4.1 KiB
YAML

version: '3.9'
networks:
hanzo-network:
external: true
services:
backend:
image: ghcr.io/luxfi/explorer:${DOCKER_TAG:-latest}
container_name: 'luxnet-backend'
restart: always
stop_grace_period: 5m
command: "bin/blockscout start"
networks:
- hanzo-network
ports:
- "4000:4000"
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- ./docker-compose/envs/common-blockscout.env
environment:
ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:9650/ext/bc/dnmzhuf6poM6PUNQCe7MWWfBdTJEnddhHRNXz2x7H6qSmyBEJ/rpc
ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:9650/ext/bc/dnmzhuf6poM6PUNQCe7MWWfBdTJEnddhHRNXz2x7H6qSmyBEJ/rpc
ETHEREUM_JSONRPC_WS_URL: ws://host.docker.internal:9650/ext/bc/dnmzhuf6poM6PUNQCe7MWWfBdTJEnddhHRNXz2x7H6qSmyBEJ/ws
CHAIN_ID: '96369'
DATABASE_URL: postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@192.168.1.99:5432/explorer_luxnet?sslmode=disable
DISABLE_MIGRATE: 'false'
# Indexer performance tuning for faster catchup
INDEXER_CATCHUP_BLOCKS_BATCH_SIZE: '100'
INDEXER_CATCHUP_BLOCKS_CONCURRENCY: '20'
POOL_SIZE: '100'
POOL_SIZE_API: '20'
INDEXER_MEMORY_LIMIT: '10g'
FETCH_REWARDS_WAY: 'manual'
labels:
- "traefik.enable=true"
- "traefik.http.routers.luxnet-backend.rule=Host(`api-explore.lux.network`)"
- "traefik.http.routers.luxnet-backend.entrypoints=websecure"
- "traefik.http.routers.luxnet-backend.tls.certresolver=letsencrypt"
- "traefik.http.routers.luxnet-backend.priority=1"
- "traefik.http.services.luxnet-backend.loadbalancer.server.port=4000"
- "traefik.docker.network=hanzo-network"
visualizer:
image: ghcr.io/luxfi/explorer-visualizer:${VISUALIZER_VERSION:-latest}
container_name: 'luxnet-visualizer'
restart: always
networks:
- hanzo-network
env_file:
- ./docker-compose/envs/common-visualizer.env
ports:
- "8050:8050"
labels:
- "traefik.enable=true"
- "traefik.http.routers.luxnet-visualizer.rule=Host(`api-explore.lux.network`) && PathPrefix(`/api/visualize`)"
- "traefik.http.routers.luxnet-visualizer.entrypoints=websecure"
- "traefik.http.routers.luxnet-visualizer.tls.certresolver=letsencrypt"
- "traefik.http.routers.luxnet-visualizer.priority=10"
- "traefik.http.middlewares.luxnet-visualizer-strip.stripprefix.prefixes=/api/visualize"
- "traefik.http.routers.luxnet-visualizer.middlewares=luxnet-visualizer-strip"
- "traefik.http.services.luxnet-visualizer.loadbalancer.server.port=8050"
- "traefik.docker.network=hanzo-network"
sig-provider:
image: ghcr.io/luxfi/explorer-sig-provider:${SIG_PROVIDER_VERSION:-latest}
container_name: 'luxnet-sig-provider'
restart: always
networks:
- hanzo-network
ports:
- "8051:8050"
stats:
image: ghcr.io/luxfi/explorer-stats:${STATS_VERSION:-latest}
container_name: 'luxnet-stats'
restart: always
networks:
- hanzo-network
depends_on:
- backend
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- ./docker-compose/envs/common-stats.env
environment:
STATS__DB_URL: postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@192.168.1.99:5432/stats_luxnet?sslmode=disable
STATS__BLOCKSCOUT_DB_URL: postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@192.168.1.99:5432/explorer_luxnet?sslmode=disable
STATS__CREATE_DATABASE: 'true'
STATS__RUN_MIGRATIONS: 'true'
ports:
- "8053:8050"
labels:
- "traefik.enable=true"
- "traefik.http.routers.luxnet-stats.rule=Host(`api-explore.lux.network`) && PathPrefix(`/api/stats`)"
- "traefik.http.routers.luxnet-stats.entrypoints=websecure"
- "traefik.http.routers.luxnet-stats.tls.certresolver=letsencrypt"
- "traefik.http.routers.luxnet-stats.priority=10"
- "traefik.http.middlewares.luxnet-stats-strip.stripprefix.prefixes=/api/stats"
- "traefik.http.routers.luxnet-stats.middlewares=luxnet-stats-strip"
- "traefik.http.services.luxnet-stats.loadbalancer.server.port=8050"
- "traefik.docker.network=hanzo-network"