services:
  node:
    image: bcnmy/mee-node:1.1.14
    restart: on-failure
    environment:
      - KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 # Default key from package
      - PORT=3000 # MEE Node internal port, matching host port for simplicity here
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - DOCS_URL=https://documenter.getpostman.com/view/33713944/2sAYBd99Ec
    ports:
      - "3000:3000" # Host port:Container port
    links:
      - redis
    volumes:
      # This directory will be created at the project root and populated by duplicate-chain.js
      - ./chains-testnet:/usr/src/app/chains
      # Optional: If you want to persist keystore/logs at the project root
      # - ./keystore:/usr/src/app/keystore 
      # - ./logs:/usr/src/app/logs
    extra_hosts:
      - "host.docker.internal:host-gateway"
  redis:
    image: redis:alpine
    restart: always
    command: redis-server --dir /data --save 60 1 --appendonly yes --loglevel warning
    volumes:
      # Optional: If you want to persist redis data at the project root
      # - ./redis-data:/data 
      - redis_data_vol:/data # Use a named volume for redis for persistence across downs without -v

volumes:
  redis_data_vol:
    # Named volume for Redis to persist data unless `down -v` is used
    # keystore: # If using named volumes instead of bind mounts from root
    # chains: # Not needed if chains-testnet is a host bind mount
    # logs: 
