From 2ad0f98f4ae1b6f40f64954fb8209b15cfbaaa41 Mon Sep 17 00:00:00 2001 From: _Bastler <_Bastler@bstly.de> Date: Mon, 23 Aug 2021 08:22:13 +0200 Subject: [PATCH] update readme --- .gitignore | 1 + README.md | 6 +- .../docker-compose.single-domain.prod.yaml | 89 +++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 contrib/docker/docker-compose.single-domain.prod.yaml diff --git a/.gitignore b/.gitignore index fdd86378..0098f157 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .env .idea .vagrant +.vscode Vagrantfile docker-compose.override.yaml docker-compose.prod.yaml diff --git a/README.md b/README.md index 322f06ba..aa3b98e5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![](https://github.com/thecodingmachine/workadventure/workflows/Continuous%20Integration/badge.svg) [![Discord](https://img.shields.io/discord/821338762134290432?label=Discord)](https://discord.gg/YGtngdh9gt) +> # This is a fork of [Work Adventure](https://github.com/thecodingmachine/workadventure) with small adjustment and changes for production environment for Bastelei e. V. Partey ![WorkAdventure landscape image](README-INTRO.jpg) @@ -102,5 +102,7 @@ Vagrant destroy ## Setting up a production environment +> The production environment of Partey is based on a single-domain deployment with some changed, minimized *Dockerfile*s based on the fork [workadventure-xce](https://github.com/workadventure-xce/workadventure-xce). An example can be found in [contrib/docker/docker-compose.single-domain.prod.yaml](/contrib/docker/docker-compose.single-domain.prod.yaml). To create a non-single-domain based environment, please adopt settings from the below *Work Adventure* provided file yourself. The changed *Dockerfile*s won't work directly with the file below! + The way you set up your production environment will highly depend on your servers. -We provide a production ready `docker-compose` file that you can use as a good starting point in the [contrib/docker](https://github.com/thecodingmachine/workadventure/tree/master/contrib/docker) directory. +We provide a production ready `docker-compose` file that you can use as a good starting point in the [contrib/docker](https://github.com/thecodingmachine/workadventure/tree/master/contrib/docker) director \ No newline at end of file diff --git a/contrib/docker/docker-compose.single-domain.prod.yaml b/contrib/docker/docker-compose.single-domain.prod.yaml new file mode 100644 index 00000000..c820d92e --- /dev/null +++ b/contrib/docker/docker-compose.single-domain.prod.yaml @@ -0,0 +1,89 @@ +version: "3.3" +services: + reverse-proxy: + image: traefik:v2.5 + command: + - --log.level=WARN + - --providers.docker + - --entryPoints.web.address=:80 + ports: + - "9999:80" # port is used to proxy through apache with ssl + depends_on: + - pusher + - front + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + front: + build: + context: ./ + dockerfile: front/Dockerfile + args: + DEBUG_MODE: "$DEBUG_MODE" + JITSI_URL: $JITSI_URL + JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE" + PUSHER_URL: /pusher + ADMIN_URL: /admin # this is only set to avoid compiling errors, currently not used otherways + TURN_SERVER: "${TURN_SERVER}" + TURN_USER: "${TURN_USER}" + TURN_PASSWORD: "${TURN_PASSWORD}" + MAX_PER_GROUP: "${MAX_PER_GROUP}" + MAX_USERNAME_LENGTH: "${MAX_USERNAME_LENGTH}" + START_ROOM_URL: "${START_ROOM_URL}" + DISABLE_NOTIFICATIONS: "${DISABLE_NOTIFICATIONS}" + SKIP_RENDER_OPTIMIZATIONS: "${SKIP_RENDER_OPTIMIZATIONS}" + 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" + + pusher: + build: + context: ./ + dockerfile: pusher/Dockerfile + environment: + SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" + SECRET_KEY: ${SECRET_KEY} + API_URL: back:50051 + ADMIN_API_URL: "${ADMIN_API_URL}" + ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" + JITSI_URL: ${JITSI_URL} + JITSI_ISS: ${JITSI_ISS} + FRONT_URL : ${FRONT_URL} + OPID_CLIENT_ID: ${OPID_CLIENT_ID} + OPID_CLIENT_SECRET: ${OPID_CLIENT_SECRET} + OPID_CLIENT_ISSUER: ${OPID_CLIENT_ISSUER} + 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" + + back: + build: + context: ./ + dockerfile: back/Dockerfile + environment: + SECRET_KEY: ${SECRET_KEY} + STARTUP_COMMAND_1: yarn install + SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" + ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" + ADMIN_API_URL: "${ADMIN_API_URL}" + JITSI_URL: ${JITSI_URL} + JITSI_ISS: ${JITSI_ISS} + MAX_PER_GROUP: ${MAX_PER_GROUP} + TURN_STATIC_AUTH_SECRET: "${TURN_STATIC_AUTH_SECRET}" + REDIS_HOST: redis + 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" + + redis: + image: redis:6 \ No newline at end of file