chore(scripts): add development, DSH and sidecar launchers
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
# 私域Agent 公网隧道启动脚本(主推 cloudflared 无拦截页 + ngrok 应急)
|
||||
# 用法: bash ~/Desktop/yawan-workbench/启动公网隧道.sh
|
||||
|
||||
set -u
|
||||
|
||||
# 0. 后端
|
||||
if lsof -ti :8010 >/dev/null 2>&1; then
|
||||
echo "✓ 后端已在运行 (port 8010)"
|
||||
else
|
||||
echo "▶ 启动后端…"
|
||||
(cd "$(dirname "$0")/server" && nohup .venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8010 >/tmp/yawan-uvicorn.log 2>&1 &)
|
||||
sleep 4
|
||||
curl -s -m 5 --noproxy '*' http://127.0.0.1:8010/api/health >/dev/null \
|
||||
&& echo "✓ 后端就绪" || { echo "✗ 后端启动失败,看 /tmp/yawan-uvicorn.log"; exit 1; }
|
||||
fi
|
||||
|
||||
# 1. cloudflared 主隧道(无 ngrok 拦截页)
|
||||
CF_METRICS=20241
|
||||
if lsof -ti :$CF_METRICS >/dev/null 2>&1; then
|
||||
CF_URL=$(curl -s -m 5 --noproxy '*' "http://127.0.0.1:$CF_METRICS/metrics" | grep -o 'https://[a-z-]*\.trycloudflare\.com' | head -1)
|
||||
echo "✓ cloudflared 已在运行: $CF_URL"
|
||||
else
|
||||
echo "▶ 启动 cloudflared 主隧道…"
|
||||
nohup /opt/homebrew/bin/cloudflared tunnel --url http://127.0.0.1:8010 --protocol http2 --metrics "127.0.0.1:$CF_METRICS" >/tmp/yawan-cloudflared.log 2>&1 &
|
||||
sleep 8
|
||||
CF_URL=$(curl -s -m 5 --noproxy '*' "http://127.0.0.1:$CF_METRICS/metrics" | grep -o 'https://[a-z-]*\.trycloudflare\.com' | head -1)
|
||||
[ -n "$CF_URL" ] && echo "✓ 主入口(cloudflared·无拦截页): $CF_URL/admin" || echo "✗ cloudflared 启动失败,看 /tmp/yawan-cloudflared.log"
|
||||
fi
|
||||
|
||||
# 2. ngrok 应急隧道(地址固定,但有拦截确认页)
|
||||
if ! pgrep -f 'ngrok http 8010' >/dev/null 2>&1; then
|
||||
echo "▶ 启动 ngrok 应急隧道…"
|
||||
nohup /opt/homebrew/bin/ngrok http 8010 --host-header=localhost:8010 --log stdout >/tmp/yawan-ngrok.log 2>&1 &
|
||||
sleep 4
|
||||
fi
|
||||
NGROK_URL=$(curl -s -m 5 --noproxy '*' http://127.0.0.1:4040/api/tunnels 2>/dev/null | grep -o 'https://[a-z0-9-]*\.ngrok-free\.dev' | head -1)
|
||||
[ -n "$NGROK_URL" ] && echo "✓ 应急入口(ngrok·有拦截页): $NGROK_URL/admin"
|
||||
|
||||
echo ""
|
||||
echo "========== 把主入口发给测试用户 =========="
|
||||
echo " ${CF_URL:-<cloudflared 未启动>}/admin"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user