version: "3" services: reverse-proxy: image: traefik:v2.0 command: # - --log.level=DEBUG - --api.insecure=false - --providers.docker - --entryPoints.web.address=:80 - --entryPoints.websecure.address=:443 - --certificatesResolvers.le.acme.httpChallenge.entryPoint=web - --certificatesResolvers.le.acme.storage=/letsencrypt/acme.json # - "--certificatesresolvers.le.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" ports: - "80:80" - "443:443" # The Web UI (enabled by --api.insecure=true) - "8080:8080" depends_on: - back - front volumes: - /var/run/docker.sock:/var/run/docker.sock - ./letsencrypt:/letsencrypt front: image: thecodingmachine/nodejs:14 environment: DEBUG_MODE: "$DEBUG_MODE" JITSI_URL: $JITSI_URL JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE" HOST: "0.0.0.0" NODE_ENV: development API_URL: pusher.kraut.world UPLOADER_URL: uploader.kraut.world ADMIN_URL: admin.kraut.world STARTUP_COMMAND_1: yarn install TURN_SERVER: "turn:coturn.workadventu.re:443,turns:coturn.workadventu.re:443" TURN_USER: workadventure TURN_PASSWORD: WorkAdventure123 command: yarn run start volumes: - ./front:/usr/src/app labels: - "traefik.http.routers.front.rule=Host(`play.kraut.world`)" - "traefik.http.routers.front.entryPoints=web" - "traefik.http.services.front.loadbalancer.server.port=8080" - "traefik.http.routers.front-ssl.rule=Host(`play.kraut.world`)" - "traefik.http.routers.front-ssl.entryPoints=websecure" - "traefik.http.routers.front-ssl.tls=true" - "traefik.http.routers.front-ssl.service=front" - "traefik.http.routers.front-ssl.tls.certresolver=le" - "traefik.http.routers.front-ssl.tls.domains[0].main=play.kraut.world" pusher: image: thecodingmachine/nodejs:12 command: yarn dev #command: yarn run prod #command: yarn run profile environment: DEBUG: "*" STARTUP_COMMAND_1: yarn install SECRET_JITSI_KEY: "$SECRET_JITSI_KEY" SECRET_KEY: yourSecretKey ADMIN_API_TOKEN: "$ADMIN_API_TOKEN" API_URL: back:50051 JITSI_URL: $JITSI_URL JITSI_ISS: $JITSI_ISS volumes: - ./pusher:/usr/src/app labels: - "traefik.http.routers.pusher.rule=Host(`pusher.kraut.world`)" - "traefik.http.routers.pusher.entryPoints=web" - "traefik.http.services.pusher.loadbalancer.server.port=8080" - "traefik.http.routers.pusher-ssl.rule=Host(`pusher.kraut.world`)" - "traefik.http.routers.pusher-ssl.entryPoints=websecure" - "traefik.http.routers.pusher-ssl.tls=true" - "traefik.http.routers.pusher-ssl.service=pusher" - "traefik.http.routers.pusher-ssl.tls.certresolver=le" - "traefik.http.routers.pusher-ssl.tls.domains[0].main=pusher.kraut.world" maps: image: thecodingmachine/nodejs:12-apache environment: DEBUG_MODE: "$DEBUG_MODE" HOST: "0.0.0.0" NODE_ENV: production #APACHE_DOCUMENT_ROOT: dist/ #APACHE_EXTENSIONS: headers #APACHE_EXTENSION_HEADERS: 1 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.routers.maps.rule=Host(`maps.kraut.world`)" - "traefik.http.routers.maps.entryPoints=web" - "traefik.http.services.maps.loadbalancer.server.port=80" - "traefik.http.routers.maps-ssl.rule=Host(`maps.kraut.world`)" - "traefik.http.routers.maps-ssl.entryPoints=websecure" - "traefik.http.routers.maps-ssl.tls=true" - "traefik.http.routers.maps-ssl.service=maps" - "traefik.http.routers.maps-ssl.tls.certresolver=le" - "traefik.http.routers.maps-ssl.tls.domains[0].main=maps.kraut.world" back: image: thecodingmachine/nodejs:12 command: yarn dev #command: yarn run profile environment: DEBUG: "*" STARTUP_COMMAND_1: yarn install SECRET_KEY: yourSecretKey SECRET_JITSI_KEY: "$SECRET_JITSI_KEY" ALLOW_ARTILLERY: "true" ADMIN_API_TOKEN: "$ADMIN_API_TOKEN" JITSI_URL: $JITSI_URL JITSI_ISS: $JITSI_ISS volumes: - ./back:/usr/src/app labels: - "traefik.http.routers.back.rule=Host(`api.kraut.world`)" - "traefik.http.routers.back.entryPoints=web" - "traefik.http.services.back.loadbalancer.server.port=8080" - "traefik.http.routers.back-ssl.rule=Host(`api.kraut.world`)" - "traefik.http.routers.back-ssl.entryPoints=websecure" - "traefik.http.routers.back-ssl.tls=true" - "traefik.http.routers.back-ssl.service=back" - "traefik.http.routers.back-ssl.tls.certresolver=le" - "traefik.http.routers.back-ssl.tls.domains[0].main=api.kraut.world" uploader: image: thecodingmachine/nodejs:12 command: yarn dev #command: yarn run profile environment: DEBUG: "*" STARTUP_COMMAND_1: yarn install volumes: - ./uploader:/usr/src/app labels: - "traefik.http.routers.uploader.rule=Host(`uploader.kraut.world`)" - "traefik.http.routers.uploader.entryPoints=web" - "traefik.http.services.uploader.loadbalancer.server.port=8080" - "traefik.http.routers.uploader-ssl.rule=Host(`uploader.kraut.world`)" - "traefik.http.routers.uploader-ssl.entryPoints=websecure" - "traefik.http.routers.uploader-ssl.tls=true" - "traefik.http.routers.uploader-ssl.service=uploader" - "traefik.http.routers.uploader-ssl.tls.certresolver=le" - "traefik.http.routers.uploader-ssl.tls.domains[0].main=uploader.kraut.world" website: image: thecodingmachine/nodejs:12-apache environment: STARTUP_COMMAND_1: npm install STARTUP_COMMAND_2: npm run watch & APACHE_DOCUMENT_ROOT: dist/ volumes: - ./website:/var/www/html labels: - "traefik.http.middlewares.https-upgrade.redirectscheme.scheme=https" - "traefik.http.routers.website.rule=Host(`kraut.world`)" - "traefik.http.routers.website.entryPoints=web" - "traefik.http.routers.website.middlewares=https-upgrade@docker" - "traefik.http.services.website.loadbalancer.server.port=80" - "traefik.http.routers.website-ssl.rule=Host(`kraut.world`)" - "traefik.http.routers.website-ssl.entryPoints=websecure" - "traefik.http.routers.website-ssl.tls=true" - "traefik.http.routers.website-ssl.service=website" - "traefik.http.routers.website-ssl.tls.certresolver=le" - "traefik.http.routers.website-ssl.tls.domains[0].main=kraut.world" messages: #image: thecodingmachine/nodejs:14 image: thecodingmachine/workadventure-back-base:latest environment: #STARTUP_COMMAND_0: sudo apt-get install -y inotify-tools 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