OpenClawSkills
GitHub
平台 • 5 分钟阅读

GCP

在 GCP Compute Engine VM (Docker) 上 24/7 运行 OpenClaw Gateway,具有持久化状态

Tutorial.step

目标

在 GCP Compute Engine VM 上使用 Docker 运行持久化的 OpenClaw Gateway,具有持久化状态、内置二进制文件和安全的重启行为。

如果您想要 "OpenClaw 24/7,约 $5-12/月",这是 Google Cloud 上的可靠设置。

定价因机器类型和区域而异;选择适合您工作负载的最小 VM,如果遇到 OOM 则升级。

Tutorial.step

我们要做什么(简单术语)?

- 创建 GCP 项目并启用计费

- 创建 Compute Engine VM

- 安装 Docker(隔离的应用运行时)

- 在 Docker 中启动 OpenClaw Gateway

- 在主机上持久化 ''~/.openclaw'' + ''~/.openclaw/workspace''(在重启/重建后保留)

- 通过 SSH 隧道从笔记本电脑访问控制 UI

Gateway 可以通过以下方式访问:

- 从笔记本电脑进行 SSH 端口转发

- 如果您自己管理防火墙和令牌,则直接暴露端口

本指南在 GCP Compute Engine 上使用 Debian。

Ubuntu 也可以;相应地映射软件包。

对于通用 Docker 流程,请参阅 ''Docker''。

Tutorial.step

您需要什么

- GCP 账户(e2-micro 符合免费套餐条件)

- 已安装 gcloud CLI(或使用 Cloud Console)

- 从笔记本电脑进行 SSH 访问

- 基本的 SSH + 复制/粘贴操作

- 约 20-30 分钟

- Docker 和 Docker Compose

- 模型认证凭据

- 可选的提供商凭据

- WhatsApp QR

- Telegram 机器人令牌

- Gmail OAuth

Tutorial.step

2)创建 GCP 项目

CLI:

Bash
gcloud projects create my-openclaw-project --name="OpenClaw Gateway"
gcloud config set project my-openclaw-project

在 https://console.cloud.google.com/billing 启用计费(Compute Engine 必需)。

启用 Compute Engine API:

Bash
gcloud services enable compute.googleapis.com

Console:

1. 转到 IAM & Admin > 创建项目

2. 命名并创建

3. 为项目启用计费

4. 导航到 API 和服务 > 启用 API > 搜索 "Compute Engine API" > 启用

Tutorial.step

4)SSH 进入 VM

CLI:

Bash
gcloud compute ssh openclaw-gateway --zone=us-central1-a

Console:

在 Compute Engine 仪表板中点击 VM 旁边的 "SSH" 按钮。

注意:VM 创建后,SSH 密钥传播可能需要 1-2 分钟。如果连接被拒绝,请等待并重试。

Tutorial.step

6)克隆 OpenClaw 仓库

Bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw

本指南假设您将构建自定义镜像以确保二进制文件持久化。

Tutorial.step

8)配置环境变量

在仓库根目录中创建 ''.env''。

Bash
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789

OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw
OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace

GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw

生成强密钥:

Bash
openssl rand -hex 32

不要提交此文件。

Tutorial.step

10)将所需二进制文件烘焙到镜像中(关键)

在运行中的容器内安装二进制文件是一个陷阱。

运行时安装的任何内容都会在重启时丢失。

技能所需的所有外部二进制文件必须在镜像构建时安装。

以下示例仅显示三个常见二进制文件:

- ''gog'' 用于 Gmail 访问

- ''goplaces'' 用于 Google Places

- ''wacli'' 用于 WhatsApp

这些是示例,不是完整列表。

您可以使用相同的模式安装所需的任意数量的二进制文件。

如果您稍后添加依赖于其他二进制文件的新技能,您必须:

1. 更新 Dockerfile

2. 重新构建镜像

3. 重启容器

示例 Dockerfile

Dockerfile
FROM node:22-bookworm

RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*

RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog

RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli


WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts

RUN corepack enable
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
RUN pnpm ui:install
RUN pnpm ui:build
ENV NODE_ENV=production

CMD ["node","dist/index.js"]
Tutorial.step

12)验证 Gateway

Bash
docker compose logs -f openclaw-gateway

成功:

终端
[gateway] listening on ws://0.0.0.0:18789
Tutorial.step

什么在哪里持久化(事实来源)

OpenClaw 在 Docker 中运行,但 Docker 不是事实来源。

所有长期状态必须在重启、重建和重新启动后保留。

| 组件 | 位置 | 持久化机制 | 备注 |

| Gateway 配置 | ''/home/node/.openclaw/'' | 主机卷挂载 | 包括 ''openclaw.json''、令牌 |

| 模型认证配置文件 | ''/home/node/.openclaw/'' | 主机卷挂载 | OAuth 令牌、API 密钥 |

| 技能配置 | ''/home/node/.openclaw/skills/'' | 主机卷挂载 | 技能级状态 |

| 代理工作区 | ''/home/node/.openclaw/workspace/'' | 主机卷挂载 | 代码和代理制品 |

| WhatsApp 会话 | ''/home/node/.openclaw/'' | 主机卷挂载 | 保留 QR 登录 |

| Gmail 密钥环 | ''/home/node/.openclaw/'' | 主机卷 + 密码 | 需要 ''GOG_KEYRING_PASSWORD'' |

| 外部二进制文件 | ''/usr/local/bin/'' | Docker 镜像 | 必须在构建时烘焙 |

| Node 运行时 | 容器文件系统 | Docker 镜像 | 每次镜像构建时重建 |

| 操作系统软件包 | 容器文件系统 | Docker 镜像 | 不要在运行时安装 |

| Docker 容器 | 临时 | 可重启 | 可以安全销毁 |

Tutorial.step

故障排除

SSH 连接被拒绝

VM 创建后,SSH 密钥传播可能需要 1-2 分钟。请等待并重试。

OS 登录问题

检查您的 OS 登录配置文件:

Bash
gcloud compute os-login describe-profile

确保您的帐户具有所需的 IAM 权限(Compute OS Login 或 Compute OS Admin Login)。

内存不足 (OOM)

如果使用 e2-micro 并遇到 OOM,请升级到 e2-small 或 e2-medium:

Bash
gcloud compute instances stop openclaw-gateway --zone=us-central1-a

gcloud compute instances set-machine-type openclaw-gateway \
  --zone=us-central1-a \
  --machine-type=e2-small

gcloud compute instances start openclaw-gateway --zone=us-central1-a
Tutorial.step

后续步骤

- 设置消息频道:''频道''

- 将本地设备配对为节点:''节点''

- 配置 Gateway:''Gateway 配置''