version: "3.3" services: reverse-proxy: image: traefik:v2.5 command: - --api.insecure=true - --providers.docker - --entryPoints.web.address=:80 - --entryPoints.websecure.address=:443 ports: - "80:80" - "443:443" depends_on: - back - front volumes: - /var/run/docker.sock:/var/run/docker.sock front: image: thecodingmachine/nodejs:14 environment: DEBUG_MODE: "$DEBUG_MODE" JITSI_URL: $JITSI_URL JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE" PUSHER_URL: /pusher STARTUP_COMMAND_1: ./templater.sh STARTUP_COMMAND_2: yarn install --ignore-engines TURN_SERVER: "${TURN_SERVER}" TURN_USER: "${TURN_USER}" STUN_SERVER: "${STUN_SERVER}" TURN_PASSWORD: "${TURN_PASSWORD}" MAX_PER_GROUP: "${MAX_PER_GROUP}" MAX_USERNAME_LENGTH: "${MAX_USERNAME_LENGTH}" START_ROOM_URL: "${START_ROOM_URL}" DISABLE_NOTIFICATIONS: "${DISABLE_NOTIFICATIONS}" SKIP_RENDER_OPTIMIZATIONS: "${SKIP_RENDER_OPTIMIZATIONS}" command: yarn run start volumes: - ./front:/usr/src/app labels: - "traefik.http.routers.front.rule=PathPrefix(`/`)" - "traefik.http.routers.front.entryPoints=web" - "traefik.http.routers.front.service=front" - "traefik.http.services.front.loadbalancer.server.port=8080" - "traefik.http.routers.front-ssl.rule=PathPrefix(`/`)" - "traefik.http.routers.front-ssl.entryPoints=websecure" - "traefik.http.routers.front-ssl.tls=true" - "traefik.http.routers.front-ssl.service=front" pusher: image: thecodingmachine/nodejs:12 command: yarn dev environment: #DEBUG: "*" STARTUP_COMMAND_1: yarn install SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" SECRET_KEY: "${SECRET_KEY}" API_URL: back:50051 ADMIN_API_URL: "${ADMIN_API_URL}" ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" JITSI_URL: ${JITSI_URL} JITSI_ISS: ${JITSI_ISS} FRONT_URL : ${FRONT_URL} OPID_CLIENT_ID: ${OPID_CLIENT_ID} OPID_CLIENT_SECRET: ${OPID_CLIENT_SECRET} OPID_CLIENT_ISSUER: ${OPID_CLIENT_ISSUER} volumes: - ./pusher:/usr/src/app labels: - "traefik.http.middlewares.strip-pusher-prefix.stripprefix.prefixes=/pusher" - "traefik.http.routers.pusher.middlewares=strip-pusher-prefix@docker" - "traefik.http.routers.pusher.rule=PathPrefix(`/pusher`)" - "traefik.http.routers.pusher.entryPoints=web" - "traefik.http.routers.pusher.service=pusher" - "traefik.http.services.pusher.loadbalancer.server.port=8080" - "traefik.http.routers.pusher-ssl.rule=PathPrefix(`/pusher`)" - "traefik.http.routers.pusher-ssl.middlewares=strip-pusher-prefix@docker" - "traefik.http.routers.pusher-ssl.entryPoints=websecure" - "traefik.http.routers.pusher-ssl.tls=true" - "traefik.http.routers.pusher-ssl.service=pusher" maps: image: thecodingmachine/nodejs:12-apache environment: DEBUG_MODE: "$DEBUG_MODE" HOST: "0.0.0.0" NODE_ENV: development STARTUP_COMMAND_0: sudo a2enmod headers STARTUP_COMMAND_1: yarn install STARTUP_COMMAND_2: yarn run dev & volumes: - ./maps:/var/www/html labels: - "traefik.http.middlewares.strip-maps-prefix.stripprefix.prefixes=/maps" - "traefik.http.routers.maps.rule=PathPrefix(`/maps`)" - "traefik.http.routers.maps.middlewares=strip-maps-prefix@docker" - "traefik.http.routers.maps.entryPoints=web,traefik" - "traefik.http.services.maps.loadbalancer.server.port=80" - "traefik.http.routers.maps-ssl.rule=PathPrefix(`/maps`)" - "traefik.http.routers.maps-ssl.middlewares=strip-maps-prefix@docker" - "traefik.http.routers.maps-ssl.entryPoints=websecure" - "traefik.http.routers.maps-ssl.tls=true" - "traefik.http.routers.maps-ssl.service=maps" back: image: thecodingmachine/nodejs:12 command: yarn dev environment: #DEBUG: "*" STARTUP_COMMAND_1: yarn install SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" ADMIN_API_URL: "${ADMIN_API_URL}" JITSI_URL: ${JITSI_URL} JITSI_ISS: ${JITSI_ISS} MAX_PER_GROUP: ${MAX_PER_GROUP} REDIS_HOST: redis NODE_ENV: development volumes: - ./back:/usr/src/app labels: - "traefik.http.middlewares.strip-api-prefix.stripprefix.prefixes=/api" - "traefik.http.routers.back.middlewares=strip-api-prefix@docker" - "traefik.http.routers.back.rule=PathPrefix(`/api`)" - "traefik.http.routers.back.entryPoints=web" - "traefik.http.routers.back.service=back" - "traefik.http.services.back.loadbalancer.server.port=8080" - "traefik.http.routers.back-ssl.rule=PathPrefix(`/api`)" - "traefik.http.routers.back-ssl.middlewares=strip-api-prefix@docker" - "traefik.http.routers.back-ssl.entryPoints=websecure" - "traefik.http.routers.back-ssl.tls=true" - "traefik.http.routers.back-ssl.service=back" messages: image: thecodingmachine/workadventure-back-base:latest environment: STARTUP_COMMAND_1: yarn install STARTUP_COMMAND_2: yarn run proto:watch volumes: - ./messages:/usr/src/app - ./back:/usr/src/back - ./front:/usr/src/front - ./pusher:/usr/src/pusher redis: image: redis:6