我用上openclaw了!

先看效果:


使用huggingface和英伟达白嫖OpenClaw
1.打开 https://build.nvidia.com/ 申请API密钥,复制API密钥,调用地址,模型ID到txt文稿。
2.打开huggingface,新建 Docker space。
3.添加文件,文件名为Dockerfile。

# 核心镜像选择
FROM node:22-slim

# 1. 基础依赖补全
RUN apt-get update && apt-get install -y --no-install-recommends \
    git openssh-client build-essential python3 python3-pip \
    g++ make ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 2. 安装 HF 数据交互工具
RUN pip3 install --no-cache-dir huggingface_hub --break-system-packages

# 3. 构建环境与 Git 协议优化
RUN update-ca-certificates && \
    git config --global http.sslVerify false && \
    git config --global url."https://github.com/".insteadOf ssh://[email protected]/

# 4. OpenClaw 核心安装
RUN npm install -g openclaw@latest --unsafe-perm

# 5. 环境变量预设
ENV PORT=7860 \
    OPENCLAW_GATEWAY_MODE=local \
    HOME=/root

# 6. Python 同步引擎 (sync.py)
RUN echo 'import os, sys, tarfile\n\
from huggingface_hub import HfApi, hf_hub_download\n\
from datetime import datetime, timedelta\n\
api = HfApi()\n\
repo_id = os.getenv("HF_DATASET")\n\
token = os.getenv("HF_TOKEN")\n\
def restore():\n\
    try:\n\
        files = api.list_repo_files(repo_id=repo_id, repo_type="dataset", token=token)\n\
        now = datetime.now()\n\
        for i in range(5):\n\
            day = (now - timedelta(days=i)).strftime("%Y-%m-%d")\n\
            name = f"backup_{day}.tar.gz"\n\
            if name in files:\n\
                path = hf_hub_download(repo_id=repo_id, filename=name, repo_type="dataset", token=token)\n\
                with tarfile.open(path, "r:gz") as tar: tar.extractall(path="/root/.openclaw/")\n\
                print(f"Success: Restored from {name}")\n\
                return True\n\
    except Exception as e: print(f"Restore Error: {e}")\n\
def backup():\n\
    try:\n\
        day = datetime.now().strftime("%Y-%m-%d")\n\
        name = f"backup_{day}.tar.gz"\n\
        with tarfile.open(name, "w:gz") as tar:\n\
            if os.path.exists("/root/.openclaw/sessions"): tar.add("/root/.openclaw/sessions", arcname="sessions")\n\
            tar.add("/root/.openclaw/openclaw.json", arcname="openclaw.json")\n\
        api.upload_file(path_or_fileobj=name, path_in_repo=name, repo_id=repo_id, repo_type="dataset", token=token)\n\
        print(f"Backup {name} Success.")\n\
    except Exception as e: print(f"Backup Error: {e}")\n\
if __name__ == "__main__":\n\
    if len(sys.argv) > 1 and sys.argv[1] == "backup": backup()\n\
    else: restore()' > /usr/local/bin/sync.py

# 7. 启动控制逻辑(NVIDIA 配置版)
RUN echo "#!/bin/bash\n\
set -e\n\
mkdir -p /root/.openclaw/sessions\n\
\n\
# 阶段 3: 执行启动前恢复\n\
python3 /usr/local/bin/sync.py restore\n\
\n\
# 处理地址逻辑\n\
CLEAN_BASE=\$(echo \"\$OPENAI_API_BASE\" | sed \"s|/chat/completions||g\" | sed \"s|/v1/|/v1|g\" | sed \"s|/v1\$|/v1|g\")\n\
\n\
# 阶段 2: 生成网关与模型配置(NVIDIA 版)\n\
cat > /root/.openclaw/openclaw.json <<EOF\n\
{\n\
  \"models\": {\n\
    \"providers\": {\n\
      \"nvidia\": {\n\
        \"baseUrl\": \"\$CLEAN_BASE\", \n\
        \"apiKey\": \"\$OPENAI_API_KEY\", \n\
        \"api\": \"openai-completions\",\n\
        \"models\": [{ \n\
          \"id\": \"\$MODEL\", \n\
          \"name\": \"Kimi K2.5\", \n\
          \"contextWindow\": 256000 \n\
        }]\n\
      }\n\
    }\n\
  },\n\
  \"agents\": { \n\
    \"defaults\": { \n\
      \"model\": { \n\
        \"primary\": \"nvidia/\$MODEL\" \n\
      } \n\
    } \n\
  },\n\
  \"gateway\": {\n\
    \"mode\": \"local\", \n\
    \"bind\": \"lan\", \n\
    \"port\": \$PORT,\n\
    \"trustedProxies\": [\"0.0.0.0/0\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"],\n\
    \"auth\": { \n\
      \"mode\": \"token\", \n\
      \"token\": \"\$OPENCLAW_GATEWAY_TOKEN\" \n\
    },\n\
    \"remote\": { \n\
      \"token\": \"\$OPENCLAW_GATEWAY_TOKEN\" \n\
    },\n\
    \"controlUi\": { \n\
      \"allowInsecureAuth\": true,\n\
      \"dangerouslyAllowHostHeaderOriginFallback\": true,\n\
      \"dangerouslyDisableDeviceAuth\": true \n\
    }\n\
  }\n\
}\n\
EOF\n\
\n\
# 增量备份循环 (每 6 小时)\n\
(while true; do sleep 21600; python3 /usr/local/bin/sync.py backup; done) &\n\
\n\
openclaw doctor --fix\n\
exec openclaw gateway run --port \$PORT\n\
" > /usr/local/bin/start-openclaw && chmod +x /usr/local/bin/start-openclaw

EXPOSE 7860
CMD ["/usr/local/bin/start-openclaw"]

添加环境变量:OPENAI_API_BASE(调用地址)( https://integrate.api.nvidia.com/v1/chat/completions

MODEL(模型ID)(我的是moonshotai/kimi-k2.5)

HF_TOKEN(你的hf token,没有就创建,权限为写 一定是私密变量)

OPENAI_API_KEY(你的英伟达token 一定是私密变量)

OPENCLAW_GATEWAY_TOKEN(你的OpenClaw访问密码)

创建datasets,名字是openclaw-data。

再添加一个环境变量: HF_DATASET(你的用户名/openclaw-data)

部署完访问链接:你的用户名-你的space名.hf.space

重要:打开 cron-job.org 定时每六小时自动访问一次访问链接,避免休眠!

1 个赞

顺便提一句,我爸的Kimiclaw连个无头浏览器都装不了,还在忽悠说下载了百分之17一直下载失败,骗鬼呢!我这儿几秒钟装完

看到的教我怎么用,常用命令这些的。我还不会

看文档吧 或者命令行里面 /help