openclaw / start-openclaw.sh
he1237596's picture
Update start-openclaw.sh
75e0712 verified
#!/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