我的家庭实验室 AI 开发平台
作者描述了他们如何使用 OpenCode(一种与供应商无关的编码代理,具有 Web UI 和 Git 集成)为其家庭实验室创建 AI 开发平台。该设置通过受控的工作流程自动执行容器更新和运行状况检查等维护任务,其中 OpenCode 推送分支,作者查看和合并 PR,然后 GitOps 部署更改。
作者分享了他们在家庭实验室中构建 AI 开发平台的经验,该平台利用 OpenCode 实现了基础设施维护的自动化和智能化。OpenCode 是一款与供应商无关的编码代理,支持持久化编码会话并在设备间同步,其内置的 Web 服务器和界面让作者萌生了构建专属平台的想法。
作者在 TrueNAS 主机上设置了一个简单的虚拟机,安装了基本的开发工具,并将 OpenCode Web 服务器作为 systemd 单元运行。这个环境提供了终端、文件浏览器、Git 差异比较以及 Git worktree 支持,可以同时管理多个编码会话。OpenCode 在移动端 Web 界面上的问答弹窗体验也令作者印象深刻。
为了安全,作者为 OpenCode 在 Git 服务器上创建了专用用户和 SSH 密钥。OpenCode 可以克隆项目并推送分支,但不能直接推送到部署分支。所有 AI 提出的更改都通过 Pull Request 提交,作者在审核并合并 PR 后,由 GitOps 完成部署。这样既保持了 AI 的便利性,又确保了代码经过人工审核。虚拟机具有互联网和 Git 服务器访问权限,但无法接触实际服务,因此作者在需要安装构建工具或测试依赖时,放心地赋予了 OpenCode 根权限。
作者的工作流程包括:在 OpenCode 中规划功能或改进(编写规范、实现计划和自我审查),尽可能测试或验证更改,与 OpenCode 迭代改进不满意的部分,然后 OpenCode 将更改推送到功能分支。作者为该分支创建 PR,满意后合并,最后 GitOps 接管部署。对于 Docker 服务,使用 Arcane;对于 Home Assistant 配置,使用 GitOps 插件;对于博客,使用 Cloudflare Pages Worker。
作者还分享了一段时间以来的优化成果:之前需要花费数小时检查每个服务的发布说明和破坏性变更,现在只需几分钟阅读 AI 总结的摘要,即可更安全地升级版本。此外,AI 还帮助为大多数容器添加了健康检查,加快了问题发现速度。
缺失的主要部分是 CI 反馈。在 GitHub 上,作者喜欢将编码代理指向 Actions 日志,以便诊断失败的测试、lint 错误、堆栈跟踪和 IaC 计划更改。但 Forgejo Actions 不通过公共 API 公开作业日志,给这一环节带来了困难。尽管如此,当前设置已让作者能够从任何设备进行家庭基础设施更改,无需将 AI 直接暴露给所更改的服务。他可以在电脑上启动更改,在手机上审核 PR,然后让 GitOps 处理部署。