#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" H5_DIR="${ROOT}/ui/h5" H5_PORT="${H5_PORT:-8080}" if [[ -f "${ROOT}/.env.local" ]]; then set -a # shellcheck disable=SC1091 source "${ROOT}/.env.local" set +a fi export GOOSE_API_TARGET="${GOOSE_API_TARGET:-https://127.0.0.1:${GOOSE_PORT:-18006}}" export GOOSE_SERVER__SECRET_KEY="${GOOSE_SERVER__SECRET_KEY:-local-dev-secret}" export H5_PORT export VITE_GOOSE_WORKING_DIR="${VITE_GOOSE_WORKING_DIR:-${ROOT}}" echo "==> 检查 goosed..." if ! curl -sk "${GOOSE_API_TARGET}/status" >/dev/null 2>&1; then echo "goosed 未运行,正在启动..." "${ROOT}/local_restart.sh" fi echo "==> 构建 H5..." cd "${H5_DIR}" if [[ ! -d node_modules ]]; then pnpm install fi pnpm run build echo "==> 启动 H5 服务 @ http://127.0.0.1:${H5_PORT}" node server.mjs & H5_PID=$! echo "${H5_PID}" > "${ROOT}/.h5.pid" if command -v cloudflared >/dev/null 2>&1 && [[ -f "${HOME}/.cloudflared/config.yml" ]]; then echo "==> 启动 Cloudflare Tunnel (goo.tkmind.cn)" cloudflared tunnel run goose-local & CF_PID=$! echo "${CF_PID}" > "${ROOT}/.cloudflared.pid" echo "" echo "✅ 已启动" echo " 本地: http://127.0.0.1:${H5_PORT}" echo " 公网: https://goo.tkmind.cn" else echo "" echo "✅ H5 已启动: http://127.0.0.1:${H5_PORT}" echo "ℹ️ 未检测到 cloudflared 配置,请参考 deploy/cloudflared/config.yml.example" fi