| #!/bin/bash |
|
|
| set -e |
|
|
| echo "===== Application Startup at $(date '+%Y-%m-%d %H:%M:%S') =====" |
|
|
| |
| WARP_SLEEP=${WARP_SLEEP:-5} |
| WARP_LICENSE_KEY=${WARP_LICENSE_KEY:-} |
|
|
| echo "[*] Starting D-Bus daemon..." |
| mkdir -p /run/dbus |
| dbus-daemon --system --fork 2>/dev/null || true |
| sleep 1 |
|
|
| echo "[*] Starting Cloudflare WARP service..." |
| warp-svc & |
| sleep $WARP_SLEEP |
|
|
| |
| MAX_WAIT=30 |
| WAITED=0 |
| while [ $WAITED -lt $MAX_WAIT ]; do |
| if warp-cli --accept-tos status 2>/dev/null | grep -q "Status"; then |
| echo "[*] WARP service is ready" |
| break |
| fi |
| sleep 1 |
| WAITED=$((WAITED + 1)) |
| done |
|
|
| |
| echo "[*] Registering WARP..." |
| warp-cli --accept-tos registration new 2>/dev/null || echo "[*] Already registered or registration failed" |
|
|
| |
| if [ -n "$WARP_LICENSE_KEY" ]; then |
| echo "[*] Setting WARP license key..." |
| warp-cli --accept-tos registration license "$WARP_LICENSE_KEY" 2>/dev/null || true |
| fi |
|
|
| |
| echo "[*] Configuring WARP proxy mode..." |
| warp-cli --accept-tos mode proxy 2>/dev/null || true |
| warp-cli --accept-tos proxy port 40000 2>/dev/null || true |
|
|
| |
| echo "[*] Connecting WARP..." |
| warp-cli --accept-tos connect 2>/dev/null || true |
|
|
| |
| sleep 3 |
|
|
| |
| echo "[*] WARP Status:" |
| WARP_STATUS=$(warp-cli --accept-tos status 2>/dev/null || echo "Failed to get status") |
| echo "$WARP_STATUS" |
|
|
| |
| if echo "$WARP_STATUS" | grep -qi "connected"; then |
| echo "[*] WARP connected successfully!" |
| echo "[*] Using proxy: socks5://127.0.0.1:40000" |
| export HTTP_PROXY="socks5://127.0.0.1:40000" |
| export HTTPS_PROXY="socks5://127.0.0.1:40000" |
| else |
| echo "[!] WARP connection failed, running without proxy" |
| unset HTTP_PROXY |
| unset HTTPS_PROXY |
| fi |
|
|
| echo "[*] Starting API Server on port 7860..." |
|
|
| |
| exec python ww.py |
|
|