WIP: more work on packaging

This commit is contained in:
3wc 2021-04-27 20:16:05 +02:00
parent 9395f2eed4
commit 640be61c68
5 changed files with 87 additions and 26 deletions

View File

@ -4,3 +4,18 @@ DOMAIN=workadventure.example.com
## Domain aliases ## Domain aliases
#EXTRA_DOMAINS=', `www.workadventure.example.com`' #EXTRA_DOMAINS=', `www.workadventure.example.com`'
LETS_ENCRYPT_ENV=production LETS_ENCRYPT_ENV=production
DEBUG_MODE=true
JITSI_URL=meet.jit.si
# 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=
# URL of the TURN server (needed to "punch a hole" through some networks for P2P connections)
TURN_SERVER=
TURN_USER=
TURN_PASSWORD=
# The URL used by default, in the form: "/_/global/map/url.json"
START_ROOM_URL=/_/global/maps.workadventu.re/Floor0/floor0.json

View File

@ -3,14 +3,14 @@
A collaborative web application (virtual office) presented as a 16-bit RPG video game • https://github.com/thecodingmachine/workadventure A collaborative web application (virtual office) presented as a 16-bit RPG video game • https://github.com/thecodingmachine/workadventure
<!-- metadata --> <!-- metadata -->
* **Category**: * **Category**: Apps
* **Status**: * **Status**: ❹💣
* **Image**: [`workadventure`](https://hub.docker.com/r/workadventure/workadventure) * **Image**: [`thecodingmachine/workadventure*`](https://hub.docker.com/r/thecodingmachine/)
* **Healthcheck**: * **Healthcheck**: No
* **Backups**: * **Backups**: No
* **Email**: * **Email**: No
* **Tests**: * **Tests**: No
* **SSO**: * **SSO**: No
<!-- endmetadata --> <!-- endmetadata -->
## Basic usage ## Basic usage

1
abra.sh Normal file
View File

@ -0,0 +1 @@
export CERTDUMPER_POST_VERSION=v1

6
certdumper_post.sh Normal file
View File

@ -0,0 +1,6 @@
#!/bin/sh
cd /output || exit
# shellcheck disable=SC2010
ls | grep -v private | grep -v "$DOMAIN" | xargs -r rm -r

View File

@ -1,31 +1,70 @@
---
version: "3.8" version: "3.8"
services: services:
app: app:
image: nginx:1.19.2 image: thecodingmachine/workadventure-front:v1.3.0
networks: networks:
- proxy - proxy
environment:
DEBUG_MODE: "$DEBUG_MODE"
JITSI_URL: $JITSI_URL
JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE"
API_URL: "pusher.${DOMAIN}"
TURN_SERVER: "${TURN_SERVER}"
TURN_USER: "${TURN_USER}"
TURN_PASSWORD: "${TURN_PASSWORD}"
START_ROOM_URL: "${START_ROOM_URL}"
deploy: deploy:
restart_policy: restart_policy:
condition: on-failure condition: on-failure
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80" - "traefik.http.services.${STACK_NAME}-app.loadbalancer.server.port=80"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" - "traefik.http.routers.${STACK_NAME}-app.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}-app.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}-app.tls.certresolver=${LETS_ENCRYPT_ENV}"
## Redirect from EXTRA_DOMAINS to DOMAIN - coop-cloud.${STACK_NAME}.app.version=master-ffce89aa
#- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" pusher:
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" image: thecodingmachine/workadventure-pusher:master
#- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" command: yarn run runprod
healthcheck: networks:
test: ["CMD", "curl", "-f", "http://localhost"] - proxy
interval: 30s environment:
timeout: 10s SECRET_JITSI_KEY: "$SECRET_JITSI_KEY"
retries: 10 SECRET_KEY: yourSecretKey
start_period: 1m API_URL: back:50051
JITSI_URL: $JITSI_URL
JITSI_ISS: $JITSI_ISS
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}-pusher.loadbalancer.server.port=8080"
- "traefik.http.routers.${STACK_NAME}-pusher.rule=Host(`pusher.${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}-pusher.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}-pusher.tls.certresolver=${LETS_ENCRYPT_ENV}"
- coop-cloud.${STACK_NAME}.pusher.version=master-b64e57f5
back:
image: thecodingmachine/workadventure-back:v1.3.0
command: yarn run runprod
networks:
- proxy
environment:
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
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}-back.loadbalancer.server.port=8080"
- "traefik.http.routers.${STACK_NAME}-back.rule=Host(`api.${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}-back.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}-back.tls.certresolver=${LETS_ENCRYPT_ENV}"
- coop-cloud.${STACK_NAME}.back.version=master-bfadc487
networks: networks:
proxy: proxy:
external: true external: true