File size: 1,811 Bytes
d6b7dbe
 
 
30802fb
 
 
d6b7dbe
 
 
 
30802fb
 
 
d6b7dbe
 
75e0712
d6b7dbe
30802fb
d6b7dbe
 
 
 
 
 
e7dd8ba
d6b7dbe
 
ba7c227
d6b7dbe
763101f
 
e7dd8ba
 
763101f
 
ba7c227
763101f
 
d6b7dbe
 
30802fb
 
 
 
 
 
 
d6b7dbe
 
 
 
3321708
09ae1e3
3321708
d6b7dbe
30802fb
 
 
 
3321708
 
 
 
 
30802fb
d6b7dbe
 
 
 
30802fb
 
d6b7dbe
 
30802fb
 
3321708
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
set -e

PORT=${PORT:-7860}

# 1. 初始化目录
mkdir -p /root/.openclaw/agents/main/sessions
mkdir -p /root/.openclaw/credentials
mkdir -p /root/.openclaw/sessions

# 2. 恢复数据
echo "=== Restore Data ==="
python3 /app/sync.py

# 3. 处理 API 地址
CLEAN_BASE=$(echo "$NVIDIA_API_BASE" | sed "s|/chat/completions||g" | sed "s|/v1/|/v1|g" | sed "s|/v1$|/v1|g")

# 4. 生成配置文件(无 JSON 语法错误)
cat > /root/.openclaw/openclaw.json <<EOF
{
  "models": {
    "providers": {
      "nvidia": {
        "baseUrl": "$CLEAN_BASE",
        "apiKey": "$NVIDIA_API_KEY",
        "api": "openai-completions",
        "models": [
          { "id": "$MODEL", "name": "🟢 NVIDIA - $MODEL", "contextWindow": 128000 }
        ]
      },
      "openai": { 
        "baseUrl": "$OPENAI_API_BASE",
        "apiKey": "$OPENAI_API_KEY",
        "api": "openai-completions",
        "models": [ 
            {"id": "gpt-4o-mini","name": "🔵 OpenAI - gpt-4o-mini", "contextWindow": 128000 } 
          ]
        }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "nvidia/$MODEL"
      }
    }
  },
  "commands": {
    "restart": true
  },
  "gateway": {
    "mode": "local",
    "bind": "lan",
    "port": $PORT,
    "trustedProxies": ["0.0.0.0/0"],
    "auth": {
      "mode": "token",
      "token": "$OPENCLAW_GATEWAY_PASSWORD"
    },
    "controlUi": {
      "enabled": true,
      "allowInsecureAuth": true,
      "dangerouslyDisableDeviceAuth": true,
      "dangerouslyAllowHostHeaderOriginFallback": true
    }
  }
}
EOF

# 5. 定时备份(每1小时)
echo "=== Start Backup Loop ==="
(while true; do sleep 3600; python3 /app/sync.py backup; done) &

# 6. 启动 OpenClaw Gateway
echo "=== Starting OpenClaw ==="
exec openclaw gateway run --port $PORT