Skip to content

自我修复的家庭服务器和基础设施管理

运行家庭服务器意味着您需要 24/7 为自己的基础设施待命。服务在凌晨 3 点宕机、证书悄然过期、磁盘满载、Pod 崩溃循环——而您正在睡觉或不在家。

此用例将 OpenClaw 变成一个具有 SSH 访问权限、自动化 cron 作业和检测、诊断和修复问题能力的基础设施 agent,甚至在您知道有问题之前就能发现。

痛点

家庭实验室运营商和自托管者面临持续的维护负担:

  • 健康检查、日志监控和告警需要手动设置和关注
  • 当东西坏了时,您必须 SSH 进入、诊断和修复——通常是从手机上
  • 基础设施即代码(Terraform、Ansible、Kubernetes 清单)需要定期更新
  • 关于您设置的知识存在于您脑海中,而不是可搜索的文档中
  • 日常任务(邮件分类、部署检查、安全审计)每周花费数小时

功能

  • 自动化健康监控:基于 cron 的服务、部署和系统资源检查
  • 自我修复:通过健康检查检测问题并自主应用修复(重启 Pod、扩展资源、修复配置)
  • 基础设施管理:编写和应用 Terraform、Ansible 和 Kubernetes 清单
  • 早间简报:每日系统健康、日历、天气和任务板状态摘要
  • 邮件分类:扫描收件箱,为可操作项目加标签,存档噪音
  • 知识提取:将笔记和对话导出处理成结构化、可搜索的知识库
  • 博客发布管道:草稿 → 生成横幅 → 发布到 CMS → 部署到托管——全自动化
  • 安全审计:定期扫描硬编码密钥、特权容器和过于宽松的访问

所需技能

  • ssh 访问家庭网络机器
  • kubectl 用于 Kubernetes 集群管理
  • terraformansible 用于基础设施即代码
  • 1password CLI 用于密钥管理
  • gog CLI 用于邮件访问
  • 日历 API 访问
  • Obsidian 保险库或笔记目录(用于知识库)
  • openclaw doctor 用于自我诊断

设置方法

1. 核心 Agent 配置

在 AGENTS.md 中命名您的 agent 并定义其访问范围:

text
## 基础设施 Agent

您是 Reef,一个基础设施管理 agent。

访问权限:
- SSH 到家庭网络(192.168.1.0/24)上的所有机器
- kubectl 用于 K3s 集群
- 1Password 保险库(只读访问凭证,专用 AI 保险库)
- 通过 gog CLI 访问 Gmail
- 日历(您的 + 伴侣的)
- ~/Documents/Obsidian/ 处的 Obsidian 保险库

规则:
- 切勿硬编码密钥——始终使用 1Password CLI 或环境变量
- 切勿直接推送到 main——始终创建 PR
- 将 `openclaw doctor` 作为自我健康检查的一部分
- 将所有基础设施更改记录到 ~/logs/infra-changes.md

2. 自动化 Cron 作业系统

此设置的力量是计划作业系统。在 HEARTBEAT.md 中配置:

text
## Cron 计划

每 15 分钟:
- 检查 Kanban 板上进行中的任务 → 继续工作

每小时:
- 监控健康检查(Gatus、ArgoCD、服务端点)
- 分类 Gmail(为可操作项目加标签,存档噪音)
- 检查未答应的告警或通知

每 6 小时:
- 知识库数据录入(处理新 Obsidian 笔记)
- 自我健康检查(openclaw doctor、磁盘使用、内存、日志)

每 12 小时:
- 代码质量和文档审计
- 通过 Loki/监控堆栈进行日志分析

每天:
- 凌晨 4:00:夜间头脑风暴(探索笔记之间的联系)
- 早上 8:00:早间简报(天气、日历、系统统计、任务板)
- 凌晨 1:00:速度评估(流程改进)

每周:
- 知识库 QA 审查
- 基础设施安全审计

3. 安全设置(关键)

这至关重要。在赋予您的 agent SSH 访问权限之前:

text
## 安全检查清单

1. 预推送钩子:
   - 在所有仓库上安装 TruffleHog 或类似的密钥扫描器
   - 阻止任何包含硬编码 API 密钥、token 或密码的提交

2. 本地优先 Git 工作流:
   - 在推送到公共 GitHub 之前,使用 Gitea(自托管)存放私有代码
   - CI 扫描管道(Woodpecker 或类似)在任何公共推送之前运行
   - 主分支合并需要人工审查

3. 纵深防御:
   - 为 AI agent 使用专用 1Password 保险库(有限范围)
   - 敏感服务的网络分段
   - 每日自动安全审计检查:
     * 特权容器
     * 代码或配置中的硬编码密钥
     * 过于宽松的文件/网络访问
     * 部署镜像中的已知漏洞

4. Agent 约束:
   - 分支保护:PR 需要推送到 main,agent 无法覆盖
   - 在不需要写入的地方使用只读访问
   - 所有更改通过 git 记录且可审计

4. 早间简报模板

text
## 每日简报格式

在早上 8:00 生成并发送:

### 天气
- 您所在位置的当前条件和预报

### 日历
- 您今天的事件
- 伴侣今天的事件
- 标记冲突或重叠

### 系统健康
- 所有机器的 CPU / RAM / 存储
- 服务:运行/停止状态
- 最近部署(ArgoCD)
- 过去 24 小时内的任何告警

### 任务板
- 昨天完成的卡片
- 进行中的卡片
- 需要关注的受阻项目

### 高光时刻
- 夜间头脑风暴中的值得注意的项目
- 需要采取行动的邮件
- 本周即将到来的截止日期

关键见解

  • "我不敢相信我有一个自我修复的服务器了":agent 可以运行 SSH、Terraform、Ansible 和 kubectl 命令来修复基础设施问题,甚至在您知道有问题之前
  • AI 会硬编码密钥:这是 #1 安全风险。如果您不强制执行防护措施,agent 会很乐意将 API 密钥内联到代码中。预推送钩子和密钥扫描是必须的
  • 本地优先 Git 至关重要:切勿让 agent 直接推送到公共仓库。使用私有 Gitea 实例作为暂存区域,带有 CI 扫描
  • Cron 作业是真正的产品:计划的自动化(健康检查、邮件分类、简报)比临时命令提供更多每日价值
  • 知识提取会积累:将笔记、对话导出和邮件处理成结构化知识库会随着时间变得更有价值——一位用户仅从他们的 ChatGPT 历史中提取了 49,079 个原子事实

灵感来源

此用例基于 Nathan 的详细文章 "Everything I've Done with OpenClaw (So Far)",他描述了他的 OpenClaw agent "Reef" 在家庭服务器上运行,具有 SSH 访问所有机器的权限、Kubernetes 集群、1Password 集成,以及包含 5,000+ 笔记的 Obsidian 保险库。Reef 运行 15 个活动的 cron 作业、24 个自定义脚本,并自主构建和部署了包括任务管理 UI 在内的应用程序。Nathan 在第 1 天 API 密钥泄露后的来之不易的教训:"AI 助手会愉快地硬编码密钥。它们有时没有人类相同的本能。" 他的纵深防御安全设置(TruffleHog 预推送钩子、本地 Gitea、CI 扫描、每日审计)是任何尝试此模式的人的必读内容。

也在 OpenClaw Showcase 上被引用,其中 @georgedagg_ 描述了一个类似的模式:部署监控、日志审查、配置修复和 PR 提交——都在遛狗时完成。

相关链接

MIT 许可证发布