#!/bin/bash # postinst script for jitsi-meet-tokens # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -f "/etc/jitsi/videobridge/config" ] ; then . /etc/jitsi/videobridge/config fi if [ -f "/etc/jitsi/jicofo/config" ] ; then . /etc/jitsi/jicofo/config fi # loading debconf . /usr/share/debconf/confmodule db_get jitsi-meet-tokens/appid if [ "$RET" = "false" ] ; then echo "Application ID is mandatory" exit 1 fi APP_ID=$RET db_get jitsi-meet-tokens/appsecret if [ "$RET" = "false" ] ; then echo "Application secret is mandatory" fi APP_SECRET=$RET # We can adjust Prosody config only if there is Jvb or Jicofo domain configured PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua" if [ ! -f "$PROSODY_HOST_CONFIG" ] ; then PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JICOFO_HOSTNAME.cfg.lua" fi # Store config filename for purge db_set jitsi-meet-prosody/prosody_config $PROSODY_HOST_CONFIG db_stop if [ -f "$PROSODY_HOST_CONFIG" ] ; then if grep -q "plugin_paths" "$PROSODY_HOST_CONFIG"; then # enable tokens in prosody host config sed -i 's/--plugin_paths/plugin_paths/g' $PROSODY_HOST_CONFIG sed -i 's/authentication = "anonymous"/authentication = "token"/g' $PROSODY_HOST_CONFIG sed -i 's/ --allow_unencrypted_plain_auth/ allow_unencrypted_plain_auth/g' $PROSODY_HOST_CONFIG sed -i "s/ --app_id=\"example_app_id\"/ app_id=\"$APP_ID\"/g" $PROSODY_HOST_CONFIG sed -i "s/ --app_secret=\"example_app_secret\"/ app_secret=\"$APP_SECRET\"/g" $PROSODY_HOST_CONFIG sed -i 's/ --modules_enabled = { "token_verification" }/ modules_enabled = { "token_verification" }/g' $PROSODY_HOST_CONFIG # Install luajwt if ! luarocks install luajwtjitsi; then echo "Failed to install luajwtjitsi - try installing it manually" fi if [ -x "/etc/init.d/prosody" ]; then invoke-rc.d prosody restart fi echo "This package requires BOSH Prosody module to be patched !" echo "Use the following command, after this package has been installed and" echo "after every prosody-trunk upgrade:" echo "sudo patch -N /usr/lib/prosody/modules/mod_bosh.lua /usr/share/jitsi-meet/prosody-plugins/mod_bosh.lua.patch" else echo "Failed apply auto-config to $PROSODY_HOST_CONFIG which most likely comes from not supported version of jitsi-meet" fi else echo "Prosody config not found at $PROSODY_HOST_CONFIG - unable to auto-configure token authentication" fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0