Files
EventHubAiRouter/scripts/vpn-enable.sh
T
aleksey a2d238d92e
CI / build-gateway (push) Failing after 16s
CI / sync-config (push) Failing after 0s
feat(agent): hierarchical executor with path resolve, runtime probe, quiet UI
Make Zed Agent closer to Cursor: deterministic DevOps path index, live Traefik
port probe before blind edits, stop-after-edit, and quieter Russian progress.
2026-08-13 11:41:27 +03:00

48 lines
1.5 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
STACK_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
STACK_NAME="${STACK_NAME:-ai-router}"
cd "$STACK_DIR"
set -a
# shellcheck disable=SC1091
source .env
set +a
VLESS_URL="${VLESS_PROXY_URL:-http://vless-proxy:8080}"
# shellcheck disable=SC1091
source "${STACK_DIR}/scripts/no-proxy-default.sh"
NO_PROXY_VAL="${NO_PROXY:-${NO_PROXY_DEFAULT}}"
echo "== Scale vless-proxy and vpn-watchdog to 1 =="
docker service scale "${STACK_NAME}_vless-proxy=1" "${STACK_NAME}_vpn-watchdog=1"
echo "== Wait for vless-proxy healthy (max 90s) =="
for i in $(seq 1 18); do
CID=$(docker ps -q -f "name=${STACK_NAME}_vless-proxy" | head -1)
if [[ -n "$CID" ]]; then
STATUS=$(docker inspect --format='{{.State.Health.Status}}' "$CID" 2>/dev/null || echo "starting")
if [[ "$STATUS" == "healthy" ]]; then
echo "vless-proxy is healthy"
break
fi
echo " attempt $i: status=$STATUS"
fi
sleep 5
done
echo "== E2E tunnel probe =="
docker run --rm --network "${STACK_NAME}_ai-internal" curlimages/curl:8.5.0 \
curl -sf -x "${VLESS_URL}" --max-time 15 https://www.google.com/generate_204 \
|| echo "WARN: tunnel probe failed (may need valid vless.conf)"
echo "== Point litellm through VPN =="
docker service update \
--env-add "HTTP_PROXY=${VLESS_URL}" \
--env-add "HTTPS_PROXY=${VLESS_URL}" \
--env-add "NO_PROXY=${NO_PROXY_VAL}" \
"${STACK_NAME}_litellm"
echo "VPN enabled. Direct: Novita/Groq/Gemini/GigaChat. VPN: Anthropic/OpenRouter/Grok/Together."