基于Terraform与Ansible的OpenClaw AI代理自动化部署实践
2026/5/13 13:50:50 网站建设 项目流程

1. 项目概述与核心价值

最近在折腾一个挺有意思的项目,叫 OpenClaw。简单来说,它是一个开源的 AI 代理框架,你可以把它理解为一个能帮你处理各种任务的“数字助理”。它能接入 Telegram,在群里或者私聊里和你对话,帮你查资料、写代码、管理日程,甚至控制智能家居,功能相当强大。但问题来了,这玩意儿怎么部署?官方文档给了 Docker 跑本地的方案,可我想让它 7x24 小时在线,还得安全、可控、能方便地更新维护。

于是,我找到了tardigrde/openclaw-deploy这个仓库。它不是一个简单的部署脚本,而是一套完整的基础设施即代码方案,专门为在 Hetzner Cloud 的 VPS 上部署 OpenClaw 而设计。核心思路非常清晰:用 Terraform 一键创建和配置云服务器,用 Ansible 完成所有复杂的应用部署和环境准备,最后用 Docker Compose 把 OpenClaw 跑起来。整个过程通过一个Makefile来串联,你只需要敲几个make命令,从零到一的完整生产环境就搭建好了。

这套方案最吸引我的地方在于它的“全栈自动化”“安全优先”设计。它不仅仅是把应用丢到服务器上,而是考虑了从网络防火墙配置、密钥管理、到日常运维(备份、升级、监控)的完整生命周期。特别是它对 Tailscale VPN 的原生集成,让你可以彻底关闭服务器的公网 SSH 端口,所有管理操作都在一个加密的私有网络内进行,安全性直接拉满。对于像我这样,既想享受云服务的便利,又对安全性和可控性有要求的开发者来说,这简直就是“开箱即用”的完美模板。

接下来,我会带你一步步拆解这个项目,从架构设计、工具选型,到每一个实操命令背后的原理和踩过的坑,分享我是如何用它搭建起一个稳定、安全且易于维护的 OpenClaw 服务站的。

2. 架构深度解析:为什么是这套技术栈?

刚接触这个项目时,你可能会被 Terraform、Ansible、Docker Compose 这一连串工具搞得有点懵。别急,我们一个个来看,理解作者为什么选择它们,以及它们是如何协同工作的。

2.1 核心工具链选型背后的逻辑

Terraform:基础设施的蓝图与管家Terraform 在这里扮演的是“云资源编排者”的角色。它的核心价值是声明式幂等性。你不需要写一堆“先创建服务器,再配置防火墙,最后绑定IP”的脚本,而是用 HCL 语言描述你最终想要的状态:“我需要一台 Hetzner CX23 规格的服务器,开放 22 端口 SSH,并且关联我的公钥”。Terraform 会自己计算如何达到这个状态,并且无论你执行多少次terraform apply,只要描述文件不变,结果都是一样的。这避免了手动操作可能带来的配置漂移,也为团队协作和版本控制基础设施配置打下了基础。

为什么选 Hetzner Cloud?除了性价比高,更重要的是它的 API 稳定、文档清晰,非常适合自动化。Terraform 的 Hetzner 提供商(hetznercloud/hcloud)成熟度很高,能覆盖我们需要的所有资源:服务器、防火墙、SSH 密钥、网络。

Ansible:系统配置与应用的“手术刀”服务器创建好了,但还是个“裸机”。我们需要安装 Docker、配置用户、部署代码、设置环境变量……这些就是 Ansible 的舞台。与 Terraform 管理“外部资源”不同,Ansible 专注于管理“系统内部状态”。

这个项目里的 Ansible 用法很精髓:它只在本地运行,通过 SSH 连接到远端服务器执行任务。这意味着你的 Ansible Playbook 和敏感变量(如 API 密钥)永远不需要上传到服务器或 CI 环境,极大降低了密钥泄露的风险。Playbook 被设计成幂等的,你可以反复执行make deploy,它只会对发生变化的部分进行更新,非常安全。

Docker Compose:应用运行的标准化容器OpenClaw 本身及其依赖(如数据库)被打包在 Docker 容器里。Docker Compose 则负责定义和运行这些多容器的应用。它的好处是隔离性好、环境一致、一键启停。项目中的docker-compose.yml定义了 OpenClaw 网关服务,并将其数据卷(~/.openclaw)挂载到宿主机,方便持久化存储和备份。

