You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

jitsi-meet-turnserver.postinst 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #!/bin/bash
  2. # postinst script for jitsi-meet-turnserver
  3. #
  4. # see: dh_installdeb(1)
  5. set -e
  6. # summary of how this script can be called:
  7. # * <postinst> `configure' <most-recently-configured-version>
  8. # * <old-postinst> `abort-upgrade' <new version>
  9. # * <conflictor's-postinst> `abort-remove' `in-favour' <package>
  10. # <new-version>
  11. # * <postinst> `abort-remove'
  12. # * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
  13. # <failed-install-package> <version> `removing'
  14. # <conflicting-package> <version>
  15. # for details, see http://www.debian.org/doc/debian-policy/ or
  16. # the debian-policy package
  17. case "$1" in
  18. configure)
  19. # loading debconf
  20. . /usr/share/debconf/confmodule
  21. # try to get host from jitsi-videobridge
  22. db_get jitsi-videobridge/jvb-hostname
  23. if [ -z "$RET" ] ; then
  24. # server hostname
  25. db_set jitsi-videobridge/jvb-hostname "localhost"
  26. db_input critical jitsi-videobridge/jvb-hostname || true
  27. db_go
  28. fi
  29. JVB_HOSTNAME=$(echo "$RET" | xargs echo -n)
  30. TURN_CONFIG="/etc/turnserver.conf"
  31. NGINX_CONFIG="/etc/nginx/sites-available/$JVB_HOSTNAME.conf"
  32. JITSI_MEET_CONFIG="/etc/jitsi/meet/$JVB_HOSTNAME-config.js"
  33. # if there was a turn config backup it so we can configure
  34. # we cannot recognize at the moment is this a user config or default config when installing coturn
  35. if [[ -f $TURN_CONFIG ]] && ! grep -q "jitsi-meet coturn config" "$TURN_CONFIG" ; then
  36. mv $TURN_CONFIG $TURN_CONFIG.bak
  37. fi
  38. # detect dpkg-reconfigure, just delete old links
  39. db_get jitsi-meet-turnserver/jvb-hostname
  40. JVB_HOSTNAME_OLD=$(echo "$RET" | xargs echo -n)
  41. if [ -n "$RET" ] && [ ! "$JVB_HOSTNAME_OLD" = "$JVB_HOSTNAME" ] ; then
  42. if [[ -f $TURN_CONFIG ]] && grep -q "jitsi-meet coturn config" "$TURN_CONFIG" ; then
  43. rm -f $TURN_CONFIG
  44. fi
  45. fi
  46. # this detect only old installations with no nginx
  47. db_get jitsi-meet/jvb-serve || true
  48. if [ ! -f $NGINX_CONFIG -o "$RET" = "true" ] ; then
  49. # nothing to do
  50. echo "------------------------------------------------"
  51. echo ""
  52. echo "turnserver not configured"
  53. echo ""
  54. echo "------------------------------------------------"
  55. db_stop
  56. exit 0
  57. fi
  58. if [[ -f $TURN_CONFIG ]] ; then
  59. echo "------------------------------------------------"
  60. echo ""
  61. echo "turnserver is already configured on this machine."
  62. echo ""
  63. echo "------------------------------------------------"
  64. if grep -q "jitsi-meet coturn config" "$TURN_CONFIG" && ! grep -q "jitsi-meet coturn relay disable config" "$TURN_CONFIG" ; then
  65. echo "Updating coturn config"
  66. echo "# jitsi-meet coturn relay disable config. Do not modify this line
  67. no-multicast-peers
  68. no-cli
  69. no-loopback-peers
  70. no-tcp-relay
  71. denied-peer-ip=0.0.0.0-0.255.255.255
  72. denied-peer-ip=10.0.0.0-10.255.255.255
  73. denied-peer-ip=100.64.0.0-100.127.255.255
  74. denied-peer-ip=127.0.0.0-127.255.255.255
  75. denied-peer-ip=169.254.0.0-169.254.255.255
  76. denied-peer-ip=127.0.0.0-127.255.255.255
  77. denied-peer-ip=172.16.0.0-172.31.255.255
  78. denied-peer-ip=192.0.0.0-192.0.0.255
  79. denied-peer-ip=192.0.2.0-192.0.2.255
  80. denied-peer-ip=192.88.99.0-192.88.99.255
  81. denied-peer-ip=192.168.0.0-192.168.255.255
  82. denied-peer-ip=198.18.0.0-198.19.255.255
  83. denied-peer-ip=198.51.100.0-198.51.100.255
  84. denied-peer-ip=203.0.113.0-203.0.113.255
  85. denied-peer-ip=240.0.0.0-255.255.255.255" >> $TURN_CONFIG
  86. invoke-rc.d coturn restart || true
  87. fi
  88. db_stop
  89. exit 0
  90. fi
  91. # stores the hostname so we will reuse it later, like in purge
  92. db_set jitsi-meet-turnserver/jvb-hostname "$JVB_HOSTNAME"
  93. # try to get turnserver password
  94. db_get jitsi-meet-prosody/turn-secret
  95. if [ -z "$RET" ] ; then
  96. db_input critical jitsi-meet-prosody/turn-secret || true
  97. db_go
  98. fi
  99. TURN_SECRET="$RET"
  100. # no turn config exists, lt's copy template and fill it in
  101. cp /usr/share/jitsi-meet-turnserver/turnserver.conf $TURN_CONFIG
  102. sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" $TURN_CONFIG
  103. sed -i "s/__turnSecret__/$TURN_SECRET/g" $TURN_CONFIG
  104. # SSL for nginx
  105. db_get jitsi-meet/cert-choice
  106. CERT_CHOICE="$RET"
  107. if [ "$CERT_CHOICE" = "I want to use my own certificate" ] ; then
  108. db_get jitsi-meet/cert-path-key
  109. CERT_KEY="$RET"
  110. db_get jitsi-meet/cert-path-crt
  111. CERT_CRT="$RET"
  112. # replace self-signed certificate paths with user provided ones
  113. CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g')
  114. CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g')
  115. sed -i "s/pkey=\/etc\/jitsi\/meet\/.*key/pkey=$CERT_KEY_ESC/g" $TURN_CONFIG
  116. CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
  117. CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
  118. sed -i "s/cert=\/etc\/jitsi\/meet\/.*crt/cert=$CERT_CRT_ESC/g" $TURN_CONFIG
  119. fi
  120. sed -i "s/#TURNSERVER_ENABLED/TURNSERVER_ENABLED/g" /etc/default/coturn
  121. invoke-rc.d coturn restart || true
  122. NGINX_STREAM_CONFIG="/etc/nginx/modules-enabled/60-jitsi-meet.conf"
  123. if [ -f $NGINX_STREAM_CONFIG ] ; then
  124. echo "------------------------------------------------"
  125. echo ""
  126. echo "You have multiplexing enabled, it is recommended to disable it and migrate to using websockets for the bridge channel."
  127. echo "The support for sctp data channels is deprecated and will be dropped at some point."
  128. echo "How to do it at: https://jitsi.org/multiplexing-to-bridge-ws-howto"
  129. echo ""
  130. echo "------------------------------------------------"
  131. fi
  132. # and we're done with debconf
  133. db_stop
  134. ;;
  135. abort-upgrade|abort-remove|abort-deconfigure)
  136. ;;
  137. *)
  138. echo "postinst called with unknown argument \`$1'" >&2
  139. exit 1
  140. ;;
  141. esac
  142. # dh_installdeb will replace this with shell code automatically
  143. # generated by other debhelper scripts.
  144. #DEBHELPER#
  145. exit 0