feat: auto-open browser after gateway starts

Gateway run doesn't open browser by itself. Now scripts wait for
port 18789 to be ready, read auth token from config, and open the
dashboard URL in the default browser automatically.
This commit is contained in:
dongsheng123132
2026-03-09 19:03:01 +08:00
parent 48fab3c060
commit fa53d6ba25
2 changed files with 41 additions and 10 deletions

View File

@@ -201,14 +201,32 @@ do_run() {
echo " 接下来可以选 [17] 打开网页控制台。"
fi
else
echo -e " ${GREEN}正在启动网关服务...${NC}"
echo " 启动后会自动打开浏览器控制台。"
echo " 此窗口不要关闭,关闭后服务会停止。"
echo ""
"$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force
start_gateway
fi
}
start_gateway() {
echo -e " ${GREEN}正在启动网关服务...${NC}"
echo " 此窗口不要关闭,关闭后服务会停止。"
echo ""
cd "$OPENCLAW_DIR"
"$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force &
local GW_PID=$!
for i in $(seq 1 30); do
sleep 0.5
if curl -s -o /dev/null http://127.0.0.1:18789/ 2>/dev/null; then
local TOKEN
TOKEN=$(python3 -c "import json; d=json.load(open('$PORTABLE_CONFIG_PATH')); print(d.get('gateway',{}).get('auth',{}).get('token',''))" 2>/dev/null)
local URL="http://127.0.0.1:18789/#token=${TOKEN}"
echo ""
echo -e " ${GREEN}控制台地址: ${URL}${NC}"
open "$URL" 2>/dev/null
break
fi
done
wait $GW_PID
}
do_dashboard() {
echo ""
echo -e " ${CYAN}${BOLD}━━━ 启动网关 + 打开网页控制台 ━━━${NC}"
@@ -219,9 +237,7 @@ do_dashboard() {
echo -e " ${YELLOW}你还没有完成 U 盘便携配置。请先选 [4] 从 U 盘运行。${NC}"
return
fi
echo " 此窗口不要关闭,关闭后服务会停止。"
echo ""
"$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force
start_gateway
}
# [5] 配置国产模型

View File

@@ -133,10 +133,25 @@ if [ ! -f "$PORTABLE_CONFIG_PATH" ]; then
fi
else
echo -e " ${GREEN}正在启动网关服务...${NC}"
echo " 启动后会自动打开浏览器控制台。"
echo " 此窗口不要关闭,关闭后服务会停止。"
echo ""
"$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force
# 后台启动网关,等它就绪后自动打开浏览器
"$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force &
GW_PID=$!
# 等网关启动,最多等 15 秒
for i in $(seq 1 30); do
sleep 0.5
if curl -s -o /dev/null http://127.0.0.1:18789/ 2>/dev/null; then
TOKEN=$(python3 -c "import json; d=json.load(open('$PORTABLE_CONFIG_PATH')); print(d.get('gateway',{}).get('auth',{}).get('token',''))" 2>/dev/null)
URL="http://127.0.0.1:18789/#token=${TOKEN}"
echo ""
echo -e " ${GREEN}控制台地址: ${URL}${NC}"
open "$URL" 2>/dev/null
break
fi
done
# 前台等待网关进程
wait $GW_PID
fi
echo ""