Make:所有操作的统一入口这是提升体验的关键。面对 Terraform、Ansible 一堆命令和参数,新手很容易记错。Makefile把这些封装成make init,make plan,make bootstrap等简单直观的命令。它处理了复杂的环境变量传递、命令顺序,让你可以专注于“做什么”,而不是“怎么做”。

2.2 安全架构设计:从外到内的层层防御

这个项目的安全设计值得单独拿出来说,它体现了“纵深防御”的思想:

  1. 云端防火墙(第一道防线):Terraform 创建的 Hetzner 云防火墙,默认只允许你的 IP 访问 SSH(22端口)。这是阻止随机扫描的第一层。
  2. 系统防火墙(第二道防线):Ansible 会在服务器上配置 UFW(Uncomplicated Firewall),进一步收紧策略,形成第二层防护。
  3. 服务隔离(第三道防线):OpenClaw 网关服务在 Docker 内部仅绑定到127.0.0.1:18789,这意味着从公网根本无法直接访问到该服务。
  4. Tailscale VPN(终极方案):这是最妙的一招。通过集成 Tailscale,你可以创建一个覆盖所有你设备的加密私有网络(tailnet)。部署流程可以自动将服务器加入你的 tailnet,然后关闭公网 SSH 端口。此后,你只能通过 Tailscale 分配的私有 IP 或 MagicDNS(如openclaw-prod.your-tailnet.ts.net)来 SSH 或访问服务。公网攻击面几乎为零。
  5. 密钥管理:敏感信息如 Hetzner API Token、Tailscale OAuth Secret、OpenClaw 网关令牌等,都通过secrets/inputs.shsecrets/.env管理,并被.gitignore排除。还支持使用sopsage进行加密,以便安全地存入 Git 仓库,实现 GitOps。

这种设计确保了即使某个环节出现疏漏,攻击者也无法长驱直入。对于部署一个长期运行、可能处理敏感对话的 AI 助手来说,这种谨慎是非常必要的。

2.3 配置覆盖系统:平衡标准化与个性化

项目作者明确表示这是“固执己见”的,选择了特定的技术栈和默认配置。但为了灵活性,它提供了一套优雅的“覆盖文件”系统。

定制内容覆盖文件何时复制
Terraform后端状态存储terraform/envs/prod/backend.tfmake init
Terraform服务器规格、区域等terraform/envs/prod/terraform.tfvarsmake plan
Docker额外服务(如数据库监控)docker-compose.override.ymlmake bootstrap
Make自定义命令Makefile.local任何时候
Ansible自定义部署步骤ansible/site.local.yml任何时候

重点是,这些覆盖文件都是.gitignore的。这意味着你可以 fork 这个仓库作为上游(upstream),然后在自己的私有分支里安全地存放这些个性化配置和密钥。未来上游更新时,你可以轻松地git merge upstream/main而几乎不会产生冲突。这是一种非常专业的 IaC 项目管理模式。

3. 从零开始:手把手部署实战

理论讲完了,我们动真格的。假设你已经有 Hetzner Cloud 账户并准备好了 SSH 公钥,我们从头走一遍。

3.1 前期准备:工具安装与环境配置

首先,确保你的本地开发机(Mac/Linux/WSL2)上安装了以下工具:

  1. Terraform: 用于创建云资源。直接从 官网 下载或使用包管理器安装。
  2. Ansible: 用于配置服务器。通常pip install ansible或系统包管理器安装即可。
  3. age 和 sops: 用于加密解密密钥。这是可选的,但如果你想走 GitOps 自动化部署路线则是必须的。brew install age sops(Mac) 或参考 GitHub 发布页安装。
  4. jq: 用于 JSON 处理,make validate会用到。brew install jqapt-get install jq
  5. Git: 这个不用说。

注意:所有工具的版本最好参考项目 README 中的要求。特别是 Terraform,不同主版本间语法可能有变。

3.2 第一步:克隆项目与基础配置

# 1. 克隆仓库 git clone https://github.com/tardigrde/openclaw-deploy.git cd openclaw-deploy # 2. 配置基础设施密钥 cp secrets/inputs.example.sh secrets/inputs.sh vim secrets/inputs.sh

打开secrets/inputs.sh,你需要填写两个核心变量:

# 从 Hetzner Cloud 控制台生成:Project -> Security -> API Tokens export HCLOUD_TOKEN="你的_Hetzner_API_Token" # 从 Hetzner Cloud 控制台获取:Security -> SSH Keys,找到你上传的公钥对应的指纹 export TF_VAR_ssh_key_fingerprint="你的_SSH_密钥指纹"

