Files
free-turn-proxy/docker/entrypoint.sh

47 lines
1.1 KiB
Bash

#!/bin/sh
set -e
CONNECT="${CONNECT_ADDR:?CONNECT_ADDR is required}"
LISTEN="${LISTEN_ADDR:-0.0.0.0:56000}"
case "$CONNECT" in
*:*) ;;
*) echo "CONNECT_ADDR must be in host:port format" >&2; exit 1 ;;
esac
set -- -listen "$LISTEN" -connect "$CONNECT"
if [ -n "${MODE}" ]; then
set -- "$@" -mode "$MODE"
fi
for kcp_var in NODELAY INTERVAL RESEND NC SNDWND RCVWND MTU ACKNODELAY; do
eval "kcp_val=\${KCP_${kcp_var}}"
if [ -n "${kcp_val}" ]; then
kcp_flag="-kcp-$(echo "$kcp_var" | tr '[:upper:]' '[:lower:]')"
case "$kcp_var" in
ACKNODELAY) set -- "$@" "${kcp_flag}=${kcp_val}" ;;
*) set -- "$@" "$kcp_flag" "$kcp_val" ;;
esac
fi
done
if [ -n "${OBF_PROFILE}" ] && [ "${OBF_PROFILE}" != "none" ]; then
OBF="${OBF_KEY:?OBF_KEY is required when OBF_PROFILE != none}"
set -- "$@" -obf-profile "$OBF_PROFILE" -obf-key "$OBF"
fi
if [ -n "${OBF_TIMING}" ]; then
set -- "$@" -obf-timing "${OBF_TIMING}"
fi
if [ "${DEBUG}" = "true" ]; then
set -- "$@" -debug
fi
if [ -n "${CLIENTS_FILE}" ]; then
set -- "$@" -clients-file "${CLIENTS_FILE}"
fi
exec ./server "$@"