version: '3.9'
name: reth

services:
  lighthouse:
    restart: unless-stopped
    image: sigp/lighthouse:v5.1.3-modern
    depends_on:
      - reth
    ports:
      - '5052:5052/tcp' # rpc
      - '5053:5053/tcp'
      - '5054:5054/tcp' # metrics
      - '9000:9000/tcp' # p2p
      - '9000:9000/udp' # p2p
    volumes:
      - lighthousedata:/root/.lighthouse
      - ./jwttoken:/root/jwt:ro
    # For Sepolia:
    # - Replace `--network mainnet` with `--network sepolia`
    # - Use different checkpoint sync URL: `--checkpoint-sync-url https://sepolia.checkpoint-sync.ethpandaops.io`
    command: >
      lighthouse bn
      --network mainnet
      --http --http-address 0.0.0.0
      --execution-endpoint http://reth:8551
      --metrics --metrics-address 0.0.0.0
      --execution-jwt /root/jwt/jwt.hex
      --checkpoint-sync-url https://mainnet.checkpoint.sigp.io

  metrics-exporter:
    restart: unless-stopped
    image: ethpandaops/ethereum-metrics-exporter:debian-latest
    depends_on:
      - reth
      - lighthouse
    ports:
      - 9091:9091 # metrics
    volumes:
      - ./ethereum-metrics-exporter/config.yaml:/root/config.yaml
    command:
      - --config=/root/config.yaml
      - --metrics-port=9091

volumes:
  lighthousedata:
    driver: local