Dies ist eine alte Version des Dokuments!
Workadventure
Maps Howto
Eine Anleitung zum Erstellen von Maps ist hier zu finden.
Aktuelles Setup
Unsere aktuell laufende Version mit allen möglichen Patches ist hier zu finden: https://git.binary-kitchen.de/noby/workadventure
Der Source liegt unter /opt/workadventure/source
Es gibt einen User „workadventure“ dessen Home-Directory /opt/workadventure ist.
Außerdem läuft ein Nginx Webserver. Die Config workadventure Datei ist hier zu sehen:
server { listen 80; listen [::]:80; server_name wa.binary-kitchen.de play.wa.binary-kitchen.de pusher.wa.binary-kitchen.de uploader.wa.binary-kitchen.de; location /.well-known/acme-challenge { default_type "text/plain"; alias /var/www/acme-challenge; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name wa.binary-kitchen.de; ssl_certificate_key /etc/nginx/ssl/wa.binary-kitchen.de.key; ssl_certificate /etc/nginx/ssl/wa.binary-kitchen.de.crt; location / { #return 302 https://play.wa.binary-kitchen.de/_/global/raw.githubusercontent.com/Binary-Kitchen/rc3.world/master/main.json; root /opt/workadventure/source/landing/dist; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name play.wa.binary-kitchen.de; ssl_certificate_key /etc/nginx/ssl/wa.binary-kitchen.de.key; ssl_certificate /etc/nginx/ssl/wa.binary-kitchen.de.crt; location / { root /opt/workadventure/source/front/dist; try_files $uri uri/ /index.html?$args; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name pusher.wa.binary-kitchen.de; ssl_certificate_key /etc/nginx/ssl/wa.binary-kitchen.de.key; ssl_certificate /etc/nginx/ssl/wa.binary-kitchen.de.crt; location / { proxy_pass http://localhost:8002; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name uploader.wa.binary-kitchen.de; ssl_certificate_key /etc/nginx/ssl/wa.binary-kitchen.de.key; ssl_certificate /etc/nginx/ssl/wa.binary-kitchen.de.crt; location / { proxy_pass http://localhost:8005; } }
Hier kann entweder direkt ein Zertifikat angegeben werden oder einfach eines via Letsencrypt bezogen werden.
Die Datei docker-compose.mm.yml (folgend) befindet sich im source Verzeichnis.
version: "3"
services:
# the frontend is only built here - it is served directly via nginx
front:
image: thecodingmachine/nodejs:14
environment:
DEBUG_MODE: "$DEBUG_MODE"
JITSI_URL: "$JITSI_URL"
JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE"
NODE_ENV: development
API_URL: "pusher.$DOMAIN"
UPLOADER_URL: "uploader.$DOMAIN"
STARTUP_COMMAND_1: ./templater.sh
STARTUP_COMMAND_2: yarn install
STUN_SERVER: "stun:stun.l.google.com:19302"
TURN_SERVER: "turn:coturn.workadventu.re:443,turns:coturn.workadventu.re:443"
# 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: workadventure
TURN_PASSWORD: WorkAdventure123
START_ROOM_URL: "$START_ROOM_URL"
command: yarn run build
volumes:
- ./front:/usr/src/app
pusher:
image: thecodingmachine/nodejs:12
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"
command: yarn run prod
ports:
- "127.0.0.1:8002:8080"
volumes:
- ./pusher:/usr/src/app
back:
image: thecodingmachine/nodejs:12
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"
command: yarn run prod
volumes:
- ./back:/usr/src/app
uploader:
image: thecodingmachine/nodejs:12
environment:
DEBUG: "*"
STARTUP_COMMAND_1: yarn install
command: yarn run prod
ports:
- "127.0.0.1:8005:8080"
volumes:
- ./uploader:/usr/src/app
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
Die .env Datei (muss angepasst werden) liegt dann ebenfalls im source Verzeichnis:
DEBUG_MODE=false DOMAIN=wa.binary-kitchen.de JITSI_URL=<<<<insert jitsi server here>>>> # If your Jitsi environment has authentication set up, you MUST set JITSI_PRIVATE_MODE to "true" and you MUST pass a SECRET_JITSI_KEY to generate the JWT secret JITSI_PRIVATE_MODE=false JITSI_ISS= SECRET_JITSI_KEY= ADMIN_API_TOKEN=123 START_ROOM_URL=/_/global/raw.githubusercontent.com/Binary-Kitchen/rc3.world/master/main.json # If your Turn server is configured to use the Turn REST API, you should put the shared auth secret here. # If you are using Coturn, this is the value of the "static-auth-secret" parameter in your coturn config file. # Keep empty if you are sharing hard coded / clear text credentials. TURN_STATIC_AUTH_SECRET= # The email address used by Let's encrypt to send renewal warnings (compulsory) ACME_EMAIL=
Gestartet wird den Server aktuell von Hand ohne Systemd Script (nicht schön aber tut)
$ su – workadventure $ docker-compose -f docker-compose.mm.yml up –d
Zusätzlich zu dem workadventure Server benötigt man aber ggf. auch noch eine Jitsi Instanz wenn man mit mehr als 4 Personen gleichzeitig sprechen will (Diese wird bei uns z.B. bei den Tischen geöffnet)