123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- #!/usr/bin/with-contenv bash
- set -e
- EMAIL=$LETSENCRYPT_EMAIL
- DOMAIN=$LETSENCRYPT_DOMAIN
- JITSI_INSTALLATION="DOCKER"
- JAAS_ENDPOINT="https://account-provisioning.cloudflare.jitsi.net/operations"
- CHALLENGE_DIR="/usr/share/jitsi-meet/.well-known"
- CHALLENGE_FILE="$CHALLENGE_DIR/jitsi-challenge.txt"
- SUPPORT_MSG="Reach out to JaaS support at https://jaas.8x8.vc/#components"
- JAAS_ACCOUNT_FILE="/config/jaas-account-created.txt"
- function stop_service() {
- s6-svc -O /var/run/s6/services/jaas-account
- exit 0
- }
- if [[ $DISABLE_HTTPS -ne 1 ]] && [[ $ENABLE_LETSENCRYPT -eq 1 ]] && [[ $ENABLE_JAAS_COMPONENTS -eq 1 ]] && [[ ! -z $EMAIL ]] && [[ ! -z $DOMAIN ]]; then
- if [ -f $JAAS_ACCOUNT_FILE ]; then
- echo "JaaS account already exists"
- stop_service
- fi
- KEEP_WAITING=true
- RETRIES=0
- MAX_TRIES=5
- SLEEP_INTERVAL=10
- # Waiting for nginx to start before creating the JaaS account
- while $KEEP_WAITING; do
- s6-svwait -u /var/run/s6/services/nginx
- NGINX_RESPONSE=$?
- if [ $NGINX_RESPONSE -eq 0 ]; then
- echo "Nginx started"
- KEEP_WAITING=false
- else
- RETRIES=$((RETRIES + 1))
- if [ $RETRIES -ge $MAX_TRIES ]; then
- echo "Nginx did not start, exiting..."
- KEEP_WAITING=false
- else
- echo "Waiting for nginx to start, retrying in $SLEEP_INTERVAL seconds... $RETRIES/$MAX_TRIES"
- sleep $SLEEP_INTERVAL
- fi
- fi
- done
- create_error=0
- create_data=$(curl -s -f -X 'POST' "${JAAS_ENDPOINT}" -H 'Content-Type: application/json' -H 'accept: */*' -d "{ \"domain\": \"${DOMAIN}\", \"email\": \"${EMAIL}\", \"jitsiInstallation\": \"${JITSI_INSTALLATION}\" }") || create_error=$?
- if [ ${create_error} -ne 0 ]; then
- echo "JaaS account creation failed. Status: ${create_error}, response: ${create_data}"
- stop_service
- fi
- echo "${create_data}"
- # Creating the challenge dir
- mkdir -p ${CHALLENGE_DIR}
- # Creating the challenge file
- echo "${create_data}" | jq -r .challenge > ${CHALLENGE_FILE}
- op_id=$(echo "${create_data}" | jq -r .operationId)
- ready_error=0
- ready_data=$(curl -s -f -X 'PUT' "${JAAS_ENDPOINT}/${op_id}/ready") || ready_error=$?
- if [ ${ready_error} -ne 0 ]; then
- echo "Jitsi domain validation failed. Status: ${ready_error}"
- echo "Response: "
- echo "${ready_data}" | jq -r
- echo "${SUPPORT_MSG}"
- echo
- stop_service
- fi
- SLEEP_TIME=0
- WAIT_BEFORE_CHECK=5
- TIMEOUT=60
- echo -n "Creating the JaaS account..."
- (while true; do
- provisioned_data=$(curl -s -f "${JAAS_ENDPOINT}/${op_id}")
- status=$(echo "${provisioned_data}" | jq -r .status)
- if [ "${status}" == "PROVISIONED" ]; then
- echo ""
- echo "=================="
- echo ""
- echo "A JaaS account was created. Please check your email for more details."
- echo ""
- echo "=================="
- # Creating the jaas-account file
- touch ${JAAS_ACCOUNT_FILE}
- stop_service
- elif [ "${status}" == "FAILED" ]; then
- echo ""
- echo "=================="
- echo ""
- echo "JaaS account creation failed:${provisioned_data}"
- echo ""
- echo "=================="
- stop_service
- fi
- if [ ${SLEEP_TIME} -ge ${TIMEOUT} ]; then
- echo ""
- echo "=================="
- echo ""
- echo "Timeout creating the JaaS account. ${SUPPORT_MSG}"
- echo ""
- echo "=================="
- stop_service
- fi
- echo -n "Waiting for the JaaS account to be created..."
- sleep ${WAIT_BEFORE_CHECK}
- SLEEP_TIME=$((SLEEP_TIME+WAIT_BEFORE_CHECK))
- done)
- rm ${CHALLENGE_FILE} || true
- fi
- stop_service
|