7d0b573d37
- OPID_PROFILE_SCREEN_PROVIDER is a variable to show profile of user connected. You can defined your own provider or use classic provider of WorkAdventure. - OpenIdProfileController with url "/profile" get user data and create simple html to show user informations. This url will be called with params 'accessToken' - If you define your custom profile url, it will be called with param 'accessToken'. accessToken is token to access at user informations in your OpenId provider.
208 lines
7.6 KiB
YAML
208 lines
7.6 KiB
YAML
version: "3"
|
|
services:
|
|
reverse-proxy:
|
|
image: traefik:v2.0
|
|
command:
|
|
- --api.insecure=true
|
|
- --providers.docker
|
|
- --entryPoints.web.address=:80
|
|
- --entryPoints.websecure.address=:443
|
|
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
|
|
|
|
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
|
|
PUSHER_URL: /pusher
|
|
UPLOADER_URL: /uploader
|
|
ADMIN_URL: /admin
|
|
MAPS_URL: /maps
|
|
STARTUP_COMMAND_1: ./templater.sh
|
|
STARTUP_COMMAND_2: yarn install
|
|
TURN_SERVER: "turn:localhost:3478,turns:localhost:5349"
|
|
DISABLE_NOTIFICATIONS: "$DISABLE_NOTIFICATIONS"
|
|
SKIP_RENDER_OPTIMIZATIONS: "$SKIP_RENDER_OPTIMIZATIONS"
|
|
# Use TURN_USER/TURN_PASSWORD if your Coturn server is secured via hard coded credentials.
|
|
# Advice: you should instead use Coturn REST API along the TURN_STATIC_AUTH_SECRET in the Back container
|
|
TURN_USER: ""
|
|
TURN_PASSWORD: ""
|
|
START_ROOM_URL: "$START_ROOM_URL"
|
|
DISABLE_ANONYMOUS: "$DISABLE_ANONYMOUS"
|
|
command: yarn run start
|
|
volumes:
|
|
- ./front:/usr/src/app
|
|
labels:
|
|
- "traefik.http.routers.front.rule=PathPrefix(`/`)"
|
|
- "traefik.http.routers.front.entryPoints=web,traefik"
|
|
- "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:14
|
|
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
|
|
FRONT_URL: http://localhost
|
|
OPID_CLIENT_ID: $OPID_CLIENT_ID
|
|
OPID_CLIENT_SECRET: $OPID_CLIENT_SECRET
|
|
OPID_CLIENT_ISSUER: $OPID_CLIENT_ISSUER
|
|
OPID_CLIENT_REDIREC_URL: $OPID_CLIENT_REDIREC_URL
|
|
OPID_PROFILE_SCREEN_PROVIDER: $OPID_PROFILE_SCREEN_PROVIDER
|
|
DISABLE_ANONYMOUS: $DISABLE_ANONYMOUS
|
|
volumes:
|
|
- ./pusher:/usr/src/app
|
|
labels:
|
|
- "traefik.http.middlewares.strip-pusher-prefix.stripprefix.prefixes=/pusher"
|
|
- "traefik.http.routers.pusher.rule=PathPrefix(`/pusher`)"
|
|
- "traefik.http.routers.pusher.middlewares=strip-pusher-prefix@docker"
|
|
- "traefik.http.routers.pusher.entryPoints=web"
|
|
- "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
|
|
#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.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
|
|
#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
|
|
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.rule=PathPrefix(`/api`)"
|
|
- "traefik.http.routers.back.middlewares=strip-api-prefix@docker"
|
|
- "traefik.http.routers.back.entryPoints=web"
|
|
- "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"
|
|
|
|
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.middlewares.strip-uploader-prefix.stripprefix.prefixes=/uploader"
|
|
- "traefik.http.routers.uploader.rule=PathPrefix(`/uploader`)"
|
|
- "traefik.http.routers.uploader.middlewares=strip-uploader-prefix@docker"
|
|
- "traefik.http.routers.uploader.entryPoints=web"
|
|
- "traefik.http.services.uploader.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.uploader-ssl.rule=PathPrefix(`/uploader`)"
|
|
- "traefik.http.routers.uploader-ssl.middlewares=strip-uploader-prefix@docker"
|
|
- "traefik.http.routers.uploader-ssl.entryPoints=websecure"
|
|
- "traefik.http.routers.uploader-ssl.tls=true"
|
|
- "traefik.http.routers.uploader-ssl.service=uploader"
|
|
|
|
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
|
|
|
|
redis:
|
|
image: redis:6
|
|
|
|
# coturn:
|
|
# image: coturn/coturn:4.5.2
|
|
# command:
|
|
# - turnserver
|
|
# #- -c=/etc/coturn/turnserver.conf
|
|
# - --log-file=stdout
|
|
# - --external-ip=$$(detect-external-ip)
|
|
# - --listening-port=3478
|
|
# - --min-port=10000
|
|
# - --max-port=10010
|
|
# - --tls-listening-port=5349
|
|
# - --listening-ip=0.0.0.0
|
|
# - --realm=localhost
|
|
# - --server-name=localhost
|
|
# - --lt-cred-mech
|
|
# # Enable Coturn "REST API" to validate temporary passwords.
|
|
# #- --use-auth-secret
|
|
# #- --static-auth-secret=SomeStaticAuthSecret
|
|
# #- --userdb=/var/lib/turn/turndb
|
|
# - --user=workadventure:WorkAdventure123
|
|
# # use real-valid certificate/privatekey files
|
|
# #- --cert=/root/letsencrypt/fullchain.pem
|
|
# #- --pkey=/root/letsencrypt/privkey.pem
|
|
# network_mode: host
|