我的家庭实验室 AI 开发平台
我搭建了一个 OpenCode Web UI 并配置了 Git 访问权限,让我的家庭实验室管理变得更轻松。OpenCode 将变更推送到 Git,我审核 PR,然后通过 GitOps 自动部署。最棒的是,OpenCode 以服务端模式运行,持久的编码会话可以在设备间同步。
我很快就会分享我的家庭实验室整体架构。目前有大约十几个 Docker Compose 堆栈管理各种服务,最近我把它们迁移到了 Arcane 平台,以便通过 GitOps 进行管理和部署。下一步自然就是引入 AI 工具来帮助维护这些服务了。
第一个想到的用途是用 AI 协助容器更新。以前,我需要逐个查看每个服务的发布说明、检查是否有破坏性变更、运行更新,然后手动检查每个服务的运行状态——通常要花几个小时。现在,我只需花几分钟阅读 AI 生成的发布说明摘要,版本升级变得更加轻松和安全。此外,我还用 AI 给大部分容器添加了健康检查,帮助更快发现问题。
选择 OpenCode
我主要用的是 Claude Code,但最近 AI 提供商通过 Token 限制不断压缩用户价值,所以我趁机寻找其他选择。我想要一个厂商无关、支持主要插件的解决方案,最终选定了 OpenCode。市面上可能还有其他不错的编码环境,但这是我最喜欢的一个。
后来我发现它自带内置 Web 服务器和 Web UI,这给了我一个想法。

AI 开发平台
我在 TrueNAS 主机上搭建了一个简单的虚拟机,安装了基础开发工具,并将 OpenCode Web 服务器配置为 systemd 服务。这个环境相当完善:内置终端、文件浏览器、Git 差异对比,还支持 Git Worktree 让多个编码会话同时运行。而且 OpenCode 在移动端 Web UI 上的问答弹窗是我见过做得最好的。
我给我的 Git 服务器上 OpenCode 分配了独立用户和专用 SSH 密钥。它可以克隆项目和推送分支,但不能直接推送到部署分支。我的工作流让 AI 保持在 PR 审核之后——OpenCode 编写变更,我自己在 PR 中合并。这个做法既有趣,更重要的是,它防止了未经审查的代码被部署上线。
虚拟机可以访问互联网和我的 Git 服务器,但无法触及实际的服务。由于爆炸半径很小,当 OpenCode 需要安装构建工具或测试依赖时,我可以放心给它 root 权限。
我设想这可以发展成一个生产级开发者平台:为开发者提供预装工具的临时容器、访问护栏和审计日志。不过就目前而言,它已经满足了我的需求,而且没有太多复杂的组件。
工作流程

我的基本工作流:在 OpenCode 中规划功能或改进,测试验证,迭代改进,OpenCode 推送到功能分支,我创建并合并 PR,GitOps 接管部署。Docker 服务走 Arcane,Home Assistant 配置走 GitOps 插件,博客走 Cloudflare Pages Worker。

从手机就能更新所有容器的网络配置,让原本需要数小时梳理所有 Compose 堆栈网络拓扑的工作变得轻而易举。目前主要缺失的是 CI 反馈——GitHub 上可以让编码 Agent 读取 Actions 日志自动诊断失败测试,而 Forgejo Actions 没有公共 API 暴露作业日志,这让这件事变得困难。
这套方案让我可以从任何设备修改家庭基础设施,同时不让 AI 直接接触到它正在修改的服务。