commit 1ee9450d7ecdcbe5a06965c4f8b8a4624068fc5f Author: Thomas Basler Date: Tue Jan 18 23:08:10 2022 +0100 Initial commit diff --git a/.env b/.env new file mode 100644 index 0000000..f9f5649 --- /dev/null +++ b/.env @@ -0,0 +1,34 @@ +# The base domain +DOMAIN=workadventure.nobody.lan + +DEBUG_MODE=false +JITSI_URL=jitsi.binary-kitchen.de +# 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= +DISABLE_NOTIFICATIONS=true +SKIP_RENDER_OPTIMIZATIONS=false + +# The email address used by Let's encrypt to send renewal warnings (compulsory) +ACME_EMAIL= + +MAX_PER_GROUP=4 +MAX_USERNAME_LENGTH=8 + +OPID_CLIENT_ID= +OPID_CLIENT_SECRET= +OPID_CLIENT_ISSUER= +OPID_CLIENT_REDIRECT_URL= +OPID_LOGIN_SCREEN_PROVIDER=http://pusher.workadventure.nobody.lan/login-screen +OPID_PROFILE_SCREEN_PROVIDER= +DISABLE_ANONYMOUS= + +# If you want to have a contact page in your menu, you MUST set CONTACT_URL to the URL of the page that you want +CONTACT_URL= diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..8aa6701 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,108 @@ +version: "3.5" +services: + front: + image: thecodingmachine/nodejs:14 + environment: + DEBUG_MODE: "$DEBUG_MODE" + JITSI_URL: $JITSI_URL + JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE" + HOST: "0.0.0.0" + NODE_ENV: development + PUSHER_URL: "//pusher.$DOMAIN" + UPLOADER_URL: "//uploader.$DOMAIN" + ICON_URL: "//icon.$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" + DISABLE_NOTIFICATIONS: "$DISABLE_NOTIFICATIONS" + SKIP_RENDER_OPTIMIZATIONS: "$SKIP_RENDER_OPTIMIZATIONS" + # 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: "" + TURN_PASSWORD: "" + START_ROOM_URL: "$START_ROOM_URL" + MAX_PER_GROUP: "$MAX_PER_GROUP" + MAX_USERNAME_LENGTH: "$MAX_USERNAME_LENGTH" + DISABLE_ANONYMOUS: "$DISABLE_ANONYMOUS" + OPID_LOGIN_SCREEN_PROVIDER: "$OPID_LOGIN_SCREEN_PROVIDER" + LIVE_RELOAD: "$LIVE_RELOAD:-true" + command: yarn run build + volumes: + - ./src/front:/usr/src/app + + pusher: + image: thecodingmachine/nodejs:14 + command: yarn run prod + environment: + DEBUG: "socket:*" + STARTUP_COMMAND_1: yarn install + # wait for files generated by "messages" container to exists + STARTUP_COMMAND_2: while [ ! -f /usr/src/app/src/Messages/generated/messages_pb.js ]; do sleep 1; done + 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 + FRONT_URL: "https://play.$DOMAIN" + 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 + DISABLE_ANONYMOUS: $DISABLE_ANONYMOUS + volumes: + - ./src/pusher:/usr/src/app + ports: + - "127.0.0.1:8002:8080" + + back: + image: thecodingmachine/nodejs:12 + command: yarn run runprod + environment: + DEBUG: "*" + STARTUP_COMMAND_1: yarn install + # wait for files generated by "messages" container to exists + STARTUP_COMMAND_2: while [ ! -f /usr/src/app/src/Messages/generated/messages_pb.js ]; do sleep 1; done + 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 + TURN_STATIC_AUTH_SECRET: SomeStaticAuthSecret + MAX_PER_GROUP: "MAX_PER_GROUP" + #REDIS_HOST: "localhost" + NODE_ENV: production + STORE_VARIABLES_FOR_LOCAL_MAPS: "true" + volumes: + - ./src/back:/usr/src/app + + uploader: + image: thecodingmachine/nodejs:12 + command: yarn run prod + environment: + DEBUG: "*" + STARTUP_COMMAND_1: yarn install + volumes: + - ./src/uploader:/usr/src/app + ports: + - "127.0.0.1:8005:8080" + + messages: + 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: + - ./src/messages:/usr/src/app + - ./src/back:/usr/src/back + - ./src/front:/usr/src/front + - ./src/pusher:/usr/src/pusher + + icon: + image: matthiasluedtke/iconserver:v3.13.0 + ports: + - "127.0.0.1:8006:8080"