workadventure/contrib/docker/docker-compose.prod.yaml

129 lines
4.5 KiB
YAML
Raw Normal View History

2022-02-09 14:11:28 +01:00
version: "3.5"
services:
reverse-proxy:
2022-02-09 14:11:28 +01:00
image: traefik:v2.6
command:
2022-02-09 14:11:28 +01:00
- --log.level=${LOG_LEVEL}
- --providers.docker
2022-02-09 14:11:28 +01:00
# Entry points
- --entryPoints.web.address=:${HTTP_PORT}
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https
2022-02-09 14:11:28 +01:00
- --entryPoints.websecure.address=:${HTTPS_PORT}
# HTTP challenge
2021-02-19 23:10:48 +01:00
- --certificatesresolvers.myresolver.acme.email=${ACME_EMAIL}
- --certificatesresolvers.myresolver.acme.storage=/acme.json
- --certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web
2022-02-09 14:11:28 +01:00
# 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:
2022-02-09 14:11:28 +01:00
- "${HTTP_PORT}:80"
- "${HTTPS_PORT}:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
2022-02-09 14:11:28 +01:00
- ${DATA_DIR}/letsencrypt/acme.json:/acme.json
restart: ${RESTART_POLICY}
front:
2021-02-02 11:34:29 +01:00
build:
context: ../..
2021-02-02 11:34:29 +01:00
dockerfile: front/Dockerfile
2022-02-09 14:11:28 +01:00
#image: thecodingmachine/workadventure-front:${VERSION}
environment:
2022-02-09 14:11:28 +01:00
- 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:
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.front.rule=Host(`${FRONT_HOST}`)"
- "traefik.http.routers.front.entryPoints=web"
- "traefik.http.services.front.loadbalancer.server.port=80"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.front-ssl.rule=Host(`${FRONT_HOST}`)"
- "traefik.http.routers.front-ssl.entryPoints=websecure"
- "traefik.http.routers.front-ssl.service=front"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.front-ssl.tls=true"
- "traefik.http.routers.front-ssl.tls.certresolver=myresolver"
2022-02-09 14:11:28 +01:00
restart: ${RESTART_POLICY}
pusher:
2021-02-02 11:34:29 +01:00
build:
context: ../..
2021-02-02 11:34:29 +01:00
dockerfile: pusher/Dockerfile
2022-02-09 14:11:28 +01:00
#image: thecodingmachine/workadventure-pusher:${VERSION}
command: yarn run runprod
environment:
2022-02-09 14:11:28 +01:00
- SECRET_JITSI_KEY
- SECRET_KEY
- API_URL
- FRONT_URL=https://${FRONT_HOST}
- JITSI_URL
- JITSI_ISS
- DISABLE_ANONYMOUS
labels:
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.pusher.rule=Host(`${PUSHER_HOST}`)"
- "traefik.http.routers.pusher.entryPoints=web"
- "traefik.http.services.pusher.loadbalancer.server.port=8080"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.pusher-ssl.rule=Host(${PUSHER_HOST}`)"
- "traefik.http.routers.pusher-ssl.entryPoints=websecure"
- "traefik.http.routers.pusher-ssl.service=pusher"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.pusher-ssl.tls=true"
- "traefik.http.routers.pusher-ssl.tls.certresolver=myresolver"
2022-02-09 14:11:28 +01:00
restart: ${RESTART_POLICY}
back:
2021-02-02 11:34:29 +01:00
build:
context: ../..
2021-02-02 11:34:29 +01:00
dockerfile: back/Dockerfile
2022-02-09 14:11:28 +01:00
#image: thecodingmachine/workadventure-back:${VERSION}
command: yarn run runprod
environment:
2022-02-09 14:11:28 +01:00
- 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
labels:
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.back.rule=Host(`${BACK_HOST}`)"
- "traefik.http.routers.back.entryPoints=web"
- "traefik.http.services.back.loadbalancer.server.port=8080"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.back-ssl.rule=Host(`${BACK_HOST}`)"
- "traefik.http.routers.back-ssl.entryPoints=websecure"
- "traefik.http.routers.back-ssl.service=back"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.back-ssl.tls=true"
- "traefik.http.routers.back-ssl.tls.certresolver=myresolver"
2022-02-09 14:11:28 +01:00
restart: ${RESTART_POLICY}
icon:
image: matthiasluedtke/iconserver:v3.13.0
labels:
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.icon.rule=Host(`${ICON_HOST}`)"
- "traefik.http.routers.icon.entryPoints=web,traefik"
- "traefik.http.services.icon.loadbalancer.server.port=8080"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.icon-ssl.rule=Host(`${ICON_HOST}`)"
- "traefik.http.routers.icon-ssl.entryPoints=websecure"
- "traefik.http.routers.icon-ssl.service=icon"
2022-02-09 14:11:28 +01:00
- "traefik.http.routers.icon-ssl.tls=true"
- "traefik.http.routers.icon-ssl.tls.certresolver=myresolver"