mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-28 17:01:53 +03:00
docs: restructure Get Started tab and improve onboarding flow (#9950)
* docs: restructure Get Started tab and improve onboarding flow - Flatten nested Onboarding group into linear First Steps flow - Add 'What is OpenClaw?' narrative section to landing page - Split wizard.md into streamlined overview + full reference (reference/wizard.md) - Move Pairing to Channels > Configuration - Move Bootstrapping to Agents > Fundamentals - Move macOS app onboarding to Platforms > macOS companion app - Move Lore to Help > Community - Remove duplicate install instructions from openclaw.md - Mirror navigation changes in zh-CN tabs - No content deleted — all detail preserved or relocated * docs: move deployment pages to install/, fix Platforms tab routing, clarify onboarding paths - Move deployment guides (fly, hetzner, gcp, macos-vm, exe-dev, railway, render, northflank) from platforms/ and root to install/ - Add 'Hosting and deployment' group to Install tab - Slim Gateway & Ops 'Remote access and deployment' down to 'Remote access' - Swap Platforms tab before Gateway & Ops to fix path-prefix routing - Move macOS app onboarding into First steps (parallel to CLI wizard) - Rename sidebar titles to 'Onboarding: CLI' / 'Onboarding: macOS App' - Add redirects for all moved paths - Update all internal links (en + zh-CN) - Fix img tag syntax in onboarding.md
This commit is contained in:
@@ -34,7 +34,7 @@ x-i18n:
|
||||
**选择提供商:**
|
||||
|
||||
- DigitalOcean:最简单的用户体验 + 可预测的设置(本指南)
|
||||
- Hetzner:性价比高(参见 [Hetzner 指南](/platforms/hetzner))
|
||||
- Hetzner:性价比高(参见 [Hetzner 指南](/install/hetzner))
|
||||
- Oracle Cloud:可以 $0/月,但更麻烦且仅限 ARM(参见 [Oracle 指南](/platforms/oracle))
|
||||
|
||||
---
|
||||
@@ -263,7 +263,7 @@ free -h
|
||||
|
||||
## 另请参阅
|
||||
|
||||
- [Hetzner 指南](/platforms/hetzner) — 更便宜、更强大
|
||||
- [Hetzner 指南](/install/hetzner) — 更便宜、更强大
|
||||
- [Docker 安装](/install/docker) — 容器化设置
|
||||
- [Tailscale](/gateway/tailscale) — 安全远程访问
|
||||
- [配置](/gateway/configuration) — 完整配置参考
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想要一个便宜的常驻 Linux 主机来运行 Gateway 网关
|
||||
- 你想要远程控制 UI 访问而无需运行自己的 VPS
|
||||
summary: 在 exe.dev 上运行 OpenClaw Gateway 网关(VM + HTTPS 代理)以实现远程访问
|
||||
title: exe.dev
|
||||
x-i18n:
|
||||
generated_at: "2026-02-03T07:51:36Z"
|
||||
model: claude-opus-4-5
|
||||
provider: pi
|
||||
source_hash: 8d57ee7dd6029f0b778465c147092b824a0f1b0680af13032aaf116ff3d4d671
|
||||
source_path: platforms/exe-dev.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# exe.dev
|
||||
|
||||
目标:OpenClaw Gateway 网关运行在 exe.dev VM 上,可从你的笔记本电脑通过以下地址访问:`https://<vm-name>.exe.xyz`
|
||||
|
||||
本页假设使用 exe.dev 的默认 **exeuntu** 镜像。如果你选择了不同的发行版,请相应地映射软件包。
|
||||
|
||||
## 新手快速路径
|
||||
|
||||
1. [https://exe.new/openclaw](https://exe.new/openclaw)
|
||||
2. 根据需要填写你的认证密钥/令牌
|
||||
3. 点击 VM 旁边的"Agent",然后等待...
|
||||
4. ???
|
||||
5. 完成
|
||||
|
||||
## 你需要什么
|
||||
|
||||
- exe.dev 账户
|
||||
- `ssh exe.dev` 访问 [exe.dev](https://exe.dev) 虚拟机(可选)
|
||||
|
||||
## 使用 Shelley 自动安装
|
||||
|
||||
Shelley,[exe.dev](https://exe.dev) 的智能体,可以使用我们的提示立即安装 OpenClaw。使用的提示如下:
|
||||
|
||||
```
|
||||
Set up OpenClaw (https://docs.openclaw.ai/install) on this VM. Use the non-interactive and accept-risk flags for openclaw onboarding. Add the supplied auth or token as needed. Configure nginx to forward from the default port 18789 to the root location on the default enabled site config, making sure to enable Websocket support. Pairing is done by "openclaw devices list" and "openclaw device approve <request id>". Make sure the dashboard shows that OpenClaw's health is OK. exe.dev handles forwarding from port 8000 to port 80/443 and HTTPS for us, so the final "reachable" should be <vm-name>.exe.xyz, without port specification.
|
||||
```
|
||||
|
||||
## 手动安装
|
||||
|
||||
## 1) 创建 VM
|
||||
|
||||
从你的设备:
|
||||
|
||||
```bash
|
||||
ssh exe.dev new
|
||||
```
|
||||
|
||||
然后连接:
|
||||
|
||||
```bash
|
||||
ssh <vm-name>.exe.xyz
|
||||
```
|
||||
|
||||
提示:保持此 VM **有状态**。OpenClaw 在 `~/.openclaw/` 和 `~/.openclaw/workspace/` 下存储状态。
|
||||
|
||||
## 2) 安装先决条件(在 VM 上)
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git curl jq ca-certificates openssl
|
||||
```
|
||||
|
||||
## 3) 安装 OpenClaw
|
||||
|
||||
运行 OpenClaw 安装脚本:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://openclaw.ai/install.sh | bash
|
||||
```
|
||||
|
||||
## 4) 设置 nginx 将 OpenClaw 代理到端口 8000
|
||||
|
||||
编辑 `/etc/nginx/sites-enabled/default`:
|
||||
|
||||
```
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
listen 8000;
|
||||
listen [::]:8000;
|
||||
|
||||
server_name _;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:18789;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
# WebSocket 支持
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
# 标准代理头
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# 长连接超时设置
|
||||
proxy_read_timeout 86400s;
|
||||
proxy_send_timeout 86400s;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 5) 访问 OpenClaw 并授予权限
|
||||
|
||||
访问 `https://<vm-name>.exe.xyz/?token=YOUR-TOKEN-FROM-TERMINAL`(参阅新手引导中的控制 UI 输出)。使用 `openclaw devices list` 和 `openclaw devices approve <requestId>` 批准设备。如有疑问,从浏览器使用 Shelley!
|
||||
|
||||
## 远程访问
|
||||
|
||||
远程访问由 [exe.dev](https://exe.dev) 的认证处理。默认情况下,来自端口 8000 的 HTTP 流量通过电子邮件认证转发到 `https://<vm-name>.exe.xyz`。
|
||||
|
||||
## 更新
|
||||
|
||||
```bash
|
||||
npm i -g openclaw@latest
|
||||
openclaw doctor
|
||||
openclaw gateway restart
|
||||
openclaw health
|
||||
```
|
||||
|
||||
指南:[更新](/install/updating)
|
||||
@@ -1,490 +0,0 @@
|
||||
---
|
||||
description: Deploy OpenClaw on Fly.io
|
||||
title: Fly.io
|
||||
x-i18n:
|
||||
generated_at: "2026-02-03T07:52:55Z"
|
||||
model: claude-opus-4-5
|
||||
provider: pi
|
||||
source_hash: a00bae43e416112eb269126445c51492a30abe9e136d89e161fc4193314a876f
|
||||
source_path: platforms/fly.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Fly.io 部署
|
||||
|
||||
**目标:** OpenClaw Gateway 网关运行在 [Fly.io](https://fly.io) 机器上,具有持久存储、自动 HTTPS 和 Discord/渠道访问。
|
||||
|
||||
## 你需要什么
|
||||
|
||||
- 已安装 [flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/)
|
||||
- Fly.io 账户(免费套餐可用)
|
||||
- 模型认证:Anthropic API 密钥(或其他提供商密钥)
|
||||
- 渠道凭证:Discord bot token、Telegram token 等
|
||||
|
||||
## 初学者快速路径
|
||||
|
||||
1. 克隆仓库 → 自定义 `fly.toml`
|
||||
2. 创建应用 + 卷 → 设置密钥
|
||||
3. 使用 `fly deploy` 部署
|
||||
4. SSH 进入创建配置或使用 Control UI
|
||||
|
||||
## 1)创建 Fly 应用
|
||||
|
||||
```bash
|
||||
# Clone the repo
|
||||
git clone https://github.com/openclaw/openclaw.git
|
||||
cd openclaw
|
||||
|
||||
# Create a new Fly app (pick your own name)
|
||||
fly apps create my-openclaw
|
||||
|
||||
# Create a persistent volume (1GB is usually enough)
|
||||
fly volumes create openclaw_data --size 1 --region iad
|
||||
```
|
||||
|
||||
**提示:** 选择离你近的区域。常见选项:`lhr`(伦敦)、`iad`(弗吉尼亚)、`sjc`(圣何塞)。
|
||||
|
||||
## 2)配置 fly.toml
|
||||
|
||||
编辑 `fly.toml` 以匹配你的应用名称和需求。
|
||||
|
||||
**安全注意事项:** 默认配置暴露公共 URL。对于没有公共 IP 的加固部署,参见[私有部署](#私有部署加固)或使用 `fly.private.toml`。
|
||||
|
||||
```toml
|
||||
app = "my-openclaw" # Your app name
|
||||
primary_region = "iad"
|
||||
|
||||
[build]
|
||||
dockerfile = "Dockerfile"
|
||||
|
||||
[env]
|
||||
NODE_ENV = "production"
|
||||
OPENCLAW_PREFER_PNPM = "1"
|
||||
OPENCLAW_STATE_DIR = "/data"
|
||||
NODE_OPTIONS = "--max-old-space-size=1536"
|
||||
|
||||
[processes]
|
||||
app = "node dist/index.js gateway --allow-unconfigured --port 3000 --bind lan"
|
||||
|
||||
[http_service]
|
||||
internal_port = 3000
|
||||
force_https = true
|
||||
auto_stop_machines = false
|
||||
auto_start_machines = true
|
||||
min_machines_running = 1
|
||||
processes = ["app"]
|
||||
|
||||
[[vm]]
|
||||
size = "shared-cpu-2x"
|
||||
memory = "2048mb"
|
||||
|
||||
[mounts]
|
||||
source = "openclaw_data"
|
||||
destination = "/data"
|
||||
```
|
||||
|
||||
**关键设置:**
|
||||
|
||||
| 设置 | 原因 |
|
||||
| ------------------------------ | ------------------------------------------------------------------------- |
|
||||
| `--bind lan` | 绑定到 `0.0.0.0` 以便 Fly 的代理可以访问 Gateway 网关 |
|
||||
| `--allow-unconfigured` | 无需配置文件启动(你稍后会创建一个) |
|
||||
| `internal_port = 3000` | 必须与 `--port 3000`(或 `OPENCLAW_GATEWAY_PORT`)匹配以进行 Fly 健康检查 |
|
||||
| `memory = "2048mb"` | 512MB 太小;推荐 2GB |
|
||||
| `OPENCLAW_STATE_DIR = "/data"` | 在卷上持久化状态 |
|
||||
|
||||
## 3)设置密钥
|
||||
|
||||
```bash
|
||||
# Required: Gateway token (for non-loopback binding)
|
||||
fly secrets set OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)
|
||||
|
||||
# Model provider API keys
|
||||
fly secrets set ANTHROPIC_API_KEY=sk-ant-...
|
||||
|
||||
# Optional: Other providers
|
||||
fly secrets set OPENAI_API_KEY=sk-...
|
||||
fly secrets set GOOGLE_API_KEY=...
|
||||
|
||||
# Channel tokens
|
||||
fly secrets set DISCORD_BOT_TOKEN=MTQ...
|
||||
```
|
||||
|
||||
**注意事项:**
|
||||
|
||||
- 非 loopback 绑定(`--bind lan`)出于安全需要 `OPENCLAW_GATEWAY_TOKEN`。
|
||||
- 像对待密码一样对待这些 token。
|
||||
- **优先使用环境变量而不是配置文件**来存储所有 API 密钥和 token。这可以避免密钥出现在 `openclaw.json` 中,防止意外暴露或记录。
|
||||
|
||||
## 4)部署
|
||||
|
||||
```bash
|
||||
fly deploy
|
||||
```
|
||||
|
||||
首次部署构建 Docker 镜像(约 2-3 分钟)。后续部署更快。
|
||||
|
||||
部署后验证:
|
||||
|
||||
```bash
|
||||
fly status
|
||||
fly logs
|
||||
```
|
||||
|
||||
你应该看到:
|
||||
|
||||
```
|
||||
[gateway] listening on ws://0.0.0.0:3000 (PID xxx)
|
||||
[discord] logged in to discord as xxx
|
||||
```
|
||||
|
||||
## 5)创建配置文件
|
||||
|
||||
SSH 进入机器创建正确的配置:
|
||||
|
||||
```bash
|
||||
fly ssh console
|
||||
```
|
||||
|
||||
创建配置目录和文件:
|
||||
|
||||
```bash
|
||||
mkdir -p /data
|
||||
cat > /data/openclaw.json << 'EOF'
|
||||
{
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"model": {
|
||||
"primary": "anthropic/claude-opus-4-5",
|
||||
"fallbacks": ["anthropic/claude-sonnet-4-5", "openai/gpt-4o"]
|
||||
},
|
||||
"maxConcurrent": 4
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"id": "main",
|
||||
"default": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"auth": {
|
||||
"profiles": {
|
||||
"anthropic:default": { "mode": "token", "provider": "anthropic" },
|
||||
"openai:default": { "mode": "token", "provider": "openai" }
|
||||
}
|
||||
},
|
||||
"bindings": [
|
||||
{
|
||||
"agentId": "main",
|
||||
"match": { "channel": "discord" }
|
||||
}
|
||||
],
|
||||
"channels": {
|
||||
"discord": {
|
||||
"enabled": true,
|
||||
"groupPolicy": "allowlist",
|
||||
"guilds": {
|
||||
"YOUR_GUILD_ID": {
|
||||
"channels": { "general": { "allow": true } },
|
||||
"requireMention": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"gateway": {
|
||||
"mode": "local",
|
||||
"bind": "auto"
|
||||
},
|
||||
"meta": {
|
||||
"lastTouchedVersion": "2026.1.29"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
**注意:** 使用 `OPENCLAW_STATE_DIR=/data` 时,配置路径是 `/data/openclaw.json`。
|
||||
|
||||
**注意:** Discord token 可以来自:
|
||||
|
||||
- 环境变量:`DISCORD_BOT_TOKEN`(推荐用于密钥)
|
||||
- 配置文件:`channels.discord.token`
|
||||
|
||||
如果使用环境变量,无需将 token 添加到配置中。Gateway 网关会自动读取 `DISCORD_BOT_TOKEN`。
|
||||
|
||||
重启以应用:
|
||||
|
||||
```bash
|
||||
exit
|
||||
fly machine restart <machine-id>
|
||||
```
|
||||
|
||||
## 6)访问 Gateway 网关
|
||||
|
||||
### Control UI
|
||||
|
||||
在浏览器中打开:
|
||||
|
||||
```bash
|
||||
fly open
|
||||
```
|
||||
|
||||
或访问 `https://my-openclaw.fly.dev/`
|
||||
|
||||
粘贴你的 Gateway 网关 token(来自 `OPENCLAW_GATEWAY_TOKEN` 的那个)进行认证。
|
||||
|
||||
### 日志
|
||||
|
||||
```bash
|
||||
fly logs # Live logs
|
||||
fly logs --no-tail # Recent logs
|
||||
```
|
||||
|
||||
### SSH 控制台
|
||||
|
||||
```bash
|
||||
fly ssh console
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "App is not listening on expected address"
|
||||
|
||||
Gateway 网关绑定到 `127.0.0.1` 而不是 `0.0.0.0`。
|
||||
|
||||
**修复:** 在 `fly.toml` 中的进程命令添加 `--bind lan`。
|
||||
|
||||
### 健康检查失败 / 连接被拒绝
|
||||
|
||||
Fly 无法在配置的端口上访问 Gateway 网关。
|
||||
|
||||
**修复:** 确保 `internal_port` 与 Gateway 网关端口匹配(设置 `--port 3000` 或 `OPENCLAW_GATEWAY_PORT=3000`)。
|
||||
|
||||
### OOM / 内存问题
|
||||
|
||||
容器持续重启或被终止。迹象:`SIGABRT`、`v8::internal::Runtime_AllocateInYoungGeneration` 或静默重启。
|
||||
|
||||
**修复:** 在 `fly.toml` 中增加内存:
|
||||
|
||||
```toml
|
||||
[[vm]]
|
||||
memory = "2048mb"
|
||||
```
|
||||
|
||||
或更新现有机器:
|
||||
|
||||
```bash
|
||||
fly machine update <machine-id> --vm-memory 2048 -y
|
||||
```
|
||||
|
||||
**注意:** 512MB 太小。1GB 可能可以工作但在负载或详细日志记录下可能 OOM。**推荐 2GB。**
|
||||
|
||||
### Gateway 网关锁问题
|
||||
|
||||
Gateway 网关拒绝启动并显示"already running"错误。
|
||||
|
||||
这发生在容器重启但 PID 锁文件在卷上持久存在时。
|
||||
|
||||
**修复:** 删除锁文件:
|
||||
|
||||
```bash
|
||||
fly ssh console --command "rm -f /data/gateway.*.lock"
|
||||
fly machine restart <machine-id>
|
||||
```
|
||||
|
||||
锁文件在 `/data/gateway.*.lock`(不在子目录中)。
|
||||
|
||||
### 配置未被读取
|
||||
|
||||
如果使用 `--allow-unconfigured`,Gateway 网关会创建最小配置。你在 `/data/openclaw.json` 的自定义配置应该在重启时被读取。
|
||||
|
||||
验证配置是否存在:
|
||||
|
||||
```bash
|
||||
fly ssh console --command "cat /data/openclaw.json"
|
||||
```
|
||||
|
||||
### 通过 SSH 写入配置
|
||||
|
||||
`fly ssh console -C` 命令不支持 shell 重定向。要写入配置文件:
|
||||
|
||||
```bash
|
||||
# Use echo + tee (pipe from local to remote)
|
||||
echo '{"your":"config"}' | fly ssh console -C "tee /data/openclaw.json"
|
||||
|
||||
# Or use sftp
|
||||
fly sftp shell
|
||||
> put /local/path/config.json /data/openclaw.json
|
||||
```
|
||||
|
||||
**注意:** 如果文件已存在,`fly sftp` 可能会失败。先删除:
|
||||
|
||||
```bash
|
||||
fly ssh console --command "rm /data/openclaw.json"
|
||||
```
|
||||
|
||||
### 状态未持久化
|
||||
|
||||
如果重启后丢失凭证或会话,状态目录正在写入容器文件系统。
|
||||
|
||||
**修复:** 确保 `fly.toml` 中设置了 `OPENCLAW_STATE_DIR=/data` 并重新部署。
|
||||
|
||||
## 更新
|
||||
|
||||
```bash
|
||||
# Pull latest changes
|
||||
git pull
|
||||
|
||||
# Redeploy
|
||||
fly deploy
|
||||
|
||||
# Check health
|
||||
fly status
|
||||
fly logs
|
||||
```
|
||||
|
||||
### 更新机器命令
|
||||
|
||||
如果你需要更改启动命令而无需完全重新部署:
|
||||
|
||||
```bash
|
||||
# Get machine ID
|
||||
fly machines list
|
||||
|
||||
# Update command
|
||||
fly machine update <machine-id> --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
||||
|
||||
# Or with memory increase
|
||||
fly machine update <machine-id> --vm-memory 2048 --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
||||
```
|
||||
|
||||
**注意:** `fly deploy` 后,机器命令可能会重置为 `fly.toml` 中的内容。如果你进行了手动更改,请在部署后重新应用它们。
|
||||
|
||||
## 私有部署(加固)
|
||||
|
||||
默认情况下,Fly 分配公共 IP,使你的 Gateway 网关可通过 `https://your-app.fly.dev` 访问。这很方便,但意味着你的部署可被互联网扫描器(Shodan、Censys 等)发现。
|
||||
|
||||
对于**无公共暴露**的加固部署,使用私有模板。
|
||||
|
||||
### 何时使用私有部署
|
||||
|
||||
- 你只进行**出站**调用/消息(无入站 webhooks)
|
||||
- 你使用 **ngrok 或 Tailscale** 隧道处理任何 webhook 回调
|
||||
- 你通过 **SSH、代理或 WireGuard** 而不是浏览器访问 Gateway 网关
|
||||
- 你希望部署**对互联网扫描器隐藏**
|
||||
|
||||
### 设置
|
||||
|
||||
使用 `fly.private.toml` 替代标准配置:
|
||||
|
||||
```bash
|
||||
# Deploy with private config
|
||||
fly deploy -c fly.private.toml
|
||||
```
|
||||
|
||||
或转换现有部署:
|
||||
|
||||
```bash
|
||||
# List current IPs
|
||||
fly ips list -a my-openclaw
|
||||
|
||||
# Release public IPs
|
||||
fly ips release <public-ipv4> -a my-openclaw
|
||||
fly ips release <public-ipv6> -a my-openclaw
|
||||
|
||||
# Switch to private config so future deploys don't re-allocate public IPs
|
||||
# (remove [http_service] or deploy with the private template)
|
||||
fly deploy -c fly.private.toml
|
||||
|
||||
# Allocate private-only IPv6
|
||||
fly ips allocate-v6 --private -a my-openclaw
|
||||
```
|
||||
|
||||
此后,`fly ips list` 应该只显示 `private` 类型的 IP:
|
||||
|
||||
```
|
||||
VERSION IP TYPE REGION
|
||||
v6 fdaa:x:x:x:x::x private global
|
||||
```
|
||||
|
||||
### 访问私有部署
|
||||
|
||||
由于没有公共 URL,使用以下方法之一:
|
||||
|
||||
**选项 1:本地代理(最简单)**
|
||||
|
||||
```bash
|
||||
# Forward local port 3000 to the app
|
||||
fly proxy 3000:3000 -a my-openclaw
|
||||
|
||||
# Then open http://localhost:3000 in browser
|
||||
```
|
||||
|
||||
**选项 2:WireGuard VPN**
|
||||
|
||||
```bash
|
||||
# Create WireGuard config (one-time)
|
||||
fly wireguard create
|
||||
|
||||
# Import to WireGuard client, then access via internal IPv6
|
||||
# Example: http://[fdaa:x:x:x:x::x]:3000
|
||||
```
|
||||
|
||||
**选项 3:仅 SSH**
|
||||
|
||||
```bash
|
||||
fly ssh console -a my-openclaw
|
||||
```
|
||||
|
||||
### 私有部署的 Webhooks
|
||||
|
||||
如果你需要 webhook 回调(Twilio、Telnyx 等)而不暴露公共:
|
||||
|
||||
1. **ngrok 隧道** - 在容器内或作为 sidecar 运行 ngrok
|
||||
2. **Tailscale Funnel** - 通过 Tailscale 暴露特定路径
|
||||
3. **仅出站** - 某些提供商(Twilio)对于出站呼叫无需 webhooks 也能正常工作
|
||||
|
||||
使用 ngrok 的示例语音通话配置:
|
||||
|
||||
```json
|
||||
{
|
||||
"plugins": {
|
||||
"entries": {
|
||||
"voice-call": {
|
||||
"enabled": true,
|
||||
"config": {
|
||||
"provider": "twilio",
|
||||
"tunnel": { "provider": "ngrok" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
ngrok 隧道在容器内运行并提供公共 webhook URL,而不暴露 Fly 应用本身。
|
||||
|
||||
### 安全优势
|
||||
|
||||
| 方面 | 公共 | 私有 |
|
||||
| --------------- | ------ | -------- |
|
||||
| 互联网扫描器 | 可发现 | 隐藏 |
|
||||
| 直接攻击 | 可能 | 被阻止 |
|
||||
| Control UI 访问 | 浏览器 | 代理/VPN |
|
||||
| Webhook 投递 | 直接 | 通过隧道 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
- Fly.io 使用 **x86 架构**(非 ARM)
|
||||
- Dockerfile 兼容两种架构
|
||||
- 对于 WhatsApp/Telegram 新手引导,使用 `fly ssh console`
|
||||
- 持久数据位于 `/data` 卷上
|
||||
- Signal 需要 Java + signal-cli;使用自定义镜像并保持内存在 2GB+。
|
||||
|
||||
## 成本
|
||||
|
||||
使用推荐配置(`shared-cpu-2x`,2GB RAM):
|
||||
|
||||
- 根据使用情况约 $10-15/月
|
||||
- 免费套餐包含一些配额
|
||||
|
||||
详情参见 [Fly.io 定价](https://fly.io/docs/about/pricing/)。
|
||||
@@ -1,510 +0,0 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想在 GCP 上 24/7 运行 OpenClaw
|
||||
- 你想要在自己的 VM 上运行生产级、常驻的 Gateway 网关
|
||||
- 你想完全控制持久化、二进制文件和重启行为
|
||||
summary: 在 GCP Compute Engine VM(Docker)上 24/7 运行 OpenClaw Gateway 网关并持久化状态
|
||||
title: GCP
|
||||
x-i18n:
|
||||
generated_at: "2026-02-03T07:52:50Z"
|
||||
model: claude-opus-4-5
|
||||
provider: pi
|
||||
source_hash: abb236dd421505d307bb3869340c9a0c940de095b93af9ad1f130cc08a9deadb
|
||||
source_path: platforms/gcp.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 在 GCP Compute Engine 上运行 OpenClaw(Docker,生产 VPS 指南)
|
||||
|
||||
## 目标
|
||||
|
||||
使用 Docker 在 GCP Compute Engine VM 上运行持久化的 OpenClaw Gateway 网关,具有持久状态、内置二进制文件和安全的重启行为。
|
||||
|
||||
如果你想要"OpenClaw 24/7 大约 $5-12/月",这是在 Google Cloud 上的可靠设置。
|
||||
价格因机器类型和区域而异;选择适合你工作负载的最小 VM,如果遇到 OOM 则扩容。
|
||||
|
||||
## 我们在做什么(简单说明)?
|
||||
|
||||
- 创建 GCP 项目并启用计费
|
||||
- 创建 Compute Engine VM
|
||||
- 安装 Docker(隔离的应用运行时)
|
||||
- 在 Docker 中启动 OpenClaw Gateway 网关
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(重启/重建后仍保留)
|
||||
- 通过 SSH 隧道从你的笔记本电脑访问控制 UI
|
||||
|
||||
Gateway 网关可以通过以下方式访问:
|
||||
|
||||
- 从你的笔记本电脑进行 SSH 端口转发
|
||||
- 如果你自己管理防火墙和令牌,可以直接暴露端口
|
||||
|
||||
本指南使用 GCP Compute Engine 上的 Debian。
|
||||
Ubuntu 也可以;请相应地映射软件包。
|
||||
有关通用 Docker 流程,请参阅 [Docker](/install/docker)。
|
||||
|
||||
---
|
||||
|
||||
## 快速路径(有经验的运维人员)
|
||||
|
||||
1. 创建 GCP 项目 + 启用 Compute Engine API
|
||||
2. 创建 Compute Engine VM(e2-small,Debian 12,20GB)
|
||||
3. SSH 进入 VM
|
||||
4. 安装 Docker
|
||||
5. 克隆 OpenClaw 仓库
|
||||
6. 创建持久化主机目录
|
||||
7. 配置 `.env` 和 `docker-compose.yml`
|
||||
8. 内置所需二进制文件、构建并启动
|
||||
|
||||
---
|
||||
|
||||
## 你需要什么
|
||||
|
||||
- GCP 账户(e2-micro 符合免费层条件)
|
||||
- 已安装 gcloud CLI(或使用 Cloud Console)
|
||||
- 从你的笔记本电脑 SSH 访问
|
||||
- 对 SSH + 复制/粘贴有基本了解
|
||||
- 约 20-30 分钟
|
||||
- Docker 和 Docker Compose
|
||||
- 模型认证凭证
|
||||
- 可选的提供商凭证
|
||||
- WhatsApp QR
|
||||
- Telegram bot token
|
||||
- Gmail OAuth
|
||||
|
||||
---
|
||||
|
||||
## 1) 安装 gcloud CLI(或使用 Console)
|
||||
|
||||
**选项 A:gcloud CLI**(推荐用于自动化)
|
||||
|
||||
从 https://cloud.google.com/sdk/docs/install 安装
|
||||
|
||||
初始化并认证:
|
||||
|
||||
```bash
|
||||
gcloud init
|
||||
gcloud auth login
|
||||
```
|
||||
|
||||
**选项 B:Cloud Console**
|
||||
|
||||
所有步骤都可以通过 https://console.cloud.google.com 的 Web UI 完成
|
||||
|
||||
---
|
||||
|
||||
## 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 > Create Project
|
||||
2. 命名并创建
|
||||
3. 为项目启用计费
|
||||
4. 导航到 APIs & Services > Enable APIs > 搜索 "Compute Engine API" > Enable
|
||||
|
||||
---
|
||||
|
||||
## 3) 创建 VM
|
||||
|
||||
**机器类型:**
|
||||
|
||||
| 类型 | 配置 | 成本 | 说明 |
|
||||
| -------- | ----------------------- | ---------- | -------------- |
|
||||
| e2-small | 2 vCPU,2GB RAM | ~$12/月 | 推荐 |
|
||||
| e2-micro | 2 vCPU(共享),1GB RAM | 符合免费层 | 负载下可能 OOM |
|
||||
|
||||
**CLI:**
|
||||
|
||||
```bash
|
||||
gcloud compute instances create openclaw-gateway \
|
||||
--zone=us-central1-a \
|
||||
--machine-type=e2-small \
|
||||
--boot-disk-size=20GB \
|
||||
--image-family=debian-12 \
|
||||
--image-project=debian-cloud
|
||||
```
|
||||
|
||||
**Console:**
|
||||
|
||||
1. 转到 Compute Engine > VM instances > Create instance
|
||||
2. Name:`openclaw-gateway`
|
||||
3. Region:`us-central1`,Zone:`us-central1-a`
|
||||
4. Machine type:`e2-small`
|
||||
5. Boot disk:Debian 12,20GB
|
||||
6. Create
|
||||
|
||||
---
|
||||
|
||||
## 4) SSH 进入 VM
|
||||
|
||||
**CLI:**
|
||||
|
||||
```bash
|
||||
gcloud compute ssh openclaw-gateway --zone=us-central1-a
|
||||
```
|
||||
|
||||
**Console:**
|
||||
|
||||
在 Compute Engine 仪表板中点击 VM 旁边的"SSH"按钮。
|
||||
|
||||
注意:VM 创建后 SSH 密钥传播可能需要 1-2 分钟。如果连接被拒绝,请等待并重试。
|
||||
|
||||
---
|
||||
|
||||
## 5) 安装 Docker(在 VM 上)
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git curl ca-certificates
|
||||
curl -fsSL https://get.docker.com | sudo sh
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
注销并重新登录以使组更改生效:
|
||||
|
||||
```bash
|
||||
exit
|
||||
```
|
||||
|
||||
然后重新 SSH 登录:
|
||||
|
||||
```bash
|
||||
gcloud compute ssh openclaw-gateway --zone=us-central1-a
|
||||
```
|
||||
|
||||
验证:
|
||||
|
||||
```bash
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6) 克隆 OpenClaw 仓库
|
||||
|
||||
```bash
|
||||
git clone https://github.com/openclaw/openclaw.git
|
||||
cd openclaw
|
||||
```
|
||||
|
||||
本指南假设你将构建自定义镜像以保证二进制文件持久化。
|
||||
|
||||
---
|
||||
|
||||
## 7) 创建持久化主机目录
|
||||
|
||||
Docker 容器是临时的。
|
||||
所有长期状态必须存在于主机上。
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.openclaw
|
||||
mkdir -p ~/.openclaw/workspace
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
**不要提交此文件。**
|
||||
|
||||
---
|
||||
|
||||
## 9) Docker Compose 配置
|
||||
|
||||
创建或更新 `docker-compose.yml`。
|
||||
|
||||
```yaml
|
||||
services:
|
||||
openclaw-gateway:
|
||||
image: ${OPENCLAW_IMAGE}
|
||||
build: .
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- HOME=/home/node
|
||||
- NODE_ENV=production
|
||||
- TERM=xterm-256color
|
||||
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
|
||||
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
|
||||
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
|
||||
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
|
||||
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
||||
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
volumes:
|
||||
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
|
||||
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
|
||||
ports:
|
||||
# 推荐:在 VM 上保持 Gateway 网关仅绑定 loopback;通过 SSH 隧道访问。
|
||||
# 要公开暴露,移除 `127.0.0.1:` 前缀并相应配置防火墙。
|
||||
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
|
||||
|
||||
# 可选:仅当你针对此 VM 运行 iOS/Android 节点并需要 Canvas 主机时。
|
||||
# 如果你公开暴露此端口,请阅读 /gateway/security 并相应配置防火墙。
|
||||
# - "18793:18793"
|
||||
command:
|
||||
[
|
||||
"node",
|
||||
"dist/index.js",
|
||||
"gateway",
|
||||
"--bind",
|
||||
"${OPENCLAW_GATEWAY_BIND}",
|
||||
"--port",
|
||||
"${OPENCLAW_GATEWAY_PORT}",
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10) 将所需二进制文件内置到镜像中(关键)
|
||||
|
||||
在运行中的容器内安装二进制文件是一个陷阱。
|
||||
任何在运行时安装的内容在重启后都会丢失。
|
||||
|
||||
所有 Skills 所需的外部二进制文件必须在镜像构建时安装。
|
||||
|
||||
以下示例仅显示三个常见的二进制文件:
|
||||
|
||||
- `gog` 用于 Gmail 访问
|
||||
- `goplaces` 用于 Google Places
|
||||
- `wacli` 用于 WhatsApp
|
||||
|
||||
这些是示例,不是完整列表。
|
||||
你可以使用相同的模式安装任意数量的二进制文件。
|
||||
|
||||
如果你以后添加依赖额外二进制文件的新 Skills,你必须:
|
||||
|
||||
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/*
|
||||
|
||||
# 示例二进制文件 1:Gmail CLI
|
||||
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
|
||||
|
||||
# 示例二进制文件 2:Google Places CLI
|
||||
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
|
||||
|
||||
# 示例二进制文件 3:WhatsApp CLI
|
||||
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"]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11) 构建并启动
|
||||
|
||||
```bash
|
||||
docker compose build
|
||||
docker compose up -d openclaw-gateway
|
||||
```
|
||||
|
||||
验证二进制文件:
|
||||
|
||||
```bash
|
||||
docker compose exec openclaw-gateway which gog
|
||||
docker compose exec openclaw-gateway which goplaces
|
||||
docker compose exec openclaw-gateway which wacli
|
||||
```
|
||||
|
||||
预期输出:
|
||||
|
||||
```
|
||||
/usr/local/bin/gog
|
||||
/usr/local/bin/goplaces
|
||||
/usr/local/bin/wacli
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12) 验证 Gateway 网关
|
||||
|
||||
```bash
|
||||
docker compose logs -f openclaw-gateway
|
||||
```
|
||||
|
||||
成功:
|
||||
|
||||
```
|
||||
[gateway] listening on ws://0.0.0.0:18789
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 13) 从你的笔记本电脑访问
|
||||
|
||||
创建 SSH 隧道以转发 Gateway 网关端口:
|
||||
|
||||
```bash
|
||||
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
|
||||
```
|
||||
|
||||
在浏览器中打开:
|
||||
|
||||
`http://127.0.0.1:18789/`
|
||||
|
||||
粘贴你的 Gateway 网关令牌。
|
||||
|
||||
---
|
||||
|
||||
## 什么持久化在哪里(真实来源)
|
||||
|
||||
OpenClaw 在 Docker 中运行,但 Docker 不是真实来源。
|
||||
所有长期状态必须在重启、重建和重启后仍然存在。
|
||||
|
||||
| 组件 | 位置 | 持久化机制 | 说明 |
|
||||
| ---------------- | --------------------------------- | ------------- | --------------------------- |
|
||||
| Gateway 网关配置 | `/home/node/.openclaw/` | 主机卷挂载 | 包括 `openclaw.json`、令牌 |
|
||||
| 模型认证配置文件 | `/home/node/.openclaw/` | 主机卷挂载 | OAuth 令牌、API 密钥 |
|
||||
| Skill 配置 | `/home/node/.openclaw/skills/` | 主机卷挂载 | Skill 级别状态 |
|
||||
| 智能体工作区 | `/home/node/.openclaw/workspace/` | 主机卷挂载 | 代码和智能体产物 |
|
||||
| WhatsApp 会话 | `/home/node/.openclaw/` | 主机卷挂载 | 保留 QR 登录 |
|
||||
| Gmail 密钥环 | `/home/node/.openclaw/` | 主机卷 + 密码 | 需要 `GOG_KEYRING_PASSWORD` |
|
||||
| 外部二进制文件 | `/usr/local/bin/` | Docker 镜像 | 必须在构建时内置 |
|
||||
| Node 运行时 | 容器文件系统 | Docker 镜像 | 每次镜像构建时重建 |
|
||||
| OS 包 | 容器文件系统 | Docker 镜像 | 不要在运行时安装 |
|
||||
| Docker 容器 | 临时 | 可重启 | 可以安全销毁 |
|
||||
|
||||
---
|
||||
|
||||
## 更新
|
||||
|
||||
在 VM 上更新 OpenClaw:
|
||||
|
||||
```bash
|
||||
cd ~/openclaw
|
||||
git pull
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
**SSH 连接被拒绝**
|
||||
|
||||
VM 创建后 SSH 密钥传播可能需要 1-2 分钟。等待并重试。
|
||||
|
||||
**OS Login 问题**
|
||||
|
||||
检查你的 OS Login 配置文件:
|
||||
|
||||
```bash
|
||||
gcloud compute os-login describe-profile
|
||||
```
|
||||
|
||||
确保你的账户具有所需的 IAM 权限(Compute OS Login 或 Compute OS Admin Login)。
|
||||
|
||||
**内存不足(OOM)**
|
||||
|
||||
如果使用 e2-micro 并遇到 OOM,升级到 e2-small 或 e2-medium:
|
||||
|
||||
```bash
|
||||
# 首先停止 VM
|
||||
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
|
||||
|
||||
# 启动 VM
|
||||
gcloud compute instances start openclaw-gateway --zone=us-central1-a
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 服务账户(安全最佳实践)
|
||||
|
||||
对于个人使用,你的默认用户账户就可以。
|
||||
|
||||
对于自动化或 CI/CD 管道,创建具有最小权限的专用服务账户:
|
||||
|
||||
1. 创建服务账户:
|
||||
|
||||
```bash
|
||||
gcloud iam service-accounts create openclaw-deploy \
|
||||
--display-name="OpenClaw Deployment"
|
||||
```
|
||||
|
||||
2. 授予 Compute Instance Admin 角色(或更窄的自定义角色):
|
||||
```bash
|
||||
gcloud projects add-iam-policy-binding my-openclaw-project \
|
||||
--member="serviceAccount:openclaw-deploy@my-openclaw-project.iam.gserviceaccount.com" \
|
||||
--role="roles/compute.instanceAdmin.v1"
|
||||
```
|
||||
|
||||
避免为自动化使用 Owner 角色。使用最小权限原则。
|
||||
|
||||
参阅 https://cloud.google.com/iam/docs/understanding-roles 了解 IAM 角色详情。
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- 设置消息渠道:[渠道](/channels)
|
||||
- 将本地设备配对为节点:[节点](/nodes)
|
||||
- 配置 Gateway 网关:[Gateway 网关配置](/gateway/configuration)
|
||||
@@ -1,337 +0,0 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想让 OpenClaw 在云 VPS 上 24/7 运行(而不是你的笔记本电脑)
|
||||
- 你想在自己的 VPS 上运行生产级、永久在线的 Gateway 网关
|
||||
- 你想完全控制持久化、二进制文件和重启行为
|
||||
- 你在 Hetzner 或类似提供商上用 Docker 运行 OpenClaw
|
||||
summary: 在廉价的 Hetzner VPS(Docker)上 24/7 运行 OpenClaw Gateway 网关,带持久状态和内置二进制文件
|
||||
title: Hetzner
|
||||
x-i18n:
|
||||
generated_at: "2026-02-03T07:52:17Z"
|
||||
model: claude-opus-4-5
|
||||
provider: pi
|
||||
source_hash: 84d9f24f1a803aa15faa52a05f25fe557ec3e2c2f48a00c701d49764bd3bc21a
|
||||
source_path: platforms/hetzner.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 在 Hetzner 上运行 OpenClaw(Docker,生产 VPS 指南)
|
||||
|
||||
## 目标
|
||||
|
||||
使用 Docker 在 Hetzner VPS 上运行持久的 OpenClaw Gateway 网关,带持久状态、内置二进制文件和安全的重启行为。
|
||||
|
||||
如果你想要"约 $5 实现 OpenClaw 24/7",这是最简单可靠的设置。
|
||||
Hetzner 定价会变化;选择最小的 Debian/Ubuntu VPS,如果遇到 OOM 再扩容。
|
||||
|
||||
## 我们在做什么(简单说明)?
|
||||
|
||||
- 租用一台小型 Linux 服务器(Hetzner VPS)
|
||||
- 安装 Docker(隔离的应用运行时)
|
||||
- 在 Docker 中启动 OpenClaw Gateway 网关
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(重启/重建后保留)
|
||||
- 通过 SSH 隧道从你的笔记本电脑访问控制 UI
|
||||
|
||||
Gateway 网关可以通过以下方式访问:
|
||||
|
||||
- 从你的笔记本电脑进行 SSH 端口转发
|
||||
- 如果你自己管理防火墙和令牌,可以直接暴露端口
|
||||
|
||||
本指南假设在 Hetzner 上使用 Ubuntu 或 Debian。
|
||||
如果你使用其他 Linux VPS,请相应地映射软件包。
|
||||
通用 Docker 流程请参见 [Docker](/install/docker)。
|
||||
|
||||
---
|
||||
|
||||
## 快速路径(有经验的运维人员)
|
||||
|
||||
1. 配置 Hetzner VPS
|
||||
2. 安装 Docker
|
||||
3. 克隆 OpenClaw 仓库
|
||||
4. 创建持久化主机目录
|
||||
5. 配置 `.env` 和 `docker-compose.yml`
|
||||
6. 将所需二进制文件烘焙到镜像中
|
||||
7. `docker compose up -d`
|
||||
8. 验证持久化和 Gateway 网关访问
|
||||
|
||||
---
|
||||
|
||||
## 你需要什么
|
||||
|
||||
- 具有 root 访问权限的 Hetzner VPS
|
||||
- 从你的笔记本电脑进行 SSH 访问
|
||||
- 基本熟悉 SSH + 复制/粘贴
|
||||
- 约 20 分钟
|
||||
- Docker 和 Docker Compose
|
||||
- 模型认证凭证
|
||||
- 可选的提供商凭证
|
||||
- WhatsApp 二维码
|
||||
- Telegram 机器人令牌
|
||||
- Gmail OAuth
|
||||
|
||||
---
|
||||
|
||||
## 1) 配置 VPS
|
||||
|
||||
在 Hetzner 中创建一个 Ubuntu 或 Debian VPS。
|
||||
|
||||
以 root 身份连接:
|
||||
|
||||
```bash
|
||||
ssh root@YOUR_VPS_IP
|
||||
```
|
||||
|
||||
本指南假设 VPS 是有状态的。
|
||||
不要将其视为一次性基础设施。
|
||||
|
||||
---
|
||||
|
||||
## 2) 安装 Docker(在 VPS 上)
|
||||
|
||||
```bash
|
||||
apt-get update
|
||||
apt-get install -y git curl ca-certificates
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
```
|
||||
|
||||
验证:
|
||||
|
||||
```bash
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3) 克隆 OpenClaw 仓库
|
||||
|
||||
```bash
|
||||
git clone https://github.com/openclaw/openclaw.git
|
||||
cd openclaw
|
||||
```
|
||||
|
||||
本指南假设你将构建自定义镜像以保证二进制文件持久化。
|
||||
|
||||
---
|
||||
|
||||
## 4) 创建持久化主机目录
|
||||
|
||||
Docker 容器是临时的。
|
||||
所有长期状态必须存储在主机上。
|
||||
|
||||
```bash
|
||||
mkdir -p /root/.openclaw
|
||||
mkdir -p /root/.openclaw/workspace
|
||||
|
||||
# 将所有权设置为容器用户(uid 1000):
|
||||
chown -R 1000:1000 /root/.openclaw
|
||||
chown -R 1000:1000 /root/.openclaw/workspace
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5) 配置环境变量
|
||||
|
||||
在仓库根目录创建 `.env`。
|
||||
|
||||
```bash
|
||||
OPENCLAW_IMAGE=openclaw:latest
|
||||
OPENCLAW_GATEWAY_TOKEN=change-me-now
|
||||
OPENCLAW_GATEWAY_BIND=lan
|
||||
OPENCLAW_GATEWAY_PORT=18789
|
||||
|
||||
OPENCLAW_CONFIG_DIR=/root/.openclaw
|
||||
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
|
||||
|
||||
GOG_KEYRING_PASSWORD=change-me-now
|
||||
XDG_CONFIG_HOME=/home/node/.openclaw
|
||||
```
|
||||
|
||||
生成强密钥:
|
||||
|
||||
```bash
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
**不要提交此文件。**
|
||||
|
||||
---
|
||||
|
||||
## 6) Docker Compose 配置
|
||||
|
||||
创建或更新 `docker-compose.yml`。
|
||||
|
||||
```yaml
|
||||
services:
|
||||
openclaw-gateway:
|
||||
image: ${OPENCLAW_IMAGE}
|
||||
build: .
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- HOME=/home/node
|
||||
- NODE_ENV=production
|
||||
- TERM=xterm-256color
|
||||
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
|
||||
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
|
||||
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
|
||||
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
|
||||
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
||||
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
volumes:
|
||||
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
|
||||
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
|
||||
ports:
|
||||
# 推荐:在 VPS 上保持 Gateway 网关仅限 loopback;通过 SSH 隧道访问。
|
||||
# 要公开暴露,移除 `127.0.0.1:` 前缀并相应配置防火墙。
|
||||
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
|
||||
|
||||
# 可选:仅当你对此 VPS 运行 iOS/Android 节点并需要 Canvas 主机时。
|
||||
# 如果你公开暴露此端口,请阅读 /gateway/security 并相应配置防火墙。
|
||||
# - "18793:18793"
|
||||
command:
|
||||
[
|
||||
"node",
|
||||
"dist/index.js",
|
||||
"gateway",
|
||||
"--bind",
|
||||
"${OPENCLAW_GATEWAY_BIND}",
|
||||
"--port",
|
||||
"${OPENCLAW_GATEWAY_PORT}",
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7) 将所需二进制文件烘焙到镜像中(关键)
|
||||
|
||||
在运行中的容器内安装二进制文件是一个陷阱。
|
||||
任何在运行时安装的东西都会在重启时丢失。
|
||||
|
||||
所有 skills 所需的外部二进制文件必须在镜像构建时安装。
|
||||
|
||||
以下示例仅展示三个常见二进制文件:
|
||||
|
||||
- `gog` 用于 Gmail 访问
|
||||
- `goplaces` 用于 Google Places
|
||||
- `wacli` 用于 WhatsApp
|
||||
|
||||
这些是示例,不是完整列表。
|
||||
你可以使用相同的模式安装任意数量的二进制文件。
|
||||
|
||||
如果你以后添加依赖额外二进制文件的新 skills,你必须:
|
||||
|
||||
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/*
|
||||
|
||||
# 示例二进制文件 1:Gmail CLI
|
||||
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
|
||||
|
||||
# 示例二进制文件 2:Google Places CLI
|
||||
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
|
||||
|
||||
# 示例二进制文件 3:WhatsApp CLI
|
||||
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"]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8) 构建并启动
|
||||
|
||||
```bash
|
||||
docker compose build
|
||||
docker compose up -d openclaw-gateway
|
||||
```
|
||||
|
||||
验证二进制文件:
|
||||
|
||||
```bash
|
||||
docker compose exec openclaw-gateway which gog
|
||||
docker compose exec openclaw-gateway which goplaces
|
||||
docker compose exec openclaw-gateway which wacli
|
||||
```
|
||||
|
||||
预期输出:
|
||||
|
||||
```
|
||||
/usr/local/bin/gog
|
||||
/usr/local/bin/goplaces
|
||||
/usr/local/bin/wacli
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9) 验证 Gateway 网关
|
||||
|
||||
```bash
|
||||
docker compose logs -f openclaw-gateway
|
||||
```
|
||||
|
||||
成功:
|
||||
|
||||
```
|
||||
[gateway] listening on ws://0.0.0.0:18789
|
||||
```
|
||||
|
||||
从你的笔记本电脑:
|
||||
|
||||
```bash
|
||||
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
|
||||
```
|
||||
|
||||
打开:
|
||||
|
||||
`http://127.0.0.1:18789/`
|
||||
|
||||
粘贴你的 Gateway 网关令牌。
|
||||
|
||||
---
|
||||
|
||||
## 持久化位置(事实来源)
|
||||
|
||||
OpenClaw 在 Docker 中运行,但 Docker 不是事实来源。
|
||||
所有长期状态必须在重启、重建和重启后保留。
|
||||
|
||||
| 组件 | 位置 | 持久化机制 | 说明 |
|
||||
| ---------------- | --------------------------------- | ------------- | --------------------------- |
|
||||
| Gateway 网关配置 | `/home/node/.openclaw/` | 主机卷挂载 | 包括 `openclaw.json`、令牌 |
|
||||
| 模型认证配置文件 | `/home/node/.openclaw/` | 主机卷挂载 | OAuth 令牌、API 密钥 |
|
||||
| Skill 配置 | `/home/node/.openclaw/skills/` | 主机卷挂载 | Skill 级别状态 |
|
||||
| 智能体工作区 | `/home/node/.openclaw/workspace/` | 主机卷挂载 | 代码和智能体产物 |
|
||||
| WhatsApp 会话 | `/home/node/.openclaw/` | 主机卷挂载 | 保留二维码登录 |
|
||||
| Gmail 密钥环 | `/home/node/.openclaw/` | 主机卷 + 密码 | 需要 `GOG_KEYRING_PASSWORD` |
|
||||
| 外部二进制文件 | `/usr/local/bin/` | Docker 镜像 | 必须在构建时烘焙 |
|
||||
| Node 运行时 | 容器文件系统 | Docker 镜像 | 每次镜像构建时重建 |
|
||||
| 操作系统包 | 容器文件系统 | Docker 镜像 | 不要在运行时安装 |
|
||||
| Docker 容器 | 临时的 | 可重启 | 可以安全销毁 |
|
||||
@@ -33,10 +33,10 @@ Windows 原生配套应用也在计划中;推荐通过 WSL2 使用 Gateway 网
|
||||
## VPS 和托管
|
||||
|
||||
- VPS 中心:[VPS 托管](/vps)
|
||||
- Fly.io:[Fly.io](/platforms/fly)
|
||||
- Hetzner(Docker):[Hetzner](/platforms/hetzner)
|
||||
- GCP(Compute Engine):[GCP](/platforms/gcp)
|
||||
- exe.dev(VM + HTTPS 代理):[exe.dev](/platforms/exe-dev)
|
||||
- Fly.io:[Fly.io](/install/fly)
|
||||
- Hetzner(Docker):[Hetzner](/install/hetzner)
|
||||
- GCP(Compute Engine):[GCP](/install/gcp)
|
||||
- exe.dev(VM + HTTPS 代理):[exe.dev](/install/exe-dev)
|
||||
|
||||
## 常用链接
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ Gateway 网关在 Linux 上完全支持。**Node 是推荐的运行时**。
|
||||
4. 从你的笔记本电脑:`ssh -N -L 18789:127.0.0.1:18789 <user>@<host>`
|
||||
5. 打开 `http://127.0.0.1:18789/` 并粘贴你的令牌
|
||||
|
||||
分步 VPS 指南:[exe.dev](/platforms/exe-dev)
|
||||
分步 VPS 指南:[exe.dev](/install/exe-dev)
|
||||
|
||||
## 安装
|
||||
|
||||
|
||||
@@ -1,288 +0,0 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想让 OpenClaw 与你的主 macOS 环境隔离
|
||||
- 你想在沙箱中集成 iMessage(BlueBubbles)
|
||||
- 你想要一个可重置、可克隆的 macOS 环境
|
||||
- 你想比较本地与托管 macOS VM 选项
|
||||
summary: 在沙箱隔离的 macOS VM(本地或托管)中运行 OpenClaw,当你需要隔离或 iMessage 时
|
||||
title: macOS 虚拟机
|
||||
x-i18n:
|
||||
generated_at: "2026-02-03T07:53:09Z"
|
||||
model: claude-opus-4-5
|
||||
provider: pi
|
||||
source_hash: 4d1c85a5e4945f9f0796038cd5960edecb71ec4dffb6f9686be50adb75180716
|
||||
source_path: platforms/macos-vm.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 在 macOS 虚拟机上运行 OpenClaw(沙箱隔离)
|
||||
|
||||
## 推荐默认方案(大多数用户)
|
||||
|
||||
- **小型 Linux VPS** 用于永久在线的 Gateway 网关,成本低。参见 [VPS 托管](/vps)。
|
||||
- **专用硬件**(Mac mini 或 Linux 机器)如果你想要完全控制和**住宅 IP** 用于浏览器自动化。许多网站会屏蔽数据中心 IP,所以本地浏览通常效果更好。
|
||||
- **混合方案:** 将 Gateway 网关保持在廉价 VPS 上,当你需要浏览器/UI 自动化时,将你的 Mac 作为**节点**连接。参见[节点](/nodes)和 [Gateway 网关远程](/gateway/remote)。
|
||||
|
||||
当你特别需要 macOS 独有功能(iMessage/BlueBubbles)或想要与日常 Mac 严格隔离时,使用 macOS VM。
|
||||
|
||||
## macOS VM 选项
|
||||
|
||||
### 在你的 Apple Silicon Mac 上运行本地 VM(Lume)
|
||||
|
||||
使用 [Lume](https://cua.ai/docs/lume) 在你现有的 Apple Silicon Mac 上的沙箱 macOS VM 中运行 OpenClaw。
|
||||
|
||||
这为你提供:
|
||||
|
||||
- 隔离的完整 macOS 环境(你的主机保持干净)
|
||||
- 通过 BlueBubbles 支持 iMessage(在 Linux/Windows 上不可能)
|
||||
- 通过克隆 VM 即时重置
|
||||
- 无需额外硬件或云成本
|
||||
|
||||
### 托管 Mac 提供商(云)
|
||||
|
||||
如果你想要云端的 macOS,托管 Mac 提供商也可以:
|
||||
|
||||
- [MacStadium](https://www.macstadium.com/)(托管 Mac)
|
||||
- 其他托管 Mac 供应商也可以;按照他们的 VM + SSH 文档操作
|
||||
|
||||
一旦你有了 macOS VM 的 SSH 访问权限,继续下面的步骤 6。
|
||||
|
||||
---
|
||||
|
||||
## 快速路径(Lume,有经验的用户)
|
||||
|
||||
1. 安装 Lume
|
||||
2. `lume create openclaw --os macos --ipsw latest`
|
||||
3. 完成设置助手,启用远程登录(SSH)
|
||||
4. `lume run openclaw --no-display`
|
||||
5. SSH 进入,安装 OpenClaw,配置渠道
|
||||
6. 完成
|
||||
|
||||
---
|
||||
|
||||
## 你需要什么(Lume)
|
||||
|
||||
- Apple Silicon Mac(M1/M2/M3/M4)
|
||||
- 主机上安装 macOS Sequoia 或更高版本
|
||||
- 每个 VM 约 60 GB 可用磁盘空间
|
||||
- 约 20 分钟
|
||||
|
||||
---
|
||||
|
||||
## 1) 安装 Lume
|
||||
|
||||
```bash
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
|
||||
```
|
||||
|
||||
如果 `~/.local/bin` 不在你的 PATH 中:
|
||||
|
||||
```bash
|
||||
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc && source ~/.zshrc
|
||||
```
|
||||
|
||||
验证:
|
||||
|
||||
```bash
|
||||
lume --version
|
||||
```
|
||||
|
||||
文档:[Lume 安装](https://cua.ai/docs/lume/guide/getting-started/installation)
|
||||
|
||||
---
|
||||
|
||||
## 2) 创建 macOS VM
|
||||
|
||||
```bash
|
||||
lume create openclaw --os macos --ipsw latest
|
||||
```
|
||||
|
||||
这会下载 macOS 并创建 VM。VNC 窗口会自动打开。
|
||||
|
||||
注意:下载可能需要一段时间,取决于你的网络连接。
|
||||
|
||||
---
|
||||
|
||||
## 3) 完成设置助手
|
||||
|
||||
在 VNC 窗口中:
|
||||
|
||||
1. 选择语言和地区
|
||||
2. 跳过 Apple ID(或者如果你以后想要 iMessage 就登录)
|
||||
3. 创建用户账户(记住用户名和密码)
|
||||
4. 跳过所有可选功能
|
||||
|
||||
设置完成后,启用 SSH:
|
||||
|
||||
1. 打开系统设置 → 通用 → 共享
|
||||
2. 启用"远程登录"
|
||||
|
||||
---
|
||||
|
||||
## 4) 获取 VM 的 IP 地址
|
||||
|
||||
```bash
|
||||
lume get openclaw
|
||||
```
|
||||
|
||||
查找 IP 地址(通常是 `192.168.64.x`)。
|
||||
|
||||
---
|
||||
|
||||
## 5) SSH 进入 VM
|
||||
|
||||
```bash
|
||||
ssh youruser@192.168.64.X
|
||||
```
|
||||
|
||||
将 `youruser` 替换为你创建的账户,IP 替换为你 VM 的 IP。
|
||||
|
||||
---
|
||||
|
||||
## 6) 安装 OpenClaw
|
||||
|
||||
在 VM 内:
|
||||
|
||||
```bash
|
||||
npm install -g openclaw@latest
|
||||
openclaw onboard --install-daemon
|
||||
```
|
||||
|
||||
按照新手引导提示设置你的模型提供商(Anthropic、OpenAI 等)。
|
||||
|
||||
---
|
||||
|
||||
## 7) 配置渠道
|
||||
|
||||
编辑配置文件:
|
||||
|
||||
```bash
|
||||
nano ~/.openclaw/openclaw.json
|
||||
```
|
||||
|
||||
添加你的渠道:
|
||||
|
||||
```json
|
||||
{
|
||||
"channels": {
|
||||
"whatsapp": {
|
||||
"dmPolicy": "allowlist",
|
||||
"allowFrom": ["+15551234567"]
|
||||
},
|
||||
"telegram": {
|
||||
"botToken": "YOUR_BOT_TOKEN"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
然后登录 WhatsApp(扫描二维码):
|
||||
|
||||
```bash
|
||||
openclaw channels login
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8) 无头运行 VM
|
||||
|
||||
停止 VM 并在无显示器模式下重启:
|
||||
|
||||
```bash
|
||||
lume stop openclaw
|
||||
lume run openclaw --no-display
|
||||
```
|
||||
|
||||
VM 在后台运行。OpenClaw 的守护进程保持 Gateway 网关运行。
|
||||
|
||||
检查状态:
|
||||
|
||||
```bash
|
||||
ssh youruser@192.168.64.X "openclaw status"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 额外:iMessage 集成
|
||||
|
||||
这是在 macOS 上运行的杀手级功能。使用 [BlueBubbles](https://bluebubbles.app) 将 iMessage 添加到 OpenClaw。
|
||||
|
||||
在 VM 内:
|
||||
|
||||
1. 从 bluebubbles.app 下载 BlueBubbles
|
||||
2. 用你的 Apple ID 登录
|
||||
3. 启用 Web API 并设置密码
|
||||
4. 将 BlueBubbles webhooks 指向你的 Gateway 网关(示例:`https://your-gateway-host:3000/bluebubbles-webhook?password=<password>`)
|
||||
|
||||
添加到你的 OpenClaw 配置:
|
||||
|
||||
```json
|
||||
{
|
||||
"channels": {
|
||||
"bluebubbles": {
|
||||
"serverUrl": "http://localhost:1234",
|
||||
"password": "your-api-password",
|
||||
"webhookPath": "/bluebubbles-webhook"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
重启 Gateway 网关。现在你的智能体可以发送和接收 iMessage 了。
|
||||
|
||||
完整设置详情:[BlueBubbles 渠道](/channels/bluebubbles)
|
||||
|
||||
---
|
||||
|
||||
## 保存黄金镜像
|
||||
|
||||
在进一步自定义之前,快照你的干净状态:
|
||||
|
||||
```bash
|
||||
lume stop openclaw
|
||||
lume clone openclaw openclaw-golden
|
||||
```
|
||||
|
||||
随时重置:
|
||||
|
||||
```bash
|
||||
lume stop openclaw && lume delete openclaw
|
||||
lume clone openclaw-golden openclaw
|
||||
lume run openclaw --no-display
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 24/7 运行
|
||||
|
||||
通过以下方式保持 VM 运行:
|
||||
|
||||
- 保持你的 Mac 插电
|
||||
- 在系统设置 → 节能中禁用睡眠
|
||||
- 如需要使用 `caffeinate`
|
||||
|
||||
对于真正的永久在线,考虑专用 Mac mini 或小型 VPS。参见 [VPS 托管](/vps)。
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
| 问题 | 解决方案 |
|
||||
| ----------------------- | ---------------------------------------------------------------- |
|
||||
| 无法 SSH 进入 VM | 检查 VM 的系统设置中是否启用了"远程登录" |
|
||||
| VM IP 未显示 | 等待 VM 完全启动,再次运行 `lume get openclaw` |
|
||||
| 找不到 Lume 命令 | 将 `~/.local/bin` 添加到你的 PATH |
|
||||
| WhatsApp 二维码扫描失败 | 确保运行 `openclaw channels login` 时你是登录到 VM(而不是主机) |
|
||||
|
||||
---
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [VPS 托管](/vps)
|
||||
- [节点](/nodes)
|
||||
- [Gateway 网关远程](/gateway/remote)
|
||||
- [BlueBubbles 渠道](/channels/bluebubbles)
|
||||
- [Lume 快速入门](https://cua.ai/docs/lume/guide/getting-started/quickstart)
|
||||
- [Lume CLI 参考](https://cua.ai/docs/lume/reference/cli-reference)
|
||||
- [无人值守 VM 设置](https://cua.ai/docs/lume/guide/fundamentals/unattended-setup)(高级)
|
||||
- [Docker 沙箱隔离](/install/docker)(替代隔离方案)
|
||||
@@ -307,4 +307,4 @@ tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace
|
||||
- [Tailscale 集成](/gateway/tailscale) — 完整的 Tailscale 文档
|
||||
- [Gateway 网关配置](/gateway/configuration) — 所有配置选项
|
||||
- [DigitalOcean 指南](/platforms/digitalocean) — 如果你想要付费 + 更容易注册
|
||||
- [Hetzner 指南](/platforms/hetzner) — 基于 Docker 的替代方案
|
||||
- [Hetzner 指南](/install/hetzner) — 基于 Docker 的替代方案
|
||||
|
||||
@@ -360,6 +360,6 @@ echo 'wireless-power off' | sudo tee -a /etc/network/interfaces
|
||||
|
||||
- [Linux 指南](/platforms/linux) — 通用 Linux 设置
|
||||
- [DigitalOcean 指南](/platforms/digitalocean) — 云替代方案
|
||||
- [Hetzner 指南](/platforms/hetzner) — Docker 设置
|
||||
- [Hetzner 指南](/install/hetzner) — Docker 设置
|
||||
- [Tailscale](/gateway/tailscale) — 远程访问
|
||||
- [节点](/nodes) — 将你的笔记本电脑/手机与 Pi Gateway 网关配对
|
||||
|
||||
Reference in New Issue
Block a user