我的家庭實驗室 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 處理部署。