新都在

本地部署OpenClaw

2026/04/09
#ai
7
0

本地部署OpenClaw

使用 Docker 部署 OpenClaw 是一种更干净、更隔离的方式,尤其适合服务器或长期运行的环境。这种方式能帮你轻松管理数据持久化、配置和更新。

下面我会先介绍 Docker 部署的优势,然后提供一份详细的部署指南,包括两种主流方法。

🐳 Docker 部署的核心优势

  • 环境隔离:所有依赖都被封装在容器内,与宿主机系统完全隔离,避免了环境冲突和潜在的系统污染风险。
  • 部署高效:可以像运行一个普通软件一样,用简单的命令就能快速启动或关闭服务。
  • 数据持久化:通过挂载卷 (Volumes),OpenClaw 的配置、会话等数据都存储在宿主机上,即使容器被删除或更新,核心数据也不会丢失。
  • 轻松管理:无论是更新版本、迁移到新服务器还是管理不同版本的 OpenClaw,都比直接安装的方式更简单、更灵活。

✅ 准备工作

在开始之前,请确保你的系统满足以下条件:

  • 安装 Docker 和 Docker Compose v2:这是部署的基础。
  • 硬件要求:至少 2GB 内存,建议 4GB 或以上。
  • 网络环境:可以正常访问外网,以便拉取 Docker 镜像。

如果你使用的是 Windows 系统,推荐通过 WSL 2 后端的 Docker Desktop 进行部署,这样体验会更好。

🚀 部署方法一:使用交互脚本(推荐)

这是官方推荐的部署方式,它通过一个交互式脚本,可以一站式完成构建、配置和启动,非常适合初次部署。

  1. 克隆官方仓库
    首先,需要将 OpenClaw 的源代码克隆到本地,并进入项目目录。

    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
    
  2. 运行 Docker 设置脚本
    这是最关键的一步。直接执行项目中的 Docker 设置脚本。

    ./docker-setup.sh
    

    执行后,脚本会启动一个交互式向导,引导你完成:

    • 安全确认:阅读并确认安全须知。
    • 模型提供商设置:选择你想使用的模型(如 OpenAI、Anthropic、或通过 Kimi 这类第三方平台),并输入你的 API Key。你也可以选择使用本地模型(如 Ollama)。
    • 渠道配置:选择并授权你想要接入的聊天平台(如 Telegram、WhatsApp 等)。
    • 技能设置:启用或跳过网络搜索、图像生成等可选技能。
    • 网关启动:脚本会自动构建 Docker 镜像,生成一个网关令牌 (Gateway Token),并启动 Gateway 服务。
  3. 验证部署
    脚本完成后,可以通过以下命令检查 Gateway 服务是否正常运行。

    docker compose logs openclaw-gateway
    

    如果日志中出现 [gateway] listening on ws://0.0.0.0:18789 的字样,就说明部署成功了。

📝 部署方法二:手动使用 docker-compose.yml

这种方法适合想深入了解或需要对配置进行精细控制的用户。这里以官方 GitHub Container Registry (ghcr.io/openclaw/openclaw:latest) 的镜像为例。

  1. 创建项目目录和持久化数据目录

    mkdir -p ~/openclaw/data ~/openclaw/workspace
    cd ~/openclaw
    
  2. 创建 docker-compose.yml 文件
    ~/openclaw 目录下创建一个 docker-compose.yml 文件,并填入以下内容。

    services:
      openclaw:
        image: ghcr.io/openclaw/openclaw:latest
        container_name: openclaw-gateway
        restart: always
        ports:
          - "127.0.0.1:18789:18789"
        volumes:
          - ~/openclaw/data:/home/node/.openclaw
          - ~/openclaw/workspace:/home/node/.openclaw/workspace
        environment:
          - NODE_ENV=production
    

    配置说明

    • image: 使用的 Docker 镜像。
    • volumes: 将宿主机的两个目录挂载到容器内。这是数据持久化的关键,确保了所有配置和会话数据都保存在宿主机上,容器更新或删除后不会丢失。
    • ports: 将容器的 18789 端口映射到宿主机的 127.0.0.1 地址上,这会让 Gateway 服务只能通过本地环回地址访问,增强了安全性。
    • restart: 设置为 always,保证容器在退出或系统重启后能自动恢复运行。
  3. 启动容器

    docker compose up -d
    

    这条命令会根据配置文件在后台启动 OpenClaw 容器。

⚙️ 配置与使用

无论用哪种方法,部署完成后,还需要进行一些初始化配置,并确保安全访问。

  • 运行交互式配置向导
    如果你是首次使用,需要运行 onboard 命令来完成模型的初始设置。

    docker compose run --rm openclaw-cli onboard
    

    这个命令会启动一个向导,流程和上面 docker-setup.sh 脚本类似,引导你完成 API Key、渠道等基础配置。

  • 访问网页控制台
    一切就绪后,打开浏览器访问 http://127.0.0.1:18789。首次访问时,需要输入一个 Gateway Token 进行身份验证。

  • 如何获取 Gateway Token?
    Token 在你完成 onboard 配置向导后会自动生成。你可以通过两种方式找到它:

    1. 查看 .env 文件:在交互式配置完成后,Docker 设置脚本会在项目根目录生成一个 .env 文件,里面包含 OPENCLAW_GATEWAY_TOKEN 变量,其值就是你的 Token。
    2. 从容器日志中查找:如果找不到 .env 文件,也可以查看 Gateway 的启动日志,通常在首次启动时会打印出生成的 Token 或包含 Token 的完整访问 URL。
    3. 使用CLI命令生成:如果上述方法都找不到,可以直接进入容器运行命令生成新Token:
    docker compose exec openclaw-gateway openclaw gateway token generate
    
  • 配置聊天渠道
    后续可以通过 CLI 容器来添加或管理聊天渠道。例如,添加 Telegram 机器人的命令如下:

    docker compose run --rm openclaw-cli channels add --channel telegram --token "<你的Telegram机器人Token>"
    

🔧 常见问题与最佳实践

  • 更新 OpenClaw:更新镜像并重启容器即可。

    docker compose pull openclaw
    docker compose up -d
    
  • 配置自定义模型(以 DeepSeek 为例):不建议通过环境变量配置自定义模型,推荐直接修改 ~/openclaw/data/openclaw.json 文件。一个参考配置如下:

    {
      "models": {
        "providers": {
          "deepseek": {
            "baseUrl": "https://api.deepseek.com",
            "apiKey": "你的DeepSeek API密钥",
            "api": "openai-completions",
            "models": [ { "id": "deepseek-chat", "name": "deepseek-chat" } ]
          }
        }
      },
      "agents": {
        "defaults": { "model": "deepseek/deepseek-chat" }
      },
      "gateway": { "auth": { "mode": "token" } }
    }
    
  • 安全访问公网:如果想把服务暴露到公网,强烈建议使用 Nginx 等反向代理,并配置 HTTPS 证书和域名来保证通信安全。也可以使用 SSH 隧道作为临时的安全访问方案。

  • 国内镜像加速:如果在国内拉取 ghcr.io 的镜像很慢,可以配置国内镜像加速源。或者使用社区维护的中文镜像,如 jerryan999/openclaw-zh:latest,它也同步了官方更新。

    docker pull jerryan999/openclaw-zh:latest
    
  • 配置变更不生效:OpenClaw 有配置缓存。如果修改配置后不生效,可以尝试停止容器,删除 agents/openclaw.json 文件,再重新启动。

    docker compose down
    rm -rf agents/ openclaw.json
    docker compose up -d
    

这份指南涵盖了两种主要的Docker部署方式。你是打算在自己的本地机器上试水,还是准备直接部署到云服务器上长期运行呢?告诉我你的具体使用场景,我可以针对性地帮你推荐更合适的部署方案~