parent
c44c59e6cb
commit
df2316cef6
@ -0,0 +1,121 @@ |
|||||||
|
#!/usr/bin/with-contenv bash |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
EMAIL=$LETSENCRYPT_EMAIL |
||||||
|
DOMAIN=$LETSENCRYPT_DOMAIN |
||||||
|
|
||||||
|
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}\" }") || 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 |
Loading…
Reference in new issue