#!/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