52 lines
1.5 KiB
Bash
Executable File
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
|