| #!/bin/bash |
| set -e |
|
|
| |
| echo "创建 OpenClaw 目录..." |
| mkdir -p /root/.openclaw/agents/main/sessions |
| mkdir -p /root/.openclaw/credentials |
| mkdir -p /root/.openclaw/sessions |
|
|
| |
| echo "尝试从 HF Dataset 恢复数据..." |
| python3 /app/sync.py restore |
|
|
| |
| CLEAN_BASE=$(echo "$OPENAI_API_BASE" | sed "s|/chat/completions||g" | sed "s|/v1/|/v1|g" | sed "s|/v1$|/v1|g") |
|
|
| |
| echo "生成 OpenClaw 配置文件..." |
| cat > /root/.openclaw/openclaw.json <<EOF |
| { |
| "models": { |
| "providers": { |
| "nvidia": { |
| "baseUrl": "$CLEAN_BASE", |
| "apiKey": "$OPENAI_API_KEY", |
| "api": "openai-completions", |
| "models": [{ "id": "$MODEL", "name": "$MODEL", "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 |
|
|
| echo "配置文件生成完成。" |
|
|
| |
| ( |
| while true; do |
| sleep 3600 |
| echo "执行定时数据备份..." |
| python3 /app/sync.py backup |
| done |
| ) & |
|
|
| |
| echo "启动 OpenClaw Gateway..." |
| exec openclaw gateway run --port $PORT |