
2026/06/16 0:09
私のホームラボ AI 開発プラットフォーム
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
著者は、GitOps ワークフローと AI 支援の開発を簡素化する OpenCode Web UI を中核としたセキュアなホムエーラボ管理システムを発表している。核心的な革新点は、AI 開発環境と生サービス間の厳格な分離にある:仮想マシンはインターネットへのアクセスを Git リポジトリとメインサーバーのみに制限し、動作中のアプリケーションへの直接接続を防ぎ、アクティブなコーディング中に影響範囲(ブラスト・レイシス)を最小限に抑えている。セキュリティは、機能ブランチは計画のためだけにクローンするポリシーにより強化されており、プロダクションへのコードデプロイの前には手動での Pull Request レビューが必須であり、これにより AI が人間によるレビューゲートの下に位置付けられる。過去は Truenas で十数個の
docker compose スタックを管理していたが、著者はこれらのより安全な慣行を実現するために Arcane(Docker 用)、GitOps プラグイン(Home Assistant 用)、Cloudflare Pages(ブログ用)への移行を行った。この構成は、AI ツールに関連するベンダーロックインの懸念を避ける一方で、ローカルでの制御を維持している。将来のデプロイメントも自動化パイプラインではなく手動承認に依存し続けたままとなり、ビルドツールや依存関係のテストのために VM へのルートアクセスは間欠的に行われるのみである。指摘すべき制限点は、Forgejo に CI フィードバックが不足しており、GitHub Actions と異なりパブリック API を通じてジョブログを公開していないことである。結局のところ、このアーキテクチャは開発環境を隔離しつつデバイス間で永続的で同期されたコーディング体験を維持することで、誤りからの潜在的な損害を最小限に抑えている。本文
OpenCode と GitOps で高度化するホームラボ管理
Git へのアクセス権限を設定した OpenCode Web UI を導入し、ホームラボの管理業務を効率化しています。現在運用しているのは以下のような自律的な開発ワークフローです:
- コードの変更: AI (OpenCode) が変更を行います
- レビュー: 私は生成されたプルリクエスト (PR) を審査・マージします
- 展開: GitOps ツールが変更を自動的にデプロイします
- 同期: サーバー上で動作し、デバイス間でのコーディングセッションを永続的に維持可能です
コンテキスト:AI による運用支援の導入背景
アーキテクチャの移行
- 現在管理中の Docker Compose スタック数は約 12
- Arcane というツールへ移行し、GitOps で管理・展開を実現
- サービス維持をさらに効率化するため、AI ツールの活用を検討
メインユースケース:コンテナ更新の支援
以前は以下の手動プロセスに数時間を要していましたが、現在は大幅に短縮され安全に運用されています:
- リリースノート調査: AI が要約することで、破壊的変更の有無を数分で判別可能
- バージョンアップ: 導入が容易かつ安全に
- ヘルスチェック: AI を活用してほとんどのコンテナにチェックを導入し、問題検出の迅速化を実現
OpenCode の選択:ベンダーロックイン回避
選定に至るまでの考察
- 以前は Claude Code を主に利用
- トークン制限などで価値提供が圧迫される懸念から、他社製品も検討
- 要件:
- ベンダー非依存
- 主要なプラグイン対応
決定打:独自 Web UI の存在
- 候補は多数あったが、最も気に入ったのが OpenCode
- 特徴: 組み込みの Web サーバーと Web ユーザーインターフェースを標準搭載
- この構造により、新しい導入アイデアが浮かびました
AI 開発プラットフォームの構成
インフラセットアップ
TrueNAS ホスト上に以下を構築しました:
- 仮想マシン (VM) のセットアップ
- 基本的な開発ツールのインストール
- systemd ユニット としての OpenCode 追加
環境の特徴と利点
- 堅牢な機能:
- 組み込みターミナル
- ファイルブラウザ
- Git 差分表示機能
- 複数回のコーディングセッションを同時管理(Git ワークツリー)
- モバイル最適化: Web UI からの Q&A ポップアップ機能が非常に優秀
セキュリティとアクセス制御
OpenCode のデフォルトワークフローは、以下の原則に基づいています:
- 専用環境: Git サーバー上で専用ユーザー作成・SSH キー割り当て
- 制限付き操作:
- プロジェクトクローン ✅
- ブランチプッシュ ✅
- デプロイブランチへの直接プッシュ ❌ (禁止)
- 設計思想: AI は PR レビューの背後に置き、人間が最終判断を行う
- 結果: レビュー済みのコードのみがデプロイされることを保証
イソレーションと安全性
この VM はインターネット接続および Git サーバーへのアクセスは可能ですが、本番サービスへの直接アクセスは禁止されています。
- メリット:
- 影響範囲(ブラスト半径)を小さく抑えられます
- root 権限付与も安心です
- ビルドツールやテスト用依存関係のインストール・テストに最適
- 拡張性: エフェメラルなコンテナ割り当てや監査ログなどの企業級機能へ拡張可能ですが、私にとっては「必要な機能のみ」を提供するシンプルさが望ましかったです
ワークフロー:AI 支援による開発サイクル
基本的な開発プロセスは以下の通りです:
- OpenCode で仕様・実装計画を立てる(自己レビューを含む)
- 変更のテストまたは検証を行う(可能な場合)
- 必要であれば、OpenCode と反復作業を繰り返して改善
- OpenCode が変更内容を機能ブランチにプッシュ
- そのブランチに対して PR を作成
- 内容に満足したら PR をマージ
- GitOps が自動的に展開を処理
運用対象とツール選定
- Docker サービス変更: Arcane (GitOps プロジェクト利用)
- Home Assistant 設定変更: GitOps プラグイン利用
- ブログ記事変更: Cloudflare Pages Worker 利用
シフトの成功体験
TrueNAS 上の Docker Compose スタックを Arcane の GitOps プロジェクトへ移行し、ストレージを Git でバックアップ・管理する体制となりました。OpenCode の導入により以下のメリットが得られています:
- 管理の容易さ向上: スマートフォンから全コンテナのネットワーク設定を更新可能
- 時短効果: 以前は隅々までチェックして接続性を追跡するのに数時間かかっていましたが、現在はコードベースを対象にゴールを設定し、生成された PR の変更確認のみで済みます
改善点:CI/CD フィードバックの限界
GitHub では Actions ログを AI に指示させてテスト失敗やリナーエラーを即座に検証するのが好きですが、現在の構成には課題があります:
- Forgejo の制約: Forgejo Actions がパブリック API でジョブログを公開していないため、同様のアプローチが難しい
- 回避方針: 非公式 API を使うのではなく、現状の簡易性を維持する方向で判断
まとめ
この構成により、AI に本番サービスへの直接アクセスを与えずとも、あらゆるデバイスから安全にホームインフラの変更を行うことが可能です。
理想的なクロスデバイスワークフロー:
- 計算機: 変更の開発・開始
- スマートフォン: PR の審査・レビュー
- GitOps: 自動的な展開処理
これで、高品質で自律的なインフラ管理が実現されています。近日中に私のホームラボ全体の設定を公開予定です。