upd / entrypoint.sh
cursorpro's picture
Upload 57 files
7a4c980 verified
#!/usr/bin/env bash
set -ex
echo "[ENTRYPOINT] Starting WireGuard HTTP Proxy"
# Check if WireGuard config should be generated
if [[ -z "${WIREGUARD_INTERFACE_PRIVATE_KEY}" ]]; then
echo "[ENTRYPOINT] Generating Cloudflare Warp configuration..."
# Run warp binary to generate config
WARP_OUTPUT=$(warp)
# Parse the warp output to extract config values
export WIREGUARD_INTERFACE_PRIVATE_KEY=$(echo "$WARP_OUTPUT" | grep "PrivateKey" | awk '{print $3}')
export WIREGUARD_INTERFACE_ADDRESS=$(echo "$WARP_OUTPUT" | grep "Address" | awk '{print $3}')
export WIREGUARD_PEER_PUBLIC_KEY=$(echo "$WARP_OUTPUT" | grep "PublicKey" | awk '{print $3}')
export WIREGUARD_PEER_ENDPOINT=$(echo "$WARP_OUTPUT" | grep "Endpoint" | awk '{print $3}')
export WIREGUARD_INTERFACE_DNS="${WIREGUARD_INTERFACE_DNS:-1.1.1.1}"
echo "[ENTRYPOINT] Warp config generated successfully"
else
echo "[ENTRYPOINT] Using provided WireGuard configuration"
fi
# Start the proxy server in the background
echo "[ENTRYPOINT] Starting HTTP proxy server (internal)..."
server &
SERVER_PID=$!
# Wait for proxy to start
echo "[ENTRYPOINT] Waiting for proxy to be ready on port 8080..."
while ! curl -v http://127.0.0.1:8080/ 2>&1 | grep "Proxy Running"; do
if ! kill -0 $SERVER_PID 2>/dev/null; then
echo "[FATAL] Server process exited unexpectedly!"
wait $SERVER_PID
exit 1
fi
echo "[ENTRYPOINT] Proxy not ready yet... retrying in 1s"
sleep 1
done
echo "[ENTRYPOINT] Proxy is ready!"
# Start Proxy Check
echo "[ENTRYPOINT] Checking proxy connection..."
curl -s -x http://127.0.0.1:8080 https://cloudflare.com/cdn-cgi/trace
echo ""
echo "[ENTRYPOINT] Proxy check complete."
# Start Streamion
echo "[ENTRYPOINT] Starting Streamion..."
exec deno task dev