partey_workadventure/docker-compose.prod.yaml

141 lines
4.9 KiB
YAML

version: "3.3"
services:
reverse-proxy:
image: traefik:v2.5.2
command:
- --log.level=WARN
- --providers.docker
- --entryPoints.web.address=:80
ports:
- "9999:80"
depends_on:
- pusher
- front
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: ${RESTART_POLICY}
front:
build:
context: ./
dockerfile: front/Dockerfile
environment:
DEBUG_MODE: "$DEBUG_MODE"
START_ROOM_URL: "${START_ROOM_URL}"
PUSHER_URL: /pusher
ADMIN_URL: /admin
UPLOADER_URL: /uploader
ICON_URL: /icon
STUN_SERVER: "$STUN_SERVER"
TURN_SERVER: "${TURN_SERVER}"
SKIP_RENDER_OPTIMIZATIONS: "${SKIP_RENDER_OPTIMIZATIONS}"
DISABLE_NOTIFICATIONS: "${DISABLE_NOTIFICATIONS}"
TURN_USER: "${TURN_USER}"
TURN_PASSWORD: "${TURN_PASSWORD}"
JITSI_URL: $JITSI_URL
JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE"
MAX_USERNAME_LENGTH: "${MAX_USERNAME_LENGTH}"
MAX_PER_GROUP: "${MAX_PER_GROUP}"
DISPLAY_TERMS_OF_USE: "$DISPLAY_TERMS_OF_USE"
CONTACT_URL: "${CONTACT_URL}"
PROFILE_URL: "${PROFILE_URL}"
DISABLE_ANONYMOUS: "$DISABLE_ANONYMOUS"
OPID_LOGIN_SCREEN_PROVIDER: "$OPID_LOGIN_SCREEN_PROVIDER"
FALLBACK_LOCALE: "${FALLBACK_LOCALE}"
labels:
- "traefik.http.routers.front.rule=PathPrefix(`/`)"
- "traefik.http.routers.front.entryPoints=web"
- "traefik.http.services.front.loadbalancer.server.port=80"
- "traefik.http.routers.front.service=front"
restart: ${RESTART_POLICY}
pusher:
build:
context: ./
dockerfile: pusher/Dockerfile
environment:
SECRET_KEY: ${SECRET_KEY}
ALLOW_ARTILLERY: "$ALLOW_ARTILLERY"
API_URL: back:50051
ADMIN_API_URL: "${ADMIN_API_URL}"
ADMIN_URL: "${ADMIN_URL}"
ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}"
ADMIN_SOCKETS_TOKEN: "${ADMIN_SOCKETS_TOKEN}"
CPU_OVERHEAT_THRESHOLD: $CPU_OVERHEAT_THRESHOLD
JITSI_URL: ${JITSI_URL}
JITSI_ISS: ${JITSI_ISS}
SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}"
PUSHER_HTTP_PORT: "$PUSHER_HTTP_PORT"
SOCKET_IDLE_TIMER: "$SOCKET_IDLE_TIMER"
PUSHER_FORCE_ROOM_UPDATE : $PUSHER_FORCE_ROOM_UPDATE
FRONT_URL : $FRONT_URL
OPID_CLIENT_ID: $OPID_CLIENT_ID
OPID_CLIENT_SECRET: $OPID_CLIENT_SECRET
OPID_CLIENT_ISSUER: $OPID_CLIENT_ISSUER
OPID_CLIENT_REDIRECT_URL: $OPID_CLIENT_REDIRECT_URL
OPID_PROFILE_SCREEN_PROVIDER: $OPID_PROFILE_SCREEN_PROVIDER
OPID_SCOPE: $OPID_SCOPE
OPID_USERNAME_CLAIM: $OPID_USERNAME_CLAIM
OPID_LOCALE_CLAIM: $OPID_LOCALE_CLAIM
DISABLE_ANONYMOUS: $DISABLE_ANONYMOUS
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.service=pusher"
restart: ${RESTART_POLICY}
back:
build:
context: ./
dockerfile: back/Dockerfile
environment:
MINIMUM_DISTANCE: $MINIMUM_DISTANCE
GROUP_RADIUS: $GROUP_RADIUS
ALLOW_ARTILLERY: "$ALLOW_ARTILLERY"
ADMIN_API_URL: "${ADMIN_API_URL}"
ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}"
CPU_OVERHEAT_THRESHOLD: $CPU_OVERHEAT_THRESHOLD
JITSI_URL: ${JITSI_URL}
JITSI_ISS: ${JITSI_ISS}
SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}"
HTTP_PORT: "$HTTP_PORT"
GRPC_PORT: "$GRPC_PORT"
TURN_STATIC_AUTH_SECRET: "${TURN_STATIC_AUTH_SECRET}"
MAX_PER_GROUP: ${MAX_PER_GROUP}
REDIS_HOST: redis
REDIS_PORT: "$REDIS_PORT"
REDIS_PASSWORD: $REDIS_PASSWORD
STORE_VARIABLES_FOR_LOCAL_MAPS: "$STORE_VARIABLES_FOR_LOCAL_MAPS"
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.service=back"
restart: ${RESTART_POLICY}
redis:
image: redis:6
restart: ${RESTART_POLICY}
icon:
image: matthiasluedtke/iconserver:v3.13.0
environment:
DISABLE_BROWSE_PAGES: "true"
METRICS_PATH: "disable"
SERVER_MODE: "download"
labels:
- "traefik.http.middlewares.strip-icon-prefix.stripprefix.prefixes=/icon"
- "traefik.http.routers.icon.rule=PathPrefix(`/icon`)"
- "traefik.http.routers.icon.middlewares=strip-icon-prefix@docker"
- "traefik.http.routers.icon.entryPoints=web"
- "traefik.http.services.icon.loadbalancer.server.port=8080"
- "traefik.http.routers.icon.service=icon"
restart: ${RESTART_POLICY}