这里有个坑TF_VAR_ssh_key_fingerprint的值不是密钥本身,而是指纹。在 Hetzner 控制台 SSH 密钥列表里,点击你的密钥,在详情页可以找到一串SHA256:开头的字符串,或者一串冒号分隔的十六进制数,复制那个就行。如果填错,后续 Terraform 会报错找不到密钥。

# 3. 配置 OpenClaw 应用本身 cp openclaw.example.json openclaw.json vim openclaw.json

这个文件决定了你的 AI 助手的行为。至少需要修改:

  • gateway.auth.profiles:配置 AI 供应商的 API 密钥。默认是 Anthropic Claude。
  • gateway.controlUi.allowedOrigins:允许访问网关 UI 的域名。初始部署先保持["localhost", "127.0.0.1"],等 Tailscale 配置好后再加。
  • telegram.botToken:你的 Telegram Bot Token。需要先去 @BotFather 那里创建一个机器人获取。
# 4. 配置 Terraform 后端(可选,高级用法) cp terraform/envs/prod/backend.tf.example terraform/envs/prod/backend.tf # 默认是本地状态文件,无需修改。如果是团队协作,建议配置远程后端如 GCS。

3.3 第二步:基础设施部署与服务器创建

现在,激动人心的部分来了:在云端变出一台服务器。

# 1. 加载环境变量到当前 shell source secrets/inputs.sh # 2. 初始化 Terraform,下载提供商插件 make init # 输出会显示 Terraform 初始化成功。 # 3. 生成执行计划,预览将要创建的资源 make plan # 仔细阅读输出,它会告诉你:将要创建 1 个 Hetzner 服务器、1 个防火墙等。确认无误。 # 4. 执行部署,真正创建资源 make apply # Terraform 会再次显示计划并询问是否执行,输入 `yes`。 # 等待几分钟,你会看到服务器创建成功,并输出服务器的公网 IP 地址。

执行现场记录与解析: 当你运行make apply并确认后,Terraform 会开始调用 Hetzner Cloud API。你会在终端看到类似下面的输出:

hcloud_server.openclaw: Creating... hcloud_server.openclaw: Still creating... [10s elapsed] hcloud_server.openclaw: Still creating... [20s elapsed] hcloud_server.openclaw: Creation complete after 31s [id=12345678] hcloud_firewall.openclaw: Creating... hcloud_firewall.openclaw: Creation complete after 3s [id=87654321] hcloud_firewall_attachment.openclaw: Creating... hcloud_firewall_attachment.openclaw: Creation complete after 2s [id=12345678-87654321] Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Outputs: server_ip = "123.123.123.123"

这个过程通常需要 30-60 秒。成功后,记下输出的server_ip,这就是你新服务器的公网 IP。

重要提示:此时服务器的 SSH 端口(22)是对全世界开放的。如果你打算稍后再配置 Tailscale,建议先执行一个临时限制,只允许你的 IP 访问。在secrets/inputs.sh中临时添加export TF_VAR_ssh_allowed_cidrs='["你的公网IP/32"]',然后重新source并运行make apply。这能极大降低从创建到配置完成窗口期的风险。

3.4 第三步:应用部署与启动

服务器有了,现在要把 OpenClaw 装上去。

# 1. 配置容器运行所需的环境变量(密钥) cp secrets/.env.example secrets/.env vim secrets/.env

至少需要设置:

  • OPENCLAW_GATEWAY_TOKEN: 一个强密码,用于访问网关 Web UI。
  • ANTHROPIC_API_KEY: 你的 Claude API 密钥(如果你用 Anthropic 模型)。如果你用的是 Claude 订阅授权,这里可以留空,后续用make setup-auth配置。
  • TELEGRAM_BOT_TOKEN: 你的 Telegram Bot Token,需要和openclaw.json里的一致。
# 2. (可选但推荐)加密密钥文件 # 如果你打算把配置推送到 Git 仓库做自动化,需要加密 .env 文件 make secrets-generate-key # 这会生成一个 age 密钥对,并打印公钥。复制公钥。 # 编辑 .sops.yaml 文件,将公钥粘贴到 `age:` 字段下。 make secrets-encrypt # 这会生成一个加密后的 secrets/.env.enc 文件。之后可以安全地提交这个文件。 # 本地开发时,使用未加密的 .env 文件即可。
# 3. 执行一键部署! source secrets/inputs.sh # 再次确认环境变量已加载 make bootstrap

