ANALYSIS
OpenClaw 搭建教程
概述
OpenClaw 是一个开源的个人 AI 助理平台,支持多通道(Telegram、WhatsApp、Discord 等)接入,具备技能扩展和自动化能力。
本教程涵盖以下部署方式:
- Windows 本地部署(推荐使用 WSL2 或 Docker Desktop)
- macOS 本地部署(Apple Silicon 和 Intel 均支持)
- Linux (Ubuntu 24.04) 本地部署
- Docker Compose 容器化部署(跨平台通用,推荐生产环境)
通用系统要求
| 平台 | 最低要求 | 推荐配置 |
|---|---|---|
| Windows | Windows 10 64 位, 8GB RAM, WSL2 | Windows 11, 16GB RAM |
| macOS | macOS 12+, 8GB RAM | macOS 13+, 16GB RAM |
| Ubuntu 24.04 | 2GB RAM, 10GB 存储 | 4GB+ RAM, 20GB+ 存储 |
| Docker | Docker Engine 20.10+ | Docker Desktop 4.20+ |
Docker Compose 容器化部署(推荐)
适用场景
- 生产环境部署
- 快速体验和测试
- 多平台统一部署方案
- 需要环境隔离的场景
安装 Docker
Windows
PRTCL // POWERSHELL
# 下载 Docker Desktop# 访问 https://www.docker.com/products/docker-desktop/
# 安装完成后验证docker --versiondocker-compose --versionmacOS
PRTCL // BASH
# 使用 Homebrew 安装brew install --cask docker
# 启动 Docker Desktopopen /Applications/Docker.app
# 验证安装docker --versiondocker-compose --versionUbuntu 24.04
PRTCL // BASH
# 更新软件包索引sudo apt update
# 安装 Docker Enginesudo apt install -y docker.io docker-compose-v2
# 启动并启用 Dockersudo systemctl start dockersudo systemctl enable docker
# 将当前用户添加到 docker 组sudo usermod -aG docker $USERnewgrp docker
# 验证安装docker --versiondocker compose version创建项目目录
PRTCL // BASH
# 创建工作目录mkdir -p ~/openclaw/{workspace,data}cd ~/openclaw创建 docker-compose.yml
PRTCL // YAML
version: '3.8'
services: openclaw: image: openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - "3000:3000" # Web UI 端口 - "9229:9229" # Node.js 调试端口(可选) volumes: - ./workspace:/home/node/.openclaw/workspace - ./data:/home/node/.openclaw/data environment: - NODE_ENV=production - TZ=Asia/Shanghai - OPENCLAW_HOST=0.0.0.0 - OPENCLAW_PORT=3000 networks: - openclaw-net deploy: resources: limits: memory: 2G cpus: '1.0' reservations: memory: 512M cpus: '0.5'
# PostgreSQL 数据库(可选) postgres: image: postgres:16-alpine container_name: openclaw-postgres restart: unless-stopped environment: - POSTGRES_USER=openclaw - POSTGRES_PASSWORD=your_secure_password_here - POSTGRES_DB=openclaw volumes: - postgres_data:/var/lib/postgresql/data networks: - openclaw-net
# Redis 缓存(可选) redis: image: redis:7-alpine container_name: openclaw-redis restart: unless-stopped command: redis-server --appendonly yes volumes: - redis_data:/data networks: - openclaw-net
networks: openclaw-net: driver: bridge
volumes: postgres_data: redis_data:启动服务
PRTCL // BASH
# 启动所有服务docker compose up -d
# 查看服务状态docker compose ps
# 查看日志docker compose logs -f openclaw
# 访问 Web UI# 浏览器打开: http://localhost:3000常用管理命令
PRTCL // BASH
# 停止服务docker compose down
# 停止并删除数据卷docker compose down -v
# 重启服务docker compose restart
# 更新镜像docker compose pulldocker compose up -d
# 进入容器docker exec -it openclaw bash
# 查看资源使用docker stats openclawWindows 本地部署
方案一:WSL2 + Docker(推荐)
安装 WSL2
PRTCL // POWERSHELL
# 以管理员身份运行 PowerShell
# 启用 WSL2 功能wsl --installwsl --set-default-version 2
# 重启计算机
# 安装 Ubuntu 发行版wsl --install -d Ubuntu-24.04在 WSL2 中部署
PRTCL // BASH
# 进入 WSL2 Ubuntuwsl -d Ubuntu-24.04
# 更新系统sudo apt update && sudo apt upgrade -y
# 安装 Docker(参考 Ubuntu 部分)sudo apt install -y docker.io docker-compose-v2
# 添加用户到 docker 组sudo usermod -aG docker $USERnewgrp docker
# 创建项目目录mkdir -p ~/openclaw/{workspace,data}cd ~/openclaw
# 创建 docker-compose.yml(参考上方配置)# 启动服务docker compose up -d方案二:Docker Desktop
安装步骤
- 下载 Docker Desktop for Windows
- 运行安装程序,启用 WSL2 集成
- 重启计算机
- 启动 Docker Desktop
部署 OpenClaw
PRTCL // POWERSHELL
# 在 PowerShell 或 CMD 中执行
# 创建项目目录mkdir C:\Users\%USERNAME%\openclawcd C:\Users\%USERNAME%\openclaw
# 创建 docker-compose.yml(参考上方配置)
# 启动服务docker compose up -d
# 访问 http://localhost:3000方案三:原生 Node.js 安装
安装依赖
PRTCL // POWERSHELL
# 安装 Node.js 20 LTS# 访问 https://nodejs.org/ 下载安装
# 安装 Git# 访问 https://git-scm.com/ 下载安装
# 安装 Python 3.11+# 访问 https://www.python.org/ 下载安装,勾选 "Add Python to PATH"
# 验证安装node --versionnpm --versiongit --versionpython --version安装 OpenClaw
PRTCL // POWERSHELL
# 创建工作目录mkdir C:\Users\%USERNAME%\.openclawcd C:\Users\%USERNAME%\.openclaw
# 克隆仓库git clone https://github.com/openclaw/openclaw.git workspacecd workspace
# 安装依赖npm install
# 构建项目npm run build
# 启动服务npm start
# 使用 PM2 管理进程(可选)npm install -g pm2pm2 start npm --name "openclaw" -- startpm2 savemacOS 本地部署
安装 Homebrew
PRTCL // BASH
# 安装 Homebrew(如果未安装)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 配置环境变量(Apple Silicon)echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofileeval "$(/opt/homebrew/bin/brew shellenv)"方案一:Docker Desktop(推荐)
安装 Docker Desktop
PRTCL // BASH
# 使用 Homebrew 安装brew install --cask docker
# 启动 Docker Desktopopen /Applications/Docker.app
# 验证安装docker --versiondocker compose version部署 OpenClaw
PRTCL // BASH
# 创建项目目录mkdir -p ~/openclaw/{workspace,data}cd ~/openclaw
# 创建 docker-compose.yml(参考上方配置)
# 启动服务docker compose up -d
# 访问 http://localhost:3000方案二:原生 Node.js 安装
安装依赖
PRTCL // BASH
# 安装 Node.js 20brew install node@20
# 链接到系统路径brew link node@20
# 安装 Python 3.11+brew install python@3.11
# 验证安装node --versionnpm --versionpython3 --version安装 OpenClaw
PRTCL // BASH
# 创建工作目录mkdir -p ~/.openclaw/workspacecd ~/.openclaw/workspace
# 克隆仓库git clone https://github.com/openclaw/openclaw.git .# 或下载发布版本curl -L https://github.com/openclaw/openclaw/archive/refs/heads/main.tar.gz | tar -xz --strip-components=1
# 安装依赖npm install
# 构建项目npm run build
# 启动服务npm start
# 创建 LaunchAgent 服务(开机自启)cat > ~/Library/LaunchAgents/com.user.openclaw.plist << 'EOF'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>Label</key> <string>com.user.openclaw</string> <key>ProgramArguments</key> <array> <string>/opt/homebrew/bin/node</string> <string>/Users/$(whoami)/.openclaw/workspace/index.js</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>WorkingDirectory</key> <string>/Users/$(whoami)/.openclaw/workspace</string> <key>StandardOutPath</key> <string>/tmp/openclaw.log</string> <key>StandardErrorPath</key> <string>/tmp/openclaw.error.log</string></dict></plist>EOF
# 加载服务launchctl load ~/Library/LaunchAgents/com.user.openclaw.plistUbuntu 24.04 本地部署
方案一:Docker Compose(推荐)
安装 Docker
PRTCL // BASH
#!/bin/bash# 更新软件包索引sudo apt update
# 安装必要的依赖sudo apt install -y ca-certificates curl gnupg
# 添加 Docker 官方 GPG 密钥sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg
# 设置 Docker 仓库echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Enginesudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动并启用 Dockersudo systemctl start dockersudo systemctl enable docker
# 将当前用户添加到 docker 组sudo usermod -aG docker $USERnewgrp docker
# 验证安装docker --versiondocker compose version部署 OpenClaw
PRTCL // BASH
# 创建项目目录mkdir -p ~/openclaw/{workspace,data}cd ~/openclaw
# 创建 docker-compose.yml(参考上方配置)
# 启动服务docker compose up -d
# 设置开机自启docker compose enable
# 访问 http://localhost:3000方案二:原生 Node.js 安装
安装系统依赖
PRTCL // BASH
#!/bin/bashset -e
# 更新系统sudo apt update && sudo apt upgrade -y
# 安装系统依赖sudo apt install -y \ git curl wget \ build-essential \ python3 python3-pip python3-venv \ libssl-dev libcurl4-openssl-dev \ pkg-config
# 安装 Node.js 20(使用 NodeSource 仓库)curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs
# 验证安装node --versionnpm --versionpython3 --version安装 OpenClaw
PRTCL // BASH
#!/bin/bashset -e
# 创建工作目录mkdir -p ~/.openclaw/workspacecd ~/.openclaw/workspace
# 克隆仓库git clone https://github.com/openclaw/openclaw.git .
# 安装 Node.js 依赖npm install
# 构建项目npm run build
# 创建 systemd 服务sudo tee /etc/systemd/system/openclaw.service << 'EOF'[Unit]Description=OpenClaw AI AssistantAfter=network.target
[Service]Type=simpleUser=$(whoami)WorkingDirectory=/home/$(whoami)/.openclaw/workspaceEnvironment=NODE_ENV=productionEnvironment=TZ=Asia/ShanghaiExecStart=/usr/bin/node index.jsRestart=alwaysRestartSec=10StandardOutput=journalStandardError=journal
[Install]WantedBy=multi-user.targetEOF
# 重载 systemd 配置sudo systemctl daemon-reload
# 启用并启动服务sudo systemctl enable openclaw.servicesudo systemctl start openclaw.service
# 查看服务状态sudo systemctl status openclaw.service
# 查看日志sudo journalctl -u openclaw.service -f
echo "安装完成!"echo "访问地址: http://localhost:3000"echo "查看日志: sudo journalctl -u openclaw.service -f"初始配置
访问 Web UI
启动服务后,打开浏览器访问:http://localhost:3000
创建管理员账户
首次访问需要设置管理员账户和密码。
配置通道
Telegram 通道
PRTCL // YAML
channels: telegram: enabled: true token: "YOUR_BOT_TOKEN" # 从 @BotFather 获取 allowFrom: - "YOUR_TELEGRAM_USER_ID"WhatsApp 通道
PRTCL // YAML
channels: whatsapp: enabled: true sessionPath: "/home/node/.openclaw/data/whatsapp-session"配置技能
PRTCL // YAML
skills: baidu-search: enabled: true apiKey: "YOUR_BAIDU_API_KEY"
weather: enabled: true provider: "wttr.in"配置定时任务
PRTCL // YAML
jobs: - name: "每日天气推送" schedule: "0 8 * * *" # 每天 8:00 task: "获取今日天气并推送" channel: "telegram"
- name: "科技热点日报" schedule: "0 7 * * *" # 每天 7:00 task: "收集科技新闻并分析" channel: "telegram"数据备份与恢复
Docker 部署备份
PRTCL // BASH
#!/bin/bashBACKUP_DIR="/backup/openclaw"DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录mkdir -p "$BACKUP_DIR"
echo "=== OpenClaw 备份 ($DATE) ==="
# 备份工作空间echo "备份工作空间..."tar -czf "$BACKUP_DIR/workspace_$DATE.tar.gz" -C ~/openclaw workspace
# 备份数据目录echo "备份数据目录..."tar -czf "$BACKUP_DIR/data_$DATE.tar.gz" -C ~/openclaw data
# 备份数据库(如果使用)if docker compose ps | grep -q postgres; then echo "备份 PostgreSQL 数据库..." docker compose exec -T postgres pg_dump -U openclaw openclaw > "$BACKUP_DIR/db_$DATE.sql"fi
# 清理旧备份(保留 7 天)find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -deletefind "$BACKUP_DIR" -name "*.sql" -mtime +7 -delete
echo "备份完成: $BACKUP_DIR"原生部署备份
PRTCL // BASH
#!/bin/bashBACKUP_DIR="/backup/openclaw"DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录mkdir -p "$BACKUP_DIR"
echo "=== OpenClaw 备份 ($DATE) ==="
# 备份工作空间tar -czf "$BACKUP_DIR/workspace_$DATE.tar.gz" -C ~/.openclaw workspace
# 备份数据目录tar -czf "$BACKUP_DIR/data_$DATE.tar.gz" -C ~/.openclaw data
echo "备份完成: $BACKUP_DIR"常见问题排查
Docker 相关问题
端口冲突
PRTCL // BASH
# 检查端口占用sudo netstat -tlnp | grep :3000
# 修改 docker-compose.yml 中的端口映射ports: - "3001:3000"权限问题
PRTCL // BASH
# 修复目录权限sudo chown -R $USER:$USER ~/openclawsudo chmod -R 755 ~/openclaw/workspace内存不足
PRTCL // YAML
# 在 docker-compose.yml 中调整资源限制deploy: resources: limits: memory: 1G原生部署问题
Node.js 版本不匹配
PRTCL // BASH
# 使用 nvm 管理 Node.js 版本curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bashsource ~/.bashrcnvm install 20nvm use 20系统服务启动失败
PRTCL // BASH
# 查看服务状态sudo systemctl status openclaw.service
# 查看详细日志sudo journalctl -u openclaw.service -n 50
# 重启服务sudo systemctl restart openclaw.service网络连接问题
PRTCL // BASH
# 测试网络连接curl -I https://github.comcurl -I https://hub.docker.com
# 配置代理(如果需要)export http_proxy=http://proxy.example.com:8080export https_proxy=http://proxy.example.com:8080性能优化
Docker 部署优化
PRTCL // YAML
# docker-compose.yml 优化配置services: openclaw: # ... 其他配置 # 优化 Node.js 内存 command: ["node", "--max-old-space-size=1536", "index.js"]
# 资源限制 deploy: resources: limits: memory: 2G cpus: '2' reservations: memory: 512M cpus: '0.5'原生部署优化
PRTCL // BASH
# 使用 PM2 进程管理npm install -g pm2pm2 start npm --name "openclaw" -- startpm2 startuppm2 save
# 优化 Node.js 内存export NODE_OPTIONS="--max-old-space-size=2048"部署方案对比
| 特性 | Docker Compose | Windows 原生 | macOS 原生 | Ubuntu 原生 |
|---|---|---|---|---|
| 安装速度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 环境隔离 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐⭐ |
| 系统资源 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 调试难度 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 生产推荐 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 跨平台 | ⭐⭐⭐⭐⭐ | ⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
推荐选择
| 使用场景 | 推荐方案 |
|---|---|
| 快速体验 | Docker Compose |
| 开发调试 | 各平台原生安装 |
| 生产部署 | Docker Compose |
| 资源受限 | Ubuntu 原生 |
相关资源
- 官方文档: https://docs.openclaw.ai
- GitHub 仓库: https://github.com/openclaw/openclaw
- 社区支持: https://discord.com/invite/clawd
- 技能市场: https://clawhub.com
- Docker Hub: https://hub.docker.com/r/openclaw/openclaw
最后更新: 2026-03-12 作者: EchoHaoRan
R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.04.08
Auth_Verified: 2026.04.08
