2020-04-07 16:40:16 +02:00
|
|
|
#!/bin/bash
|
2022-04-21 11:55:17 +02:00
|
|
|
set -o errexit -o errtrace -o pipefail -o nounset
|
|
|
|
|
|
|
|
# Set possible empty environment variables
|
|
|
|
export COTURN_SHARED_SECRET_KEY="${COTURN_SHARED_SECRET_KEY:-}"
|
|
|
|
export WAIT_KIBANA_URL="${WAIT_KIBANA_URL:-}"
|
|
|
|
export OV_CE_DEBUG_LEVEL="${OV_CE_DEBUG_LEVEL:-}"
|
|
|
|
export JAVA_OPTIONS=${JAVA_OPTIONS:-}
|
|
|
|
export COTURN_IP="${COTURN_IP:-auto-ipv4}"
|
|
|
|
|
2022-04-12 14:41:20 +02:00
|
|
|
# Generate Coturn shared secret key, if COTURN_SHARED_SECRET_KEY is not defined
|
|
|
|
if [[ -z "${COTURN_SHARED_SECRET_KEY}" ]]; then
|
2022-04-21 11:55:17 +02:00
|
|
|
|
|
|
|
# Check if random shared key is generated and with value
|
2022-04-12 14:41:20 +02:00
|
|
|
if [[ ! -f /run/secrets/coturn/shared-secret-key ]]; then
|
2022-04-21 11:55:17 +02:00
|
|
|
# Generate directory just in case
|
|
|
|
mkdir -p /run/secrets/coturn
|
|
|
|
|
|
|
|
# Generate random coturn secret
|
2023-03-15 14:31:12 +01:00
|
|
|
RANDOM_COTURN_SECRET="$(shuf --echo --repeat --zero-terminated --head-count=35 {A..Z} {a..z} {0..9})"
|
2022-04-21 11:55:17 +02:00
|
|
|
|
|
|
|
# Replace value and generate shared-secret-key file
|
2022-04-12 14:41:20 +02:00
|
|
|
sed "s|{{COTURN_SHARED_SECRET_KEY}}|${RANDOM_COTURN_SECRET}|g" \
|
2023-03-15 14:31:12 +01:00
|
|
|
/usr/local/coturn-shared-key.template >/run/secrets/coturn/shared-secret-key
|
2022-04-12 14:41:20 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Read value
|
2023-03-15 14:31:12 +01:00
|
|
|
export "$(grep -v '#' /run/secrets/coturn/shared-secret-key | grep COTURN_SHARED_SECRET_KEY |
|
2022-04-12 14:41:20 +02:00
|
|
|
sed 's/\r$//' | awk '/=/ {print $1}')"
|
|
|
|
fi
|
|
|
|
|
2023-03-08 17:57:52 +01:00
|
|
|
# Don't wait for Kibana if Elasticsearch is disabled
|
2023-03-13 15:31:42 +01:00
|
|
|
if [ "${OPENVIDU_PRO_ELASTICSEARCH}" == "false" ]; then
|
2023-03-08 17:57:52 +01:00
|
|
|
unset WAIT_KIBANA_URL
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Wait for Kibana service
|
2022-04-21 11:55:17 +02:00
|
|
|
if [ -n "${WAIT_KIBANA_URL}" ]; then
|
2023-03-15 14:31:12 +01:00
|
|
|
printf "\n"
|
|
|
|
printf "\n ======================================="
|
|
|
|
printf "\n Waiting for Kibana service."
|
|
|
|
printf "\n ======================================="
|
|
|
|
printf "\n"
|
2020-05-05 11:52:00 +02:00
|
|
|
|
2023-03-15 14:31:12 +01:00
|
|
|
until curl --insecure --output /dev/null --silent --head --fail --max-time 10 --connect-timeout 10 "${WAIT_KIBANA_URL}" &>/dev/null; do
|
|
|
|
printf "\n Waiting for kibana in '%s' 'URL'. This may take some minutes, please be patient..." "${WAIT_KIBANA_URL}"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
printf "\n ==== Kibana is Ready ===="
|
2020-04-07 16:40:16 +02:00
|
|
|
fi
|
|
|
|
|
2021-04-20 16:36:33 +02:00
|
|
|
# Launch OpenVidu Pro
|
2020-05-05 11:52:00 +02:00
|
|
|
printf "\n"
|
|
|
|
printf "\n ======================================="
|
2020-05-05 18:20:41 +02:00
|
|
|
printf "\n = LAUNCH OPENVIDU-SERVER ="
|
2020-05-05 11:52:00 +02:00
|
|
|
printf "\n ======================================="
|
|
|
|
printf "\n"
|
|
|
|
|
2020-11-02 19:46:59 +01:00
|
|
|
# Get coturn public ip
|
2020-11-02 21:15:18 +01:00
|
|
|
if [[ "${COTURN_IP}" == "auto-ipv4" ]]; then
|
2020-11-02 19:46:59 +01:00
|
|
|
COTURN_IP=$(/usr/local/bin/discover_my_public_ip.sh)
|
2020-11-02 21:15:18 +01:00
|
|
|
elif [[ "${COTURN_IP}" == "auto-ipv6" ]]; then
|
2020-11-02 19:46:59 +01:00
|
|
|
COTURN_IP=$(/usr/local/bin/discover_my_public_ip.sh --ipv6)
|
|
|
|
fi
|
|
|
|
|
2020-11-09 19:35:25 +01:00
|
|
|
if [[ "${OV_CE_DEBUG_LEVEL}" == "DEBUG" ]]; then
|
|
|
|
export LOGGING_LEVEL_IO_OPENVIDU_SERVER=DEBUG
|
|
|
|
fi
|
|
|
|
|
2022-04-21 11:55:17 +02:00
|
|
|
if [ -n "${JAVA_OPTIONS}" ]; then
|
2020-05-05 11:52:00 +02:00
|
|
|
printf "\n Using java options: %s" "${JAVA_OPTIONS}"
|
2020-04-13 14:19:38 +02:00
|
|
|
fi
|
|
|
|
|
2022-04-21 11:55:17 +02:00
|
|
|
# Here we don't expand variables to be interpreted as separated arguments
|
|
|
|
# shellcheck disable=SC2086
|
2023-03-15 14:31:12 +01:00
|
|
|
java ${JAVA_OPTIONS:-} -jar openvidu-server-pro-*.jar
|