这个make bootstrap命令是核心,它背后做了大量工作:

  1. Ansible 连接服务器:使用前面 Terraform 输出的 IP 和你的 SSH 密钥连接服务器。
  2. 系统初始化:创建openclaw系统用户、安装 Docker 和 Docker Compose、配置 UFW 防火墙(默认允许 22 端口)。
  3. 推送配置:将本地的openclaw.jsonsecrets/.env文件上传到服务器的~/.openclaw/目录。
  4. 构建与启动:在服务器上构建 OpenClaw 的 Docker 镜像,然后通过docker compose up -d启动所有服务。

整个过程会在终端滚动输出 Ansible 的执行日志。耐心等待,直到最后出现类似“PLAY RECAP”且没有失败任务(failed=0)的提示。

3.5 第四步:验证与访问

部署是否成功?我们来检查一下。

# 1. 查看容器状态 make status

你应该看到openclaw-gateway容器的状态是runninghealthy

# 2. 查看实时日志 make logs

滚动日志,寻找关键信息:[entrypoint] Skill installation complete表示技能加载成功,Gateway listening on http://127.0.0.1:18789表示网关服务已启动。如果有错误(比如 API 密钥无效),也会在这里显示。

# 3. 建立 SSH 隧道,将本地端口映射到服务器的服务端口 make tunnel # 这个命令会挂起,保持隧道打开。它会输出类似:`Forwarding from 127.0.0.1:18789 -> 127.0.0.1:18789`

现在,打开你的浏览器,访问http://localhost:18789。你应该会看到 OpenClaw 的网关登录界面。输入你在secrets/.env中设置的OPENCLAW_GATEWAY_TOKEN

成功标志:令牌被接受,进入网关管理界面,你可以看到已连接的 Telegram Bot 和配置的技能。到这一步,一个基础的、通过公网 SSH 管理的 OpenClaw 服务就部署成功了。

4. 进阶配置:集成 Tailscale 实现零信任网络

基础部署虽然能用,但 SSH 暴露在公网始终是个风险。下面我们启用 Tailscale,打造一个更安全的私有访问环境。

4.1 Tailscale 原理与优势

Tailscale 基于 WireGuard,但它解决了 WireGuard 配置复杂的痛点。你只需要在所有设备上登录同一个 Tailscale 账户,它们就会自动组成一个加密的 mesh 网络,每个设备都会获得一个固定的私有 IP(100.x.x.x),并且可以通过 MagicDNS 直接用主机名访问。

在这个项目中集成 Tailscale 的好处:

  1. 关闭公网 SSH:服务器 SSH 只监听 Tailscale 网络接口,互联网上的扫描器根本看不到 22 端口。
  2. 安全访问 Web UI:可以通过 Tailscale 的 HTTPS URL 直接访问 OpenClaw 网关,无需 SSH 隧道。
  3. 跨网络访问:无论你是在公司、在家还是用手机流量,只要设备在 tailnet 内,访问体验都一样。
  4. 简化配置:不需要记住服务器 IP,直接用openclaw-prod.your-tailnet.ts.net这样的域名访问。

4.2 详细配置步骤

