StunCaddsies/gen_caddyfile_and_start.sh

52 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
CADDYFILE="${CADDYFILE:-/etc/caddy/Caddyfile}"
STUNFILE="${STUNFILE:-/etc/stunfile.conf}"
STUNSERVERCRT="${STUNSERVERCRT:-/etc/stunserver.crt}"
STUNSERVERKEY="${STUNSERVERKEY:-/etc/stunserver.key}"
STUNCLIENTCRT="${STUNCLIENTCRT:-/etc/stunclient.crt}"
ROOTDIR="${ROOTDIR:-/srv/index}"
SITE_ADDRESS="${SITE_ADDRESS:-localhost}"
generate_caddyfile() {
mkdir -p "$(dirname "${CADDYFILE}")"
echo "${SITE_ADDRESS} {" > ${CADDYFILE}
echo " root $ROOTDIR" >> ${CADDYFILE}
echo " forwardproxy {" >> ${CADDYFILE}
if [[ ! -z ${PROXY_USERNAME} ]]; then
echo " basicauth ${PROXY_USERNAME} ${PROXY_PASSWORD}" >> ${CADDYFILE}
fi
if [[ "${PROBE_RESISTANT}" = true ]]; then
echo " probe_resistance ${SECRET_LINK}" >> ${CADDYFILE}
fi
echo " }" >> ${CADDYFILE}
echo "}" >> ${CADDYFILE}
}
if [ -f "${CADDYFILE}" ]; then
echo "Using provided Caddyfile"
else
echo "Caddyfile is not provided: generating new one"
generate_caddyfile
fi
cp "$STUNFILE" "${STUNFILE}_overload"
STUNFILE="${STUNFILE}_overload"
sed -i -e 's/.etc.stunserver.crt/'"${STUNSERVERCRT//\//\\\/}"'/g' "${STUNFILE}"
sed -i -e 's/.etc.stunserver.key/'"${STUNSERVERKEY//\//\\\/}"'/g' "${STUNFILE}"
sed -i -e 's/.etc.stunclient.crt/'"${STUNCLIENTCRT//\//\\\/}"'/g' "${STUNFILE}"
stunnel "${STUNFILE}" > /stun-access.log 2>&1 &
$(which caddy) ${CADDY_OPTS} -conf ${CADDYFILE} &
pid=$!
tail -F -n 100 /caddy-access.log
kill $pid