services:
  anvil:
    container_name: anvil
    image: ghcr.io/foundry-rs/foundry:stable
    entrypoint: anvil --chain-id 1337 --gas-limit 50000000 --timestamp 1640995200 $ANVIL_EXTRA_ARGS
    ports:
      - "8545:8545"
    environment:
      ANVIL_IP_ADDR: "0.0.0.0"

  ensindexer:
    container_name: ensindexer
    image: ghcr.io/namehash/ensnode/ensindexer:0.26.0
    pull_policy: always
    ports:
      - "42069:42069"
    depends_on:
      - postgres
      - anvil
      - ensrainbow
    environment:
      PORT: 42069
      RPC_URL_1337: http://anvil:8545
      ENSNODE_PUBLIC_URL: http://localhost:42069
      ENSRAINBOW_URL: http://ensrainbow:3223
      DATABASE_URL: postgresql://postgres:password@postgres:5432/postgres
      DATABASE_SCHEMA: ens-test-env
      ENS_DEPLOYMENT_CHAIN: ens-test-env
      HEAL_REVERSE_ADDRESSES: false
      INDEX_RESOLVER_RECORDS: false
      ACTIVE_PLUGINS: subgraph
      NEXT_PUBLIC_DEPLOYMENT_ADDRESSES: ${NEXT_PUBLIC_DEPLOYMENT_ADDRESSES:-}
      DEPLOYMENT_ADDRESSES: ${DEPLOYMENT_ADDRESSES:-}

  ensrainbow:
    container_name: ensrainbow
    image: ghcr.io/namehash/ensnode/ensrainbow-test:latest
    pull_policy: always
    environment:
      LOG_LEVEL: error

  postgres:
    container_name: postgres
    restart: always
    image: postgres:17
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
    tmpfs:
      - /var/lib/postgresql/data

  metadata:
    container_name: metadata
    image: ghcr.io/ensdomains/ens-metadata-service:latest
    depends_on:
      - anvil
      - ensindexer
    ports:
      - "8080:8080"
    environment:
      - ADDRESS_ETH_REGISTRAR=$ADDRESS_ETH_REGISTRAR
      - ADDRESS_NAME_WRAPPER=$ADDRESS_NAME_WRAPPER
      - RPC_PROVIDER=http://anvil:8545
      - SUBGRAPH_URL=http://ensindexer:42069/subgraph