前提:你需要一个 Tailscale 账户(免费版足够个人使用)。

  1. 创建 Tailscale OAuth 客户端: 登录 Tailscale 管理后台 ,点击 “Create OAuth client”。

    • 名称:随意,如 “OpenClaw Terraform”。
    • 重定向 URI:填写http://localhost:8080/callback(这是一个本地回调 URI,Terraform provider 会用到)。
    • 权限范围:务必勾选auth_keys:write(创建预认证密钥)、settings:write(修改设备设置)、dns:write(配置 DNS)。如果想用 Terraform 管理 ACL,还需勾选acls:write。 创建后,保存好Client IDClient Secret
  2. 更新本地配置: 编辑secrets/inputs.sh,添加以下三行:

    export TF_VAR_enable_tailscale=true export TF_VAR_tailscale_oauth_client_id="tskey-client-xxxxxxxxx" export TF_VAR_tailscale_oauth_client_secret="tskey-secret-xxxxxxxxx"
  3. 更新基础设施

    source secrets/inputs.sh make apply

    这次make apply会为你的 Tailscale 网络生成一个“预认证密钥”(Auth Key),并存储在 Terraform 的状态文件里。这个密钥用于让服务器自动加入你的 tailnet,而无需你手动操作。

  4. 重新部署应用(关键步骤)

    make bootstrap

    这个命令现在有了新任务:它会让 Ansible 在服务器上安装 Tailscale 客户端,并使用上一步生成的 Auth Key 自动注册设备。注册成功后,你会在 Tailscale 管理后台看到一台名为openclaw-prod的新设备。

  5. 锁定 SSH,仅限 Tailscale 访问

    make tailscale-enable

    这个命令非常智能:

    • 首先,它会检查服务器是否已成功通过 Tailscale 连通。
    • 如果连通,它会自动运行make apply,但这次会修改 Terraform 配置,将防火墙规则中的ssh_allowed_cidrs设置为空列表[],从而关闭公网的 SSH 访问
    • 如果 Tailscale 连通检查失败,命令会中止,公网 SSH 保持开放,防止你把自己锁在外面。
  6. 切换连接方式: 编辑secrets/inputs.sh,将SERVER_IP从公网 IP 改为 Tailscale 的 MagicDNS 主机名。

    # 注释掉旧的公网 IP,使用 MagicDNS # export SERVER_IP="123.123.123.123" export SERVER_IP="openclaw-prod"

    然后source secrets/inputs.sh。此后,所有的make sshmake tunnel等命令都会通过 Tailscale 网络连接。

  7. 配置 OpenClaw 允许 Tailscale 访问: 编辑openclaw.json,在gateway.controlUi.allowedOrigins数组中,添加你的 Tailscale HTTPS URL。你可以在 Tailscale 管理后台找到它,格式是https://<设备名>.<tailnet名>.ts.net

    { "gateway": { "auth": { "allowTailscale": true }, "controlUi": { "allowedOrigins": [ "localhost", "127.0.0.1", "https://openclaw-prod.your-tailnet-name.ts.net" ] }, "trustedProxies": ["172.20.0.0/24"] } }
    • allowTailscale: true允许通过 Tailscale 身份头进行认证,这样访问 Web UI 可能就不需要手动输入令牌了(取决于浏览器插件)。
    • trustedProxies必须设置。因为当通过 Tailscale Serve(反向代理)访问时,真实客户端 IP 是通过X-Forwarded-For头传递的。这个 CIDR 需要匹配 Docker Compose 网络的子网(默认是172.20.0.0/24),网关才能正确识别 Tailscale 的头部信息。

    保存后,运行make deploy推送新配置。

完成:现在,你可以直接通过浏览器访问https://openclaw-prod.your-tailnet-name.ts.net来打开 OpenClaw 网关,并且服务器的 22 端口在公网已不可见。你的整个管理平面都转移到了加密的 Tailscale 私有网络内。

5. 日常运维、问题排查与经验心得

部署完成只是开始,长期稳定运行更重要。这部分分享一些日常操作和踩过的坑。

5.1 常用 Make 命令速查

项目把几乎所有操作都封装成了make命令,这里列几个最常用的:

命令作用使用场景
make status检查容器、Tailscale 状态日常健康检查
make logs查看容器实时日志调试服务启动失败、查看 AI 调用记录
make deploy推送配置变更并重启服务修改openclaw.json.env
make deploy REBUILD=1重建镜像并部署升级 OpenClaw 版本后
make sshSSH 登录到服务器需要执行高级调试命令时
make backup-now立即触发一次备份重大变更前
make backup-pull下载最新备份到本地本地存档或用于恢复测试

5.2 常见问题与解决方案实录

问题一:make bootstrapmake deploy失败,Ansible 报错 “Permission denied (publickey).”

  • 原因:SSH 认证失败。
  • 排查
    1. 确认secrets/inputs.sh中的TF_VAR_ssh_key_fingerprint是否正确对应了已上传到 Hetzner 的公钥。
    2. 确认本机~/.ssh/id_rsa(或SSH_KEY环境变量指定的路径)存在对应的私钥,且权限是600
    3. 如果刚配置了 Tailscale 并切换了SERVER_IP,确认make tailscale-status显示连接是活跃的。
  • 解决:修正密钥指纹或路径,重新source secrets/inputs.sh并重试。

问题二:容器不断重启,make logs显示OPENCLAW_GATEWAY_TOKEN environment variable is required

  • 原因secrets/.env文件中的OPENCLAW_GATEWAY_TOKEN变量没有正确传递到容器内,或者文件本身没有上传到服务器。
  • 排查
    1. 登录服务器make ssh,然后cat ~/.openclaw/.env,检查变量是否存在。
    2. 在服务器上运行docker compose -f ~/openclaw/docker-compose.yml config,查看最终渲染出的环境变量。
  • 解决:确保本地secrets/.env文件已正确配置,然后重新运行make deploy。如果使用了 SOPS 加密,确保服务器上有对应的 age 私钥能解密.env.enc文件。

