| #!/usr/bin/env bash |
| set -ex |
|
|
| echo "[ENTRYPOINT] Starting WireGuard HTTP Proxy" |
|
|
| |
| if [[ -z "${WIREGUARD_INTERFACE_PRIVATE_KEY}" ]]; then |
| echo "[ENTRYPOINT] Generating Cloudflare Warp configuration..." |
| |
| |
| WARP_OUTPUT=$(warp) |
| |
| |
| 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 |
|
|
| |
| echo "[ENTRYPOINT] Starting HTTP proxy server (internal)..." |
| server & |
| SERVER_PID=$! |
|
|
| |
| 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!" |
|
|
| |
| 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." |
|
|
| |
| echo "[ENTRYPOINT] Starting Streamion..." |
| exec deno task dev |
|
|