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