问题三:通过 Tailscale URL 访问网关,一直显示 “Unauthorized” 或空白页

  • 原因allowedOriginstrustedProxies配置不正确。
  • 排查
    1. 检查openclaw.jsonallowedOrigins数组是否包含了完整的 Tailscale HTTPS URL(注意是https://开头)。
    2. 检查trustedProxies是否设置为["172.20.0.0/24"]。可以通过make ssh然后docker network inspect openclaw_default来确认 Docker 网络的子网。
    3. 查看网关日志make logs,看是否有关于来源不被允许的错误。
  • 解决:修正openclaw.json配置,运行make deploy。如果还不行,尝试暂时在浏览器中直接输入网关令牌,或者通过make tunnel的 SSH 隧道访问localhost:18789来排除网络问题。

问题四:想升级 OpenClaw 到新版本

  • 步骤
    1. 务必先备份make backup-now
    2. 编辑docker/Dockerfile,找到FROM openclaw/openclaw-gateway:xxxxx这一行,将标签修改为目标版本号(如2026.3.24)。
    3. 执行make deploy REBUILD=1REBUILD=1会强制重建 Docker 镜像。
    4. 观察make logs输出,确认新版本启动无误。
  • 心得:在升级前,最好去 OpenClaw 的 GitHub Release 页面查看更新日志,确认是否有破坏性变更需要同步调整openclaw.json的配置。

问题五:服务器磁盘空间不足

  • 原因:Docker 镜像、日志或 OpenClaw 的会话数据积累。
  • 解决
    1. make ssh登录服务器。
    2. 清理无用的 Docker 资源:docker system prune -a -f(谨慎使用,会删除所有未使用的镜像、容器、网络)。
    3. 查看~/.openclaw目录大小,如果过大,可以考虑在openclaw.json中配置日志轮转或清理旧会话数据(需参考 OpenClaw 文档)。
    4. 最根本的,可以在terraform/envs/prod/terraform.tfvars中修改disk_size参数(默认 40GB),然后make apply。注意:扩大磁盘需要服务器重启

5.3 备份与恢复:给你的 AI 助手上保险

OpenClaw 的会话、技能配置等都存储在服务器的~/.openclaw目录下。项目内置了备份机制。

  • 手动触发备份make backup-now。这会在服务器上创建一个带时间戳的.tar.gz压缩包,存放在~/backups/目录下。
  • 下载备份到本地make backup-pull。这会将最新的备份文件拉取到本地的backups/目录。
  • 查看可恢复的备份make restore。这会列出服务器上所有的备份文件。
  • 执行恢复make restore EXECUTE=1 BACKUP=文件名恢复操作会停止当前服务,覆盖现有数据,务必谨慎!最好先在测试环境演练。

我的备份策略

  1. Makefile.local中创建一个 cron 任务,每周自动运行make backup-now
  2. 重要配置变更(如升级前)手动触发一次备份。
  3. 定期使用make backup-pull将备份下载到本地或另一个云存储,实现异地容灾。

5.4 关于成本与优化

  • 服务器成本:默认的 Hetzner CX23(2vCPU,4GB RAM)每月约 5 欧元。对于个人或小团队使用 OpenClaw 完全足够。如果觉得性能有余量,可以降级到 CX21(1vCPU,2GB RAM)。监控服务器资源使用情况(make sshhtop),按需调整。
  • API 成本:这是主要成本,取决于你使用 AI 模型的频率和类型。Anthropic Claude 或 OpenAI GPT-4 的 API 调用费用需要自行在对应平台监控。建议在 OpenClaw 网关的配置中设置使用限制或切换到更经济的模型(如 Claude Haiku)进行日常对话。
  • 状态存储成本:如果使用 Terraform 远程后端(如 GCS),会产生少量的存储和读写 API 调用费用,几乎可以忽略不计。

部署完成后,整个系统几乎不需要人工干预。它通过 IaC 实现了基础设施的版本化,通过 Ansible 和 Docker 实现了应用部署的一致性,通过 Tailscale 和防火墙实现了安全加固。你可以放心地让你的 AI 助手持续运行,专注于用它来提升效率,而不是操心运维问题。这套组合拳,对于任何想在云上部署类似复杂应用的个人开发者来说,都是一个极具参考价值的范本。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询