跨平台部署

概述

OpenClaw 的跨平台能力是其核心优势之一。无论是本地开发调试、移动设备测试还是服务器生产部署,OpenClaw 都提供了完善的方案支持。本章将详细介绍在 macOS、Linux、Windows、iOS 和 Android 等不同平台上的部署方法与注意事项。

macOS 本地部署与开发环境

macOS 是 OpenClaw 开发者的首选平台,提供了完善的原生开发体验。以下是在 macOS 上搭建开发环境的步骤:

# 1. 安装 Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. 安装 Node.js 和 pnpm
brew install node@20
corepack enable && corepack prepare pnpm@latest --activate

# 3. 安装系统依赖
brew install redis postgresql@16
brew services start redis
brew services start postgresql@16

# 4. 克隆项目并安装依赖
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install

# 5. 初始化数据库
pnpm db:migrate
pnpm db:seed

# 6. 配置环境变量
cp .env.example .env.local
# 编辑 .env.local,填入 AI 供应商 API Key

# 7. 启动开发服务
pnpm dev

macOS 开发环境的优势在于对 Docker Desktop 的原生支持以及与 Xcode 模拟器的无缝集成。如果你需要在 macOS 上调试 Telegram Bot,推荐使用 Telegram Desktop 或直接在 iOS 模拟器中运行 Telegram 客户端进行测试。

iOS 设备接入配置

在 iOS 设备上运行 OpenClaw 客户端主要通过两种方式:通过 TestFlight 安装测试版应用,或者通过 Safari 使用 Web Chat 界面。以下是 Web Chat 的 PWA 配置,可以让 iOS 用户获得接近原生应用的体验:

// openclaw.config.ts - PWA 配置
import { defineConfig } from 'openclaw';

export default defineConfig({
  web: {
    enabled: true,
    port: 3000,
    pwa: {
      enabled: true,
      name: 'OpenClaw 助手',
      shortName: 'OpenClaw',
      themeColor: '#4F46E5',
      backgroundColor: '#FFFFFF',
      display: 'standalone',
      icons: [
        {
          src: '/icons/icon-192x192.png',
          sizes: '192x192',
          type: 'image/png',
        },
        {
          src: '/icons/icon-512x512.png',
          sizes: '512x512',
          type: 'image/png',
        },
      ],
    },
    security: {
      cors: {
        allowedOrigins: ['https://your-domain.com'],
        methods: ['GET', 'POST'],
      },
      rateLimit: {
        windowMs: 60000,
        maxRequests: 30,
      },
    },
  },
});

iOS 设备接入时需要注意:Apple 对推送通知有严格的限制,Web 应用无法接收系统级推送。如果需要实时消息推送,建议集成 Firebase Cloud Messaging 或使用 Apple Push Notification Service(APNs)开发原生应用。

Android 环境部署

Android 平台的选择更加灵活。开发者既可以使用 Android Studio 配合 WebView 封装 Web Chat,也可以直接使用 Chrome 浏览器的添加到主屏幕功能:

<!-- Android WebView 封装示例 -->
<WebView
  android:id="@+id/webview"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:importantForAutofill="no" />

<!-- AndroidManifest.xml 权限配置 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<!-- 如果希望应用接收推送通知 -->
<service
  android:name=".FirebaseMessagingService"
  android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter>
</service>

在 Android 上运行 OpenClaw 客户端时,建议留意不同厂商 ROM 的后台管理策略。小米、华为、OPPO 等厂商会对后台应用进行严格的省电控制,可能影响 WebSocket 连接的稳定性。解决方法是在应用的权限设置中关闭省电优化并允许自启动。

Linux 服务器生产部署

Linux 是生产部署的标准选择。以下是基于 Ubuntu 22.04 LTS 的优化部署脚本:

#!/bin/bash
# Ubuntu 22.04 生产环境部署脚本

# 系统更新与基础依赖
apt update && apt upgrade -y
apt install -y curl wget git build-essential nginx certbot

# 安装 Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs

# 安装 Docker
curl -fsSL https://get.docker.com | bash
systemctl enable docker && systemctl start docker

# 配置防火墙
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

# 部署 OpenClaw
git clone https://github.com/openclaw/openclaw.git /opt/openclaw
cd /opt/openclaw
cp .env.example .env.production
# 编辑 .env.production 填入生产环境配置

# 使用 systemd 管理服务
cat > /etc/systemd/system/openclaw.service << 'SERVICE'
[Unit]
Description=OpenClaw AI Chatbot
After=network.target

[Service]
Type=simple
User=openclaw
WorkingDirectory=/opt/openclaw
ExecStart=/usr/bin/node dist/index.js
Restart=always
RestartSec=10
Environment=NODE_ENV=production
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
SERVICE

systemctl daemon-reload
systemctl enable openclaw
systemctl start openclaw

Linux 部署的关键优化点包括:使用 PM2 或 systemd 实现进程守护、配置 Nginx 反向代理处理 SSL 和 WebSocket 升级、设置内核参数 net.core.somaxconnvm.max_map_count 以应对高并发场景。

Windows 环境兼容性说明

Windows 并非 OpenClaw 的推荐生产平台,但在开发阶段完全可用。建议通过 WSL 2(Windows Subsystem for Linux)获得最佳的兼容性体验:

# PowerShell (以管理员身份运行)
# 1. 启用 WSL 2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 2. 安装 Ubuntu 22.04
wsl --install -d Ubuntu-22.04

# 3. 在 WSL 中安装 OpenClaw
wsl -d Ubuntu-22.04
# 进入 WSL 后,按照 Linux 部署流程操作

如果在 Windows 上不使用 WSL,需要注意 Node.js 的 bcrypt 等原生模块需要安装 Visual Studio Build Tools 才能编译。此外,Windows 的文件路径分隔符是反斜杠,可能导致配置文件中的路径引用失效,建议始终使用正斜杠或 path.posix 方法处理路径。

各平台部署对比表

维度macOSLinuxWindowsiOSAndroid
部署难度中(需 WSL)
开发体验良(WSL)
生产推荐
性能表现
Docker 支持原生原生需 WSL2
推送通知不适用不适用不适用APNsFCM
维护成本
适用场景开发调试生产部署开发测试移动端使用移动端使用

选择合适的部署平台取决于你的具体需求。对于团队开发,推荐 macOS 或 Linux 作为主力开发环境,生产部署则统一使用 Linux 服务器。移动端通过 PWA 或原生 WebView 方式接入,确保用户体验的一致性。