version: "3"
services:
  reverse-proxy:
    image: traefik:v2.0
    command: --api.insecure=true --providers.docker
    ports:
      - "80:80"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    depends_on:
      - back
      - front
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  front:
    image: thecodingmachine/nodejs:12
    environment:
      DEBUG_MODE: "$DEBUG_MODE"
      HOST: "0.0.0.0"
      NODE_ENV: development
      API_URL: http://api.workadventure.localhost
      STARTUP_COMMAND_1: yarn install
    command: yarn run start
    volumes:
      - ./front:/usr/src/app
    labels:
      - "traefik.http.routers.front.rule=Host(`workadventure.localhost`)"
      - "traefik.http.services.front.loadbalancer.server.port=8080"

  back:
    image: thecodingmachine/nodejs:12
    command: yarn dev
    environment:
      STARTUP_COMMAND_1: yarn install
      SECRET_KEY: yourSecretKey
    volumes:
      - ./back:/usr/src/app
    labels:
      - "traefik.http.routers.back.rule=Host(`api.workadventure.localhost`)"
      - "traefik.http.services.back.loadbalancer.server.port=8080"