renminwansui1976 commited on
Commit
ba6dbbc
·
unverified ·
1 Parent(s): d4ca08a

更新 start.sh

Browse files
Files changed (1) hide show
  1. start.sh +22 -17
start.sh CHANGED
@@ -4,46 +4,51 @@ set -euo pipefail
4
  LITELLM_PID=""
5
 
6
  # ── 0. Write openclaw.json before gateway starts ──────────────────────────────
7
- # HF Space domains are dynamically assigned, so we can't hardcode allowedOrigins.
8
- # dangerouslyAllowHostHeaderOriginFallback lets OpenClaw trust the Host header
9
- # as the origin the standard fix for dynamic-domain deployments (Zeabur, HF, etc.)
 
 
 
 
 
 
10
  OPENCLAW_CONFIG_DIR="${HOME}/.openclaw"
11
  OPENCLAW_CONFIG="${OPENCLAW_CONFIG_DIR}/openclaw.json"
12
  mkdir -p "$OPENCLAW_CONFIG_DIR"
13
 
14
- if [ ! -f "$OPENCLAW_CONFIG" ]; then
15
- cat > "$OPENCLAW_CONFIG" << 'OPENCLAW_JSON'
 
 
16
  {
17
  "gateway": {
 
18
  "bind": "lan",
 
 
 
 
19
  "controlUi": {
 
 
20
  "dangerouslyAllowHostHeaderOriginFallback": true
21
  }
22
  }
23
  }
24
  OPENCLAW_JSON
25
- echo "[start.sh] openclaw.json written (dangerouslyAllowHostHeaderOriginFallback=true)"
26
- else
27
- echo "[start.sh] openclaw.json exists — patching bind and controlUi settings"
28
- openclaw config set gateway.bind lan 2>/dev/null || true
29
- openclaw config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true 2>/dev/null || true
30
- fi
31
 
32
  # ── 1. Check if LiteLLM should be enabled ─────────────────────────────────────
33
- # Both LITELLM_API_KEY and LITELLM_MODEL must be set to enable the proxy.
34
- # If either is missing, OpenClaw starts without a pre-configured AI backend
35
- # and the user can configure providers through OpenClaw's own UI.
36
  if [ -z "${LITELLM_API_KEY:-}" ] || [ -z "${LITELLM_MODEL:-}" ]; then
37
  echo "[start.sh] LITELLM_API_KEY or LITELLM_MODEL not set — starting OpenClaw without LiteLLM proxy"
38
- echo "[start.sh] You can configure AI providers through OpenClaw's UI after startup"
39
  exec openclaw gateway --port 7860 --allow-unconfigured
40
  fi
41
 
42
  # ── 2. Write LiteLLM proxy config ─────────────────────────────────────────────
43
  LITELLM_CONFIG=/tmp/litellm_config.yaml
44
 
45
- # The wildcard model_name ("*") catches any model name OpenClaw sends,
46
- # routing it to the user's configured provider via LiteLLM.
47
  {
48
  echo "model_list:"
49
  echo " - model_name: \"*\""
 
4
  LITELLM_PID=""
5
 
6
  # ── 0. Write openclaw.json before gateway starts ──────────────────────────────
7
+ # HF Space runs behind a reverse proxy; all browser connections appear as
8
+ # non-loopback to OpenClaw, triggering device pairing. The three flags below
9
+ # are the documented solution for Docker/proxy deployments (github.com/openclaw/openclaw/issues/29801):
10
+ # - dangerouslyDisableDeviceAuth: skip device pairing for Control UI
11
+ # - allowInsecureAuth: allow token-only auth over HTTP
12
+ # - dangerouslyAllowHostHeaderOriginFallback: trust Host header as origin (no hardcoded allowedOrigins needed)
13
+ #
14
+ # gateway.auth.token is pinned via OPENCLAW_GATEWAY_TOKEN env var (set in HF Secrets),
15
+ # or falls back to a fixed default so token never changes between restarts.
16
  OPENCLAW_CONFIG_DIR="${HOME}/.openclaw"
17
  OPENCLAW_CONFIG="${OPENCLAW_CONFIG_DIR}/openclaw.json"
18
  mkdir -p "$OPENCLAW_CONFIG_DIR"
19
 
20
+ # Resolve gateway token: prefer env var (set in HF Space secrets), else use fixed fallback
21
+ GATEWAY_TOKEN="${OPENCLAW_GATEWAY_TOKEN:-openclaw-hf-default-token}"
22
+
23
+ cat > "$OPENCLAW_CONFIG" << OPENCLAW_JSON
24
  {
25
  "gateway": {
26
+ "mode": "local",
27
  "bind": "lan",
28
+ "auth": {
29
+ "mode": "token",
30
+ "token": "${GATEWAY_TOKEN}"
31
+ },
32
  "controlUi": {
33
+ "allowInsecureAuth": true,
34
+ "dangerouslyDisableDeviceAuth": true,
35
  "dangerouslyAllowHostHeaderOriginFallback": true
36
  }
37
  }
38
  }
39
  OPENCLAW_JSON
40
+
41
+ echo "[start.sh] openclaw.json written (token=${GATEWAY_TOKEN:0:8}..., dangerouslyDisableDeviceAuth=true)"
 
 
 
 
42
 
43
  # ── 1. Check if LiteLLM should be enabled ─────────────────────────────────────
 
 
 
44
  if [ -z "${LITELLM_API_KEY:-}" ] || [ -z "${LITELLM_MODEL:-}" ]; then
45
  echo "[start.sh] LITELLM_API_KEY or LITELLM_MODEL not set — starting OpenClaw without LiteLLM proxy"
 
46
  exec openclaw gateway --port 7860 --allow-unconfigured
47
  fi
48
 
49
  # ── 2. Write LiteLLM proxy config ─────────────────────────────────────────────
50
  LITELLM_CONFIG=/tmp/litellm_config.yaml
51
 
 
 
52
  {
53
  echo "model_list:"
54
  echo " - model_name: \"*\""