为什么选择 OpenClaw

OpenClaw 是一个现代化的开源项目脚手架与运行时,集成了依赖管理、配置中心、插件加载、热更新等核心能力。无论是写 CLI 工具、做 Web 后端,还是构建分布式微服务,OpenClaw 都能帮你把"工程化样板代码"压到最少。

本文假设你是第一次接触 OpenClaw,目标是在 5 分钟内 完成本地运行环境的搭建。

方式一:源码安装(推荐)

适合需要二次开发、调试源码、贡献代码的同学。

前置条件

工具最低版本说明
Go1.21+编译 OpenClaw 主程序
Node.js18+运行 Web 控制台(可选)
Git2.30+拉取源码
Make任意构建脚本依赖

拉取源码并编译

git clone https://github.com/opencLaw/opencLaw.git
cd opencLaw
make build
./bin/opencLaw --version

💡 第一次编译会比较慢,建议设置国内 Go 代理:

go env -w GOPROXY=https://goproxy.cn,direct

如果看到版本号输出(如 OpenClaw v0.18.2),恭喜你,环境安装成功。

方式二:Docker 一键启动(最快)

适合只想"先跑起来看看"的同学。

docker run -d \
  --name openclaw-dev \
  -p 8080:8080 \
  -v $(pwd)/data:/app/data \
  openclaw/opencLaw:latest

启动后访问 http://localhost:8080,看到欢迎页即代表成功。

Docker Compose 启动

更推荐使用 compose,便于管理依赖(数据库、Redis 等):

version: '3.8'
services:
  openclaw:
    image: openclaw/opencLaw:latest
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
      - ./config.yaml:/app/config.yaml
    depends_on:
      - postgres
      - redis
    environment:
      - DB_DSN=postgres://claw:claw@postgres:5432/openclaw
      - REDIS_ADDR=redis:6379

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: claw
      POSTGRES_PASSWORD: claw
      POSTGRES_DB: openclaw
    volumes:
      - pgdata:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine

volumes:
  pgdata:

运行 docker compose up -d,等待约 30 秒后访问 http://localhost:8080

第一个 Demo

下面我们跑一个最小的 CLI Demo,演示 OpenClaw 的插件加载能力。

// main.go
package main

import (
    "fmt"
    "github.com/opencLaw/opencLaw/pkg/runtime"
)

func main() {
    rt := runtime.New()
    rt.LoadPlugin("hello", func(args []string) error {
        fmt.Println("Hello from OpenClaw plugin!")
        return nil
    })
    rt.Run([]string{"hello"})
}

编译运行:

go run main.go
# 输出: Hello from OpenClaw plugin!

常见踩坑与排错

1. 端口被占用

Error: bind: address already in use :::8080

解决:更换端口 ./bin/opencLaw --port=9090,或在 docker run 中映射其他端口。

2. Go 版本过低

opencLaw requires go 1.21+, found 1.19

解决:升级 Go 版本,推荐使用 gvm 管理多版本。

3. Docker 拉取镜像超时

解决:配置镜像加速器(以阿里云为例):

// /etc/docker/daemon.json
{
  "registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
}

重启 Docker 后重试:sudo systemctl restart docker

下一步

如果遇到本文未覆盖的问题,欢迎通过页面底部"联系我们"反馈。