docker-entrypoint.sh
Rama master · réplica de lectura del repositorio original.
#!/bin/bash
set -e
SERVER_IP=$(
curl -sf https://1.1.1.1/cdn-cgi/trace | grep -oP 'ip=\K.*' 2>/dev/null || \
curl -sf https://checkip.amazonaws.com 2>/dev/null || \
echo "unknown-ip"
)
export STREAM_APP=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c12)
CONNECTION_INFO="# ======================================\n# ======================================\n# Your Stream Destination: rtmp://$SERVER_IP/$STREAM_APP\n# ======================================\n# Your Stream Key Does Not Matter\n# ======================================\n"
echo -e "$CONNECTION_INFO" >&2
{
echo -e "$CONNECTION_INFO"
} > /proc/1/fd/1
NGINX_TEMPLATE=/etc/nginx/nginx.conf.template
NGINX_CONF=/etc/nginx/nginx.conf
ENV_OK=0
if [ -n "${YOUTUBE_KEY}" ]; then
echo "Youtube activate."
sed -i 's|#youtube|push '"$YOUTUBE_URL"'${YOUTUBE_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#youtube| |g' $NGINX_TEMPLATE
fi
if [ -n "${FACEBOOK_KEY}" ]; then
echo "Facebook activate."
sed -i 's|#facebook|push '"$FACEBOOK_URL"'${FACEBOOK_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#facebook| |g' $NGINX_TEMPLATE
fi
if [ -n "${INSTAGRAM_KEY}" ]; then
echo "Instagram activate."
sed -i 's|#instagram|push '"$INSTAGRAM_URL"'${INSTAGRAM_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#instagram| |g' $NGINX_TEMPLATE
fi
if [ -n "${CLOUDFLARE_KEY}" ]; then
echo "Cloudflare activate."
sed -i 's|#cloudflare|push '"$CLOUDFLARE_URL"'${CLOUDFLARE_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#cloudflare| |g' $NGINX_TEMPLATE
fi
if [ -n "${TWITCH_KEY}" ]; then
echo "Twitch activate."
sed -i 's|#twitch|push '"$TWITCH_URL"'${TWITCH_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#twitch| |g' $NGINX_TEMPLATE
fi
if [ -n "${RTMP1_KEY}" ]; then
echo "Rtmp1 activate."
sed -i 's|#rtmp1|push '"$RTMP1_URL"'${RTMP1_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#rtmp1| |g' $NGINX_TEMPLATE
fi
if [ -n "${RTMP2_KEY}" ]; then
echo "Rtmp2 activate."
sed -i 's|#rtmp2|push '"$RTMP2_URL"'${RTMP2_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#rtmp2| |g' $NGINX_TEMPLATE
fi
if [ -n "${RTMP3_KEY}" ]; then
echo "Rtmp3 activate."
sed -i 's|#rtmp3|push '"$RTMP3_URL"'${RTMP3_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#rtmp3| |g' $NGINX_TEMPLATE
fi
if [ -n "${TROVO_KEY}" ]; then
echo "Trovo activate."
sed -i 's|#trovo|push '"$TROVO_URL"'${TROVO_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#trovo| |g' $NGINX_TEMPLATE
fi
if [ -n "${KICK_KEY}" ]; then
echo "Kick activate."
sed -i 's|#kick|push '"$KICK_URL"'${KICK_KEY};|g' $NGINX_TEMPLATE
ENV_OK=1
else
sed -i 's|#kick| |g' $NGINX_TEMPLATE
fi
if [ $ENV_OK -eq 1 ]; then
envsubst < $NGINX_TEMPLATE > $NGINX_CONF
else
echo "Start local server."
fi
if [ -n "${DEBUG}" ]; then
echo $NGINX_CONF
cat $NGINX_CONF
fi
stunnel4
exec "$@"