openvidu/openvidu-server/deployments/external-turn/certbot.sh

37 lines
1.2 KiB
Bash
Executable File

#!/bin/sh -x
# Trap exit signal
exit_func() {
exit 1
}
trap exit_func TERM INT
export CRONTIME="${CRONTIME:-12h}"
export COTURN_CONTAINER_NAME="${COTURN_CONTAINER_NAME:-coturn}"
while :; do
CERTIFICATES_FOUND=false
if [ -f "/etc/letsencrypt/live/${TURN_DOMAIN_NAME}/cert.pem" ] &&
[ -f "/etc/letsencrypt/live/${TURN_DOMAIN_NAME}/privkey.pem" ]; then
CERTIFICATES_FOUND=true
fi
certbot "$@";
# Let coturn to load letsencrypt certificates
chmod 777 -R /etc/letsencrypt;
TURN_PID=$(pgrep -n '^turnserver$')
if [ -n "${TURN_PID}" ]; then
if [ "${CERTIFICATES_FOUND}" = "false" ]; then
# If certificates not found on startup, restart coturn
kill -KILL "${TURN_PID}"
else
# Send SIGUSR2 signal to coturn to restart process with new certificates
# As certbot is running in the same namespace as coturn,
# it will send the signal to the coturn process to reload the certificates
kill -USR2 "${TURN_PID}"
fi
fi
# Sleep CRONTIME seconds for next check
sleep "${CRONTIME}" &
# Wait for sleep without blocking signals
wait $!
done;