diff --git a/type/__jitsi_meet/manifest b/type/__jitsi_meet/manifest index 6a9d962..0b728c7 100755 --- a/type/__jitsi_meet/manifest +++ b/type/__jitsi_meet/manifest @@ -262,3 +262,46 @@ EOF fi fi # TODO: disable the exporter if it is deployed and then admin changes their mind + +# +# Setup interpreter assets if requested +# See: https://gitlab.com/mfmt/jsi/ +# +jsi_updated_on="2022-04-21" +__link "/usr/share/jitsi-meet/interpreters.html" \ + --type symbolic \ + --source "/opt/jsi/static/index.html.sample" +__directory /opt/jsi --mode 0755 +export require="__directory/opt/jsi" +__download /opt/jsi/jsi.tar.gz \ + --url 'https://gitlab.com/mfmt/jsi/-/archive/1d2cceaf615ee61c0bba80e5bddc61c5d1018303/jsi-1d2cceaf615ee61c0bba80e5bddc61c5d1018303.tar.gz' \ + --sum "sha256:b020141093daa9937507b098f358d0be994834c3e23866a457fc5140415a0c53" +export require="__download/opt/jsi/jsi.tar.gz" +__unpack /opt/jsi/jsi.tar.gz \ + --preserve-archive \ + --tar-strip 1 \ + --destination /opt/jsi/static \ + --onchange "$(cat <]*(/external_api.js).!src='\1'!" \ + -e "s!

[^<]*

!

Jitsi Meetings with interpreter

!" \ + -e "s!https://meet.mayfirst.org!/!" \ + -e "s!(style.css|jsi.js)([^?])!\1?v=${jsi_updated_on:?}\2!" \ + /opt/jsi/static/index.html.sample +EOF +)" diff --git a/type/__jitsi_meet_domain/files/nginx.sh b/type/__jitsi_meet_domain/files/nginx.sh index ad1b41a..64467d9 100644 --- a/type/__jitsi_meet_domain/files/nginx.sh +++ b/type/__jitsi_meet_domain/files/nginx.sh @@ -102,6 +102,21 @@ server { expires 1y; } } + # Paths for jsi / interpreters + location ~ ^/i/(img/[^./]*.png|jsi.js|style.css)$ + { + add_header 'Access-Control-Allow-Origin' '*'; + alias /opt/jsi/static/\$1; + + # cache all versioned files + if (\$arg_v) { + expires 1y; + } + } + location ~ ^/i/ + { + try_files /${DOMAIN}-interpreters.html /interpreters.html \$uri; + } # BOSH location = /http-bind { diff --git a/type/__jitsi_meet_domain/man.rst b/type/__jitsi_meet_domain/man.rst index 0bef146..97d670b 100644 --- a/type/__jitsi_meet_domain/man.rst +++ b/type/__jitsi_meet_domain/man.rst @@ -11,7 +11,13 @@ DESCRIPTION ----------- This type installs and configures the frontend for Jitsi-Meet. -This supports "multi-domain" installations. +Additionally to regular Jitsi-Meet, users can load `DOMAIN/i/` and +`DOMAIN/i/ROOM` for an interpreter-enabled interface; this is done with a +patched version of Jitsi Simultaneous Interpretation (jsi; see references). +At least a user with `interpreter` in their name must be present. + + +This type supports "multi-domain" installations. New in April 2022: rooms are independent for each domain, that is: https://jitsi1.example.org/room1 and https://jitsi2.example.org/room1 are @@ -156,6 +162,7 @@ SEE ALSO -------- - `__jitsi_meet(7)` - `__jitsi_meet_user(7)` +- Jitsi Meet Simultaneous Interpretation: https://gitlab.com/mfmt/jsi AUTHORS