chore(i18n): refresh zh-CN translations
This commit is contained in:
parent
31ca95512b
commit
bd039dbb31
@ -1,76 +1,76 @@
|
||||
---
|
||||
read_when:
|
||||
- 你希望 OpenClaw 在 GCP 上 24/7 运行
|
||||
- 你希望在自己的 VM 上部署生产级、始终在线的 Gateway 网关
|
||||
- 你希望 OpenClaw 在 GCP 上 24/7 持续运行
|
||||
- 你希望在你自己的虚拟机上部署一个生产级、始终在线的 Gateway 网关
|
||||
- 你希望完全控制持久化、二进制文件和重启行为
|
||||
summary: 在 GCP Compute Engine VM(Docker)上 24/7 运行 OpenClaw Gateway 网关,并保持持久状态
|
||||
summary: 在 GCP Compute Engine 虚拟机(Docker)上以 24/7 方式运行 OpenClaw Gateway 网关,并保持持久化状态
|
||||
title: GCP
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T08:27:07Z"
|
||||
generated_at: "2026-04-18T17:30:48Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 73daaee3de71dad5175f42abf3e11355f2603b2f9e2b2523eac4d4c7015e3ebc
|
||||
source_hash: 6b4cf7924cbcfae74f268c88caedb79ed87a6ad37f4910ad65d92a5d99fe49c1
|
||||
source_path: install/gcp.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 在 GCP Compute Engine 上运行 OpenClaw(Docker,生产 VPS 指南)
|
||||
# 在 GCP Compute Engine 上运行 OpenClaw(Docker,生产级 VPS 指南)
|
||||
|
||||
## 目标
|
||||
|
||||
使用 Docker 在 GCP Compute Engine VM 上运行一个持久化的 OpenClaw Gateway 网关,具备可持久保存的状态、预烘焙的二进制文件,以及安全的重启行为。
|
||||
在 GCP Compute Engine 虚拟机上使用 Docker 运行一个持久化的 OpenClaw Gateway 网关,并具备持久化状态、预置二进制文件以及安全的重启行为。
|
||||
|
||||
如果你想要“每月约 $5-12、7x24 小时运行的 OpenClaw”,这是在 Google Cloud 上一种可靠的部署方式。
|
||||
价格会因机器类型和区域而异;请选择适合你工作负载的最小 VM,如果遇到 OOM 再向上扩容。
|
||||
如果你想要“以约 5-12 美元/月的成本让 OpenClaw 24/7 持续运行”,这是一个在 Google Cloud 上可靠的部署方案。
|
||||
价格会因机器类型和区域而异;选择最适合你工作负载的最小虚拟机,如果遇到 OOM,再向上扩容。
|
||||
|
||||
## 我们要做什么(通俗版)
|
||||
## 我们要做什么(通俗解释)?
|
||||
|
||||
- 创建一个 GCP 项目并启用计费
|
||||
- 创建一个 Compute Engine VM
|
||||
- 创建一个 Compute Engine 虚拟机
|
||||
- 安装 Docker(隔离的应用运行时)
|
||||
- 在 Docker 中启动 OpenClaw Gateway 网关
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(在重启/重建后仍然保留)
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(重启/重建后仍保留)
|
||||
- 通过 SSH 隧道从你的笔记本访问 Control UI
|
||||
|
||||
挂载的 `~/.openclaw` 状态包括 `openclaw.json`、每智能体的
|
||||
`agents/<agentId>/agent/auth-profiles.json` 和 `.env`。
|
||||
挂载的 `~/.openclaw` 状态包含 `openclaw.json`、每个智能体的
|
||||
`agents/<agentId>/agent/auth-profiles.json`,以及 `.env`。
|
||||
|
||||
可以通过以下方式访问 Gateway 网关:
|
||||
Gateway 网关可以通过以下方式访问:
|
||||
|
||||
- 从你的笔记本进行 SSH 端口转发
|
||||
- 如果你自行管理防火墙和 token,也可以直接暴露端口
|
||||
- 如果你自行管理防火墙和令牌,也可以直接暴露端口
|
||||
|
||||
本指南在 GCP Compute Engine 上使用 Debian。
|
||||
Ubuntu 也可以;请按对应方式映射软件包。
|
||||
通用 Docker 流程请参见 [Docker](/install/docker)。
|
||||
Ubuntu 也可用;请相应调整软件包名称。
|
||||
关于通用 Docker 流程,请参见 [Docker](/zh-CN/install/docker)。
|
||||
|
||||
---
|
||||
|
||||
## 快速路径(适合有经验的 operator)
|
||||
## 快速路径(适合有经验的运维人员)
|
||||
|
||||
1. 创建 GCP 项目 + 启用 Compute Engine API
|
||||
2. 创建 Compute Engine VM(e2-small、Debian 12、20GB)
|
||||
3. SSH 登录到该 VM
|
||||
1. 创建 GCP 项目并启用 Compute Engine API
|
||||
2. 创建 Compute Engine 虚拟机(`e2-small`、Debian 12、20GB)
|
||||
3. SSH 登录到虚拟机
|
||||
4. 安装 Docker
|
||||
5. 克隆 OpenClaw 仓库
|
||||
6. 创建持久化主机目录
|
||||
7. 配置 `.env` 和 `docker-compose.yml`
|
||||
8. 预烘焙所需二进制文件,构建并启动
|
||||
8. 预置所需二进制文件、构建并启动
|
||||
|
||||
---
|
||||
|
||||
## 你需要准备什么
|
||||
## 你需要准备
|
||||
|
||||
- GCP 账号(e2-micro 符合免费层资格)
|
||||
- 已安装 gcloud CLI(或使用 Cloud Console)
|
||||
- GCP 账号(`e2-micro` 可享受免费层资格)
|
||||
- 已安装 `gcloud` CLI(或使用 Cloud Console)
|
||||
- 从你的笔记本进行 SSH 访问
|
||||
- 对 SSH + 复制粘贴有基本熟悉
|
||||
- 大约 20-30 分钟
|
||||
- 对 SSH + 复制粘贴有基础操作能力
|
||||
- 约 20-30 分钟
|
||||
- Docker 和 Docker Compose
|
||||
- 模型认证凭证
|
||||
- 可选的提供商凭证
|
||||
- WhatsApp QR
|
||||
- Telegram bot token
|
||||
- 模型认证凭据
|
||||
- 可选的提供商凭据
|
||||
- WhatsApp 二维码
|
||||
- Telegram 机器人令牌
|
||||
- Gmail OAuth
|
||||
|
||||
---
|
||||
@ -90,7 +90,7 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
**选项 B:Cloud Console**
|
||||
|
||||
所有步骤都可以通过 [https://console.cloud.google.com](https://console.cloud.google.com) 的 Web UI 完成
|
||||
所有步骤都可以通过网页 UI 完成,地址是 [https://console.cloud.google.com](https://console.cloud.google.com)
|
||||
|
||||
</Step>
|
||||
|
||||
@ -113,20 +113,20 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
**Console:**
|
||||
|
||||
1. 前往 IAM & Admin > Create Project
|
||||
2. 命名并创建
|
||||
3. 为该项目启用计费
|
||||
2. 命名并创建项目
|
||||
3. 为项目启用计费
|
||||
4. 前往 APIs & Services > Enable APIs > 搜索 “Compute Engine API” > Enable
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="创建 VM">
|
||||
<Step title="创建虚拟机">
|
||||
**机器类型:**
|
||||
|
||||
| Type | Specs | Cost | Notes |
|
||||
| --------- | ----- | ---- | ----- |
|
||||
| e2-medium | 2 vCPU,4GB RAM | 约 $25/月 | 对本地 Docker 构建最可靠 |
|
||||
| e2-small | 2 vCPU,2GB RAM | 约 $12/月 | Docker 构建的最低推荐配置 |
|
||||
| e2-micro | 2 vCPU(共享),1GB RAM | 符合免费层资格 | 经常因 Docker 构建 OOM 而失败(exit 137) |
|
||||
| 类型 | 配置 | 成本 | 说明 |
|
||||
| --------- | ------------------------ | ------------------ | -------------------------------- |
|
||||
| e2-medium | 2 vCPU,4GB RAM | 约 25 美元/月 | 本地 Docker 构建最可靠 |
|
||||
| e2-small | 2 vCPU,2GB RAM | 约 12 美元/月 | Docker 构建的最低推荐配置 |
|
||||
| e2-micro | 2 vCPU(共享),1GB RAM | 可享免费层资格 | 经常因 Docker 构建 OOM 而失败(退出 137) |
|
||||
|
||||
**CLI:**
|
||||
|
||||
@ -150,7 +150,7 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="通过 SSH 登录到 VM">
|
||||
<Step title="SSH 登录到虚拟机">
|
||||
**CLI:**
|
||||
|
||||
```bash
|
||||
@ -159,13 +159,13 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
**Console:**
|
||||
|
||||
在 Compute Engine 控制台中点击你 VM 旁边的 “SSH” 按钮。
|
||||
在 Compute Engine 仪表板中,点击你的虚拟机旁边的 “SSH” 按钮。
|
||||
|
||||
注意:VM 创建后,SSH 密钥传播可能需要 1-2 分钟。如果连接被拒绝,请稍等后重试。
|
||||
注意:虚拟机创建后,SSH 密钥传播可能需要 1-2 分钟。如果连接被拒绝,请稍等后重试。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="安装 Docker(在 VM 上)">
|
||||
<Step title="安装 Docker(在虚拟机上)">
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git curl ca-certificates
|
||||
@ -173,7 +173,7 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
退出并重新登录,以便组变更生效:
|
||||
注销并重新登录,使组变更生效:
|
||||
|
||||
```bash
|
||||
exit
|
||||
@ -200,13 +200,13 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
cd openclaw
|
||||
```
|
||||
|
||||
本指南假设你将构建自定义镜像,以确保二进制文件持久存在。
|
||||
本指南假设你会构建一个自定义镜像,以确保二进制文件持久化。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="创建持久化主机目录">
|
||||
Docker 容器是临时性的。
|
||||
所有长期状态都必须存储在主机上。
|
||||
Docker 容器是临时的。
|
||||
所有长期状态都必须存放在主机上。
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.openclaw
|
||||
@ -220,18 +220,18 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
```bash
|
||||
OPENCLAW_IMAGE=openclaw:latest
|
||||
OPENCLAW_GATEWAY_TOKEN=change-me-now
|
||||
OPENCLAW_GATEWAY_TOKEN=
|
||||
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
|
||||
GOG_KEYRING_PASSWORD=
|
||||
XDG_CONFIG_HOME=/home/node/.openclaw
|
||||
```
|
||||
|
||||
生成强密钥:
|
||||
除非你明确想通过 `.env` 管理 `OPENCLAW_GATEWAY_TOKEN`,否则请将其留空;OpenClaw 会在首次启动时把一个随机 Gateway 网关令牌写入配置。生成一个密钥环密码并粘贴到 `GOG_KEYRING_PASSWORD` 中:
|
||||
|
||||
```bash
|
||||
openssl rand -hex 32
|
||||
@ -240,7 +240,7 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
**不要提交这个文件。**
|
||||
|
||||
这个 `.env` 文件用于容器/运行时环境变量,例如 `OPENCLAW_GATEWAY_TOKEN`。
|
||||
存储的提供商 OAuth/API-key 认证保存在挂载的
|
||||
存储的提供商 OAuth/API 密钥认证信息位于挂载的
|
||||
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` 中。
|
||||
|
||||
</Step>
|
||||
@ -270,8 +270,8 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
|
||||
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
|
||||
ports:
|
||||
# Recommended: keep the Gateway loopback-only on the VM; access via SSH tunnel.
|
||||
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
|
||||
# 推荐:让 Gateway 网关在虚拟机上仅绑定到 loopback;通过 SSH 隧道访问。
|
||||
# 如需公开暴露,请移除 `127.0.0.1:` 前缀,并相应配置防火墙。
|
||||
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
|
||||
command:
|
||||
[
|
||||
@ -286,35 +286,35 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
]
|
||||
```
|
||||
|
||||
`--allow-unconfigured` 仅用于引导时的便利,它不能替代正确的 gateway 配置。你仍然需要设置认证(`gateway.auth.token` 或 password),并为你的部署使用安全的 bind 设置。
|
||||
`--allow-unconfigured` 仅用于初始引导时的便利,并不能替代正确的 Gateway 网关配置。你仍然需要设置认证(`gateway.auth.token` 或密码),并为你的部署使用安全的绑定设置。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="共享 Docker VM 运行时步骤">
|
||||
对于通用 Docker 主机流程,请使用共享运行时指南:
|
||||
<Step title="共享 Docker 虚拟机运行时步骤">
|
||||
对于通用的 Docker 主机流程,请使用共享运行时指南:
|
||||
|
||||
- [将所需二进制文件烘焙进镜像](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
||||
- [构建并启动](/install/docker-vm-runtime#build-and-launch)
|
||||
- [哪些内容持久化,存在哪里](/install/docker-vm-runtime#what-persists-where)
|
||||
- [更新](/install/docker-vm-runtime#updates)
|
||||
- [将所需二进制文件预置到镜像中](/zh-CN/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
||||
- [构建并启动](/zh-CN/install/docker-vm-runtime#build-and-launch)
|
||||
- [哪些内容会持久化以及存放位置](/zh-CN/install/docker-vm-runtime#what-persists-where)
|
||||
- [更新](/zh-CN/install/docker-vm-runtime#updates)
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="GCP 特定的启动说明">
|
||||
在 GCP 上,如果构建在 `pnpm install --frozen-lockfile` 期间因 `Killed` 或 `exit code 137` 失败,则说明 VM 内存不足。请至少使用 `e2-small`,或使用 `e2-medium` 以获得更可靠的首次构建体验。
|
||||
<Step title="GCP 特定启动说明">
|
||||
在 GCP 上,如果在 `pnpm install --frozen-lockfile` 期间构建因 `Killed` 或 `exit code 137` 失败,说明虚拟机内存不足。最低使用 `e2-small`,或者使用 `e2-medium` 以获得更可靠的首次构建体验。
|
||||
|
||||
当绑定到 LAN(`OPENCLAW_GATEWAY_BIND=lan`)时,请在继续之前配置一个受信任的浏览器 origin:
|
||||
当绑定到局域网(`OPENCLAW_GATEWAY_BIND=lan`)时,继续之前请先配置一个受信任的浏览器来源:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json
|
||||
```
|
||||
|
||||
如果你修改了 gateway 端口,请将 `18789` 替换为你配置的端口。
|
||||
如果你修改了 Gateway 网关端口,请将 `18789` 替换为你配置的端口。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="从你的笔记本访问">
|
||||
创建一个 SSH 隧道以转发 Gateway 网关端口:
|
||||
创建一个 SSH 隧道来转发 Gateway 网关端口:
|
||||
|
||||
```bash
|
||||
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
|
||||
@ -324,25 +324,25 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
`http://127.0.0.1:18789/`
|
||||
|
||||
重新打印一个干净的 dashboard 链接:
|
||||
重新输出一个干净的仪表板链接:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli dashboard --no-open
|
||||
```
|
||||
|
||||
如果 UI 提示需要 shared-secret 认证,请将已配置的 token 或
|
||||
password 粘贴到 Control UI 设置中。这个 Docker 流程默认会写入 token;如果你将容器配置切换为 password 认证,请改用该
|
||||
password。
|
||||
如果 UI 提示需要 shared-secret 认证,请将配置好的令牌或
|
||||
密码粘贴到 Control UI 设置中。这个 Docker 流程默认会写入一个令牌;如果你把容器配置改成密码认证,请改用该
|
||||
密码。
|
||||
|
||||
如果 Control UI 显示 `unauthorized` 或 `disconnected (1008): pairing required`,请批准浏览器设备:
|
||||
如果 Control UI 显示 `unauthorized` 或 `disconnected (1008): pairing required`,请批准该浏览器设备:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli devices list
|
||||
docker compose run --rm openclaw-cli devices approve <requestId>
|
||||
```
|
||||
|
||||
需要再次查看共享的持久化与更新参考?
|
||||
请参见 [Docker VM Runtime](/install/docker-vm-runtime#what-persists-where) 和 [Docker VM Runtime 更新](/install/docker-vm-runtime#updates)。
|
||||
还需要再次查看共享持久化和更新参考?
|
||||
请参见 [Docker VM Runtime](/zh-CN/install/docker-vm-runtime#what-persists-where) 和 [Docker VM Runtime updates](/zh-CN/install/docker-vm-runtime#updates)。
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
@ -353,11 +353,11 @@ Ubuntu 也可以;请按对应方式映射软件包。
|
||||
|
||||
**SSH 连接被拒绝**
|
||||
|
||||
VM 创建后,SSH 密钥传播可能需要 1-2 分钟。请稍等后重试。
|
||||
虚拟机创建后,SSH 密钥传播可能需要 1-2 分钟。请稍等后重试。
|
||||
|
||||
**OS Login 问题**
|
||||
|
||||
检查你的 OS Login 配置档案:
|
||||
检查你的 OS Login 配置文件:
|
||||
|
||||
```bash
|
||||
gcloud compute os-login describe-profile
|
||||
@ -367,10 +367,10 @@ gcloud compute os-login describe-profile
|
||||
|
||||
**内存不足(OOM)**
|
||||
|
||||
如果 Docker 构建因 `Killed` 和 `exit code 137` 失败,说明 VM 被 OOM 杀掉了。请升级到 e2-small(最低)或 e2-medium(推荐用于可靠的本地构建):
|
||||
如果 Docker 构建失败并出现 `Killed` 和 `exit code 137`,说明虚拟机被 OOM kill 了。升级到 e2-small(最低)或 e2-medium(推荐,用于更可靠的本地构建):
|
||||
|
||||
```bash
|
||||
# 先停止 VM
|
||||
# 先停止虚拟机
|
||||
gcloud compute instances stop openclaw-gateway --zone=us-central1-a
|
||||
|
||||
# 更改机器类型
|
||||
@ -378,7 +378,7 @@ 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
|
||||
```
|
||||
|
||||
@ -386,11 +386,11 @@ gcloud compute instances start openclaw-gateway --zone=us-central1-a
|
||||
|
||||
## 服务账号(安全最佳实践)
|
||||
|
||||
对于个人使用,你的默认用户账号就足够了。
|
||||
对于个人使用,你的默认用户账号已经足够。
|
||||
|
||||
对于自动化或 CI/CD 流水线,请创建一个具有最小权限的专用服务账号:
|
||||
对于自动化或 CI/CD 流水线,请创建一个权限最小化的专用服务账号:
|
||||
|
||||
1. 创建服务账号:
|
||||
1. 创建一个服务账号:
|
||||
|
||||
```bash
|
||||
gcloud iam service-accounts create openclaw-deploy \
|
||||
@ -411,8 +411,8 @@ IAM 角色详情请参见 [https://cloud.google.com/iam/docs/understanding-roles
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
## 后续步骤
|
||||
|
||||
- 设置消息渠道:[Channels](/channels)
|
||||
- 将本地设备配对为节点:[Nodes](/nodes)
|
||||
- 配置 Gateway 网关:[Gateway configuration](/gateway/configuration)
|
||||
- 设置消息渠道:[Channels](/zh-CN/channels)
|
||||
- 将本地设备配对为节点:[Nodes](/zh-CN/nodes)
|
||||
- 配置 Gateway 网关:[Gateway configuration](/zh-CN/gateway/configuration)
|
||||
|
||||
@ -1,56 +1,56 @@
|
||||
---
|
||||
read_when:
|
||||
- 你希望 OpenClaw 在云端 VPS 上 24/7 运行(而不是你的笔记本)
|
||||
- 你希望在自己的 VPS 上运行一个适合生产环境、始终在线的 Gateway 网关
|
||||
- 你希望完全控制持久化、二进制文件和重启行为
|
||||
- 你希望 OpenClaw 在云 VPS 上 24/7 运行(而不是在你的笔记本电脑上)
|
||||
- 你希望在你自己的 VPS 上部署一个生产级、始终在线的 Gateway 网关
|
||||
- 你希望完全掌控持久化、二进制文件和重启行为
|
||||
- 你正在 Hetzner 或类似提供商上通过 Docker 运行 OpenClaw
|
||||
summary: 在 Hetzner VPS 上用 Docker 运行 OpenClaw Gateway 网关,具备持久状态、内置二进制文件和安全重启行为
|
||||
summary: 在便宜的 Hetzner VPS 上以 24/7 方式运行 OpenClaw Gateway 网关(Docker),并具备持久化状态和内置二进制文件
|
||||
title: Hetzner
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T08:27:08Z"
|
||||
generated_at: "2026-04-18T17:30:49Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: d859e4c0943040b022835f320708f879a11eadef70f2816cf0f2824eaaf165ef
|
||||
source_hash: 32f5e552ea87970b89c762059bc27f22e0aa3abf001307cae8829b9f1c713a42
|
||||
source_path: install/hetzner.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 在 Hetzner 上运行 OpenClaw(Docker,生产 VPS 指南)
|
||||
# Hetzner 上的 OpenClaw(Docker,生产 VPS 指南)
|
||||
|
||||
## 目标
|
||||
|
||||
使用 Docker 在 Hetzner VPS 上运行一个持久化的 OpenClaw Gateway 网关,并具备持久状态、内置二进制文件和安全的重启行为。
|
||||
在 Hetzner VPS 上使用 Docker 运行一个持久化的 OpenClaw Gateway 网关,并具备持久化状态、内置二进制文件以及安全的重启行为。
|
||||
|
||||
如果你想要“每月约 5 美元即可 24/7 运行 OpenClaw”,这是最简单且可靠的方案。
|
||||
Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到 OOM 再扩容。
|
||||
如果你想要“每月约 5 美元即可 24/7 运行 OpenClaw”,这是最简单且可靠的配置方式。
|
||||
Hetzner 的价格可能会变化;请选择最小规格的 Debian/Ubuntu VPS,如果遇到 OOM 再向上扩容。
|
||||
|
||||
安全模型提醒:
|
||||
|
||||
- 当所有人都处于同一个信任边界内,并且运行时仅用于业务用途时,公司共享智能体是可以接受的。
|
||||
- 请保持严格隔离:专用 VPS/运行时 + 专用账户;不要在该主机上放置个人 Apple/Google/browser/password-manager 配置文件。
|
||||
- 如果用户彼此存在对抗关系,请按 gateway/主机/OS 用户拆分。
|
||||
- 当所有人都处于同一信任边界内,且运行时仅用于业务用途时,公司共享的智能体是可以接受的。
|
||||
- 保持严格隔离:专用 VPS/运行时 + 专用账号;不要在该主机上使用个人 Apple/Google/浏览器/密码管理器配置文件。
|
||||
- 如果用户彼此之间具有对抗性,请按 Gateway 网关/主机/OS 用户进行隔离。
|
||||
|
||||
请参阅[安全性](/gateway/security)和 [VPS 托管](/vps)。
|
||||
请参阅 [Security](/zh-CN/gateway/security) 和 [VPS hosting](/zh-CN/vps)。
|
||||
|
||||
## 我们要做什么(用简单的话说)?
|
||||
## 我们在做什么(简单来说)?
|
||||
|
||||
- 租一台小型 Linux 服务器(Hetzner VPS)
|
||||
- 租用一台小型 Linux 服务器(Hetzner VPS)
|
||||
- 安装 Docker(隔离的应用运行时)
|
||||
- 在 Docker 中启动 OpenClaw Gateway 网关
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(重启/重建后仍保留)
|
||||
- 通过 SSH 隧道从你的笔记本访问 Control UI
|
||||
- 在主机上持久化 `~/.openclaw` + `~/.openclaw/workspace`(重启/重建后仍然保留)
|
||||
- 通过 SSH 隧道从你的笔记本电脑访问 Control UI
|
||||
|
||||
这个挂载的 `~/.openclaw` 状态包括 `openclaw.json`、每个智能体的
|
||||
挂载的 `~/.openclaw` 状态包括 `openclaw.json`、每个智能体的
|
||||
`agents/<agentId>/agent/auth-profiles.json` 以及 `.env`。
|
||||
|
||||
访问 Gateway 网关的方式包括:
|
||||
|
||||
- 从你的笔记本进行 SSH 端口转发
|
||||
- 如果你能自行管理防火墙和 token,也可以直接暴露端口
|
||||
- 从你的笔记本电脑通过 SSH 端口转发访问
|
||||
- 如果你能自行管理防火墙和令牌,也可以直接暴露端口
|
||||
|
||||
本指南假设你在 Hetzner 上使用 Ubuntu 或 Debian。
|
||||
如果你使用的是其他 Linux VPS,请相应替换软件包。
|
||||
关于通用 Docker 流程,请参阅 [Docker](/install/docker)。
|
||||
如果你使用的是其他 Linux VPS,请相应调整软件包。
|
||||
关于通用 Docker 流程,请参阅 [Docker](/zh-CN/install/docker)。
|
||||
|
||||
---
|
||||
|
||||
@ -67,24 +67,24 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
|
||||
---
|
||||
|
||||
## 你需要准备什么
|
||||
## 你需要准备
|
||||
|
||||
- 一台拥有 root 权限的 Hetzner VPS
|
||||
- 从你的笔记本发起的 SSH 访问
|
||||
- 对 SSH + 复制粘贴有基本使用经验
|
||||
- 具有 root 访问权限的 Hetzner VPS
|
||||
- 从你的笔记本电脑进行 SSH 访问
|
||||
- 对 SSH + 复制粘贴有基本熟悉程度
|
||||
- 约 20 分钟
|
||||
- Docker 和 Docker Compose
|
||||
- 模型认证凭证
|
||||
- 可选的提供商凭证
|
||||
- WhatsApp QR
|
||||
- Telegram bot token
|
||||
- 模型认证凭据
|
||||
- 可选的提供商凭据
|
||||
- WhatsApp 二维码
|
||||
- Telegram 机器人令牌
|
||||
- Gmail OAuth
|
||||
|
||||
---
|
||||
|
||||
<Steps>
|
||||
<Step title="创建 VPS">
|
||||
在 Hetzner 中创建一台 Ubuntu 或 Debian VPS。
|
||||
在 Hetzner 中创建一个 Ubuntu 或 Debian VPS。
|
||||
|
||||
以 root 身份连接:
|
||||
|
||||
@ -93,7 +93,7 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
```
|
||||
|
||||
本指南假设该 VPS 是有状态的。
|
||||
不要把它当成可随意丢弃的基础设施。
|
||||
不要将其视为一次性基础设施。
|
||||
|
||||
</Step>
|
||||
|
||||
@ -119,7 +119,7 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
cd openclaw
|
||||
```
|
||||
|
||||
本指南假设你将构建一个自定义镜像,以保证二进制文件持久存在。
|
||||
本指南假设你将构建一个自定义镜像,以确保二进制文件可持久保留。
|
||||
|
||||
</Step>
|
||||
|
||||
@ -141,18 +141,20 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
|
||||
```bash
|
||||
OPENCLAW_IMAGE=openclaw:latest
|
||||
OPENCLAW_GATEWAY_TOKEN=change-me-now
|
||||
OPENCLAW_GATEWAY_TOKEN=
|
||||
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
|
||||
GOG_KEYRING_PASSWORD=
|
||||
XDG_CONFIG_HOME=/home/node/.openclaw
|
||||
```
|
||||
|
||||
生成高强度密钥:
|
||||
除非你明确希望通过 `.env` 来管理它,否则请将 `OPENCLAW_GATEWAY_TOKEN` 留空;OpenClaw 会在首次启动时将一个随机 Gateway 网关令牌写入配置。
|
||||
生成一个 keyring 密码并将其粘贴到
|
||||
`GOG_KEYRING_PASSWORD`:
|
||||
|
||||
```bash
|
||||
openssl rand -hex 32
|
||||
@ -161,7 +163,7 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
**不要提交这个文件。**
|
||||
|
||||
这个 `.env` 文件用于容器/运行时环境变量,例如 `OPENCLAW_GATEWAY_TOKEN`。
|
||||
已存储的提供商 OAuth/API key 认证则保存在已挂载的
|
||||
存储的提供商 OAuth/API 密钥认证位于挂载的
|
||||
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json` 中。
|
||||
|
||||
</Step>
|
||||
@ -191,8 +193,8 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
|
||||
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
|
||||
ports:
|
||||
# 推荐:在 VPS 上将 Gateway 网关仅绑定到 loopback;通过 SSH 隧道访问。
|
||||
# 若要公开暴露它,请移除 `127.0.0.1:` 前缀,并相应配置防火墙。
|
||||
# 建议:让 Gateway 网关在 VPS 上仅监听 loopback;通过 SSH 隧道访问。
|
||||
# 如果你要将其公开暴露,请移除 `127.0.0.1:` 前缀,并相应配置防火墙。
|
||||
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
|
||||
command:
|
||||
[
|
||||
@ -207,22 +209,22 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
]
|
||||
```
|
||||
|
||||
`--allow-unconfigured` 仅用于 bootstrap 便利,它不能替代正确的 gateway 配置。你仍应设置认证(`gateway.auth.token` 或 password),并为你的部署使用安全的 bind 设置。
|
||||
`--allow-unconfigured` 仅用于引导阶段的便捷启动,并不能替代正确的 Gateway 网关配置。你仍然需要设置认证(`gateway.auth.token` 或密码),并为你的部署使用安全的绑定设置。
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="共享 Docker VM 运行时步骤">
|
||||
对于通用 Docker 主机流程,请使用共享运行时指南:
|
||||
|
||||
- [将所需二进制文件烘焙进镜像](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
||||
- [构建并启动](/install/docker-vm-runtime#build-and-launch)
|
||||
- [哪些内容会持久化,存放在哪里](/install/docker-vm-runtime#what-persists-where)
|
||||
- [更新](/install/docker-vm-runtime#updates)
|
||||
- [将所需二进制文件烘焙进镜像](/zh-CN/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
||||
- [构建并启动](/zh-CN/install/docker-vm-runtime#build-and-launch)
|
||||
- [哪些内容会持久化到哪里](/zh-CN/install/docker-vm-runtime#what-persists-where)
|
||||
- [更新](/zh-CN/install/docker-vm-runtime#updates)
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Hetzner 专用访问方式">
|
||||
在完成共享构建和启动步骤后,从你的笔记本建立隧道:
|
||||
完成共享的构建和启动步骤后,从你的笔记本电脑建立隧道:
|
||||
|
||||
```bash
|
||||
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
|
||||
@ -232,34 +234,35 @@ Hetzner 的价格会变化;请选择最小的 Debian/Ubuntu VPS,如果遇到
|
||||
|
||||
`http://127.0.0.1:18789/`
|
||||
|
||||
粘贴已配置的共享密钥。本指南默认使用 gateway token;如果你切换到了 password 认证,请改用那个密码。
|
||||
粘贴你配置的共享密钥。本指南默认使用 gateway token;
|
||||
如果你改用了密码认证,请改为使用那个密码。
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
共享持久化映射请参阅 [Docker VM 运行时](/install/docker-vm-runtime#what-persists-where)。
|
||||
共享的持久化映射位于 [Docker VM Runtime](/zh-CN/install/docker-vm-runtime#what-persists-where)。
|
||||
|
||||
## 基础设施即代码(Terraform)
|
||||
|
||||
对于偏好基础设施即代码工作流的团队,一个由社区维护的 Terraform 方案提供了:
|
||||
对于偏好基础设施即代码工作流的团队,一个由社区维护的 Terraform 配置提供了:
|
||||
|
||||
- 带远程状态管理的模块化 Terraform 配置
|
||||
- 通过 cloud-init 实现的自动化配置
|
||||
- 通过 cloud-init 实现自动化部署
|
||||
- 部署脚本(bootstrap、deploy、backup/restore)
|
||||
- 安全加固(防火墙、UFW、仅 SSH 访问)
|
||||
- 用于 gateway 访问的 SSH 隧道配置
|
||||
- 安全加固(防火墙、UFW、仅限 SSH 访问)
|
||||
- 用于 Gateway 网关访问的 SSH 隧道配置
|
||||
|
||||
**仓库:**
|
||||
|
||||
- 基础设施:[openclaw-terraform-hetzner](https://github.com/andreesg/openclaw-terraform-hetzner)
|
||||
- Docker 配置:[openclaw-docker-config](https://github.com/andreesg/openclaw-docker-config)
|
||||
|
||||
这种方式可在上述 Docker 设置基础上补充可复现部署、版本控制的基础设施,以及自动化灾难恢复。
|
||||
这种方式在上述 Docker 配置基础上,补充了可复现部署、版本控制的基础设施,以及自动化灾难恢复能力。
|
||||
|
||||
> **注意:**由社区维护。如需反馈问题或贡献,请参阅上面的仓库链接。
|
||||
> **注意:** 由社区维护。如有问题或希望贡献,请参阅上述仓库链接。
|
||||
|
||||
## 后续步骤
|
||||
|
||||
- 设置消息渠道:[渠道](/channels)
|
||||
- 配置 Gateway 网关:[Gateway 网关配置](/gateway/configuration)
|
||||
- 保持 OpenClaw 为最新版本:[更新](/install/updating)
|
||||
- 设置消息渠道:[Channels](/zh-CN/channels)
|
||||
- 配置 Gateway 网关:[Gateway configuration](/zh-CN/gateway/configuration)
|
||||
- 保持 OpenClaw 为最新版本:[Updating](/zh-CN/install/updating)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user