db11a465ef
This PR also adds a "Redis" server in the docker-compose from prod (required to store values of Scripting API variables)
129 lines
4.4 KiB
YAML
129 lines
4.4 KiB
YAML
version: "3.5"
|
|
services:
|
|
reverse-proxy:
|
|
image: traefik:v2.6
|
|
command:
|
|
- --log.level=${LOG_LEVEL}
|
|
- --providers.docker
|
|
# Entry points
|
|
- --entryPoints.web.address=:${HTTP_PORT}
|
|
- --entrypoints.web.http.redirections.entryPoint.to=websecure
|
|
- --entrypoints.web.http.redirections.entryPoint.scheme=https
|
|
- --entryPoints.websecure.address=:${HTTPS_PORT}
|
|
# HTTP challenge
|
|
- --certificatesresolvers.myresolver.acme.email=${ACME_EMAIL}
|
|
- --certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json
|
|
- --certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web
|
|
# Let's Encrypt's staging server
|
|
# uncomment during testing to avoid rate limiting
|
|
#- --certificatesresolvers.dnsresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
|
|
ports:
|
|
- "${HTTP_PORT}:80"
|
|
- "${HTTPS_PORT}:443"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ${DATA_DIR}/letsencrypt/:/letsencrypt/
|
|
restart: ${RESTART_POLICY}
|
|
|
|
|
|
front:
|
|
image: thecodingmachine/workadventure-front:${VERSION}
|
|
environment:
|
|
- DEBUG_MODE
|
|
- JITSI_URL
|
|
- JITSI_PRIVATE_MODE
|
|
- PUSHER_URL=//${PUSHER_HOST}
|
|
- ICON_URL=//${ICON_HOST}
|
|
- TURN_SERVER
|
|
- TURN_USER
|
|
- TURN_PASSWORD
|
|
- TURN_STATIC_AUTH_SECRET
|
|
- STUN_SERVER
|
|
- START_ROOM_URL
|
|
- SKIP_RENDER_OPTIMIZATIONS
|
|
- MAX_PER_GROUP
|
|
- MAX_USERNAME_LENGTH
|
|
- DISABLE_ANONYMOUS
|
|
- DISABLE_NOTIFICATIONS
|
|
labels:
|
|
- "traefik.http.routers.front.rule=Host(`${FRONT_HOST}`)"
|
|
- "traefik.http.routers.front.entryPoints=web"
|
|
- "traefik.http.services.front.loadbalancer.server.port=80"
|
|
- "traefik.http.routers.front-ssl.rule=Host(`${FRONT_HOST}`)"
|
|
- "traefik.http.routers.front-ssl.entryPoints=websecure"
|
|
- "traefik.http.routers.front-ssl.service=front"
|
|
- "traefik.http.routers.front-ssl.tls=true"
|
|
- "traefik.http.routers.front-ssl.tls.certresolver=myresolver"
|
|
restart: ${RESTART_POLICY}
|
|
|
|
pusher:
|
|
image: thecodingmachine/workadventure-pusher:${VERSION}
|
|
command: yarn run runprod
|
|
environment:
|
|
- SECRET_JITSI_KEY
|
|
- SECRET_KEY
|
|
- API_URL
|
|
- FRONT_URL=https://${FRONT_HOST}
|
|
- JITSI_URL
|
|
- JITSI_ISS
|
|
- DISABLE_ANONYMOUS
|
|
labels:
|
|
- "traefik.http.routers.pusher.rule=Host(`${PUSHER_HOST}`)"
|
|
- "traefik.http.routers.pusher.entryPoints=web"
|
|
- "traefik.http.services.pusher.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.pusher-ssl.rule=Host(`${PUSHER_HOST}`)"
|
|
- "traefik.http.routers.pusher-ssl.entryPoints=websecure"
|
|
- "traefik.http.routers.pusher-ssl.service=pusher"
|
|
- "traefik.http.routers.pusher-ssl.tls=true"
|
|
- "traefik.http.routers.pusher-ssl.tls.certresolver=myresolver"
|
|
restart: ${RESTART_POLICY}
|
|
|
|
back:
|
|
image: thecodingmachine/workadventure-back:${VERSION}
|
|
command: yarn run runprod
|
|
environment:
|
|
- SECRET_JITSI_KEY
|
|
- SECRET_KEY
|
|
- ADMIN_API_TOKEN
|
|
- ADMIN_API_URL
|
|
- TURN_SERVER
|
|
- TURN_USER
|
|
- TURN_PASSWORD
|
|
- TURN_STATIC_AUTH_SECRET
|
|
- STUN_SERVER
|
|
- JITSI_URL
|
|
- JITSI_ISS
|
|
- MAX_PER_GROUP
|
|
- STORE_VARIABLES_FOR_LOCAL_MAPS
|
|
- REDIS_HOST=redis
|
|
labels:
|
|
- "traefik.http.routers.back.rule=Host(`${BACK_HOST}`)"
|
|
- "traefik.http.routers.back.entryPoints=web"
|
|
- "traefik.http.services.back.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.back-ssl.rule=Host(`${BACK_HOST}`)"
|
|
- "traefik.http.routers.back-ssl.entryPoints=websecure"
|
|
- "traefik.http.routers.back-ssl.service=back"
|
|
- "traefik.http.routers.back-ssl.tls=true"
|
|
- "traefik.http.routers.back-ssl.tls.certresolver=myresolver"
|
|
restart: ${RESTART_POLICY}
|
|
|
|
icon:
|
|
image: matthiasluedtke/iconserver:v3.13.0
|
|
labels:
|
|
- "traefik.http.routers.icon.rule=Host(`${ICON_HOST}`)"
|
|
- "traefik.http.routers.icon.entryPoints=web"
|
|
- "traefik.http.services.icon.loadbalancer.server.port=8080"
|
|
- "traefik.http.routers.icon-ssl.rule=Host(`${ICON_HOST}`)"
|
|
- "traefik.http.routers.icon-ssl.entryPoints=websecure"
|
|
- "traefik.http.routers.icon-ssl.service=icon"
|
|
- "traefik.http.routers.icon-ssl.tls=true"
|
|
- "traefik.http.routers.icon-ssl.tls.certresolver=myresolver"
|
|
|
|
redis:
|
|
image: redis:6
|
|
volumes:
|
|
- redisdata:/data
|
|
|
|
volumes:
|
|
redisdata:
|