diff --git a/.env.dev.localhost.single b/.env.dev.localhost.single new file mode 100644 index 00000000..a75de386 --- /dev/null +++ b/.env.dev.localhost.single @@ -0,0 +1,24 @@ +DEBUG_MODE=false +JITSI_URL=meet.jit.si +JITSI_PRIVATE_MODE=false +JITSI_ISS= +SECRET_JITSI_KEY= +ADMIN_API_TOKEN=123 +START_ROOM_URL=/_/global/workadventure.localhost/maps/Floor0/floor0.json + +STUN_SERVER=stun:stun.l.google.com:19302 +TURN_SERVER=turn:coturn.workadventu.re:443,turns:coturn.workadventu.re:443 +TURN_STATIC_AUTH_SECRET= + +DISABLE_NOTIFICATIONS=true +SKIP_RENDER_OPTIMIZATIONS=false + +ACME_EMAIL= + +MAX_PER_GROUP=4 +MAX_USERNAME_LENGTH=8 + +FRONT_URL= +OPID_CLIENT_ID= +OPID_CLIENT_SECRET= +OPID_CLIENT_ISSUER= diff --git a/.gitignore b/.gitignore index 3e56b379..2acc9cf7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,11 +3,9 @@ .vagrant Vagrantfile docker-compose.override.yaml -docker-compose.dev.* -.env.dev.* *.DS_Store maps/yarn.lock maps/dist/computer.js maps/dist/computer.js.map node_modules -_ \ No newline at end of file +_ diff --git a/docker-compose.dev.localhost.single.yaml b/docker-compose.dev.localhost.single.yaml new file mode 100755 index 00000000..a12dbc34 --- /dev/null +++ b/docker-compose.dev.localhost.single.yaml @@ -0,0 +1,146 @@ +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