OpenCode와 GitOps로 홈랩 AI 개발 플랫폼 구축

홈랩 관리를 위한 AI 기반 개발 플랫폼은 컨테이너 업데이트와 인프라 변경을 자동화하면서 GitOps 워크플로우를 통해 인간의 감독을 유지합니다. AI 에이전트를 전용 VM에 격리하고 Pull Request (PR) 승인을 요구함으로써, 사용자는 AI에게 프로덕션 서비스에 직접 접근 권한을 부여하지 않고도 여러 장치에 걸친 복잡한 구성 작업을 수행할 수 있습니다.

아키텍처: OpenCode와 보안 샌드박스

플랫폼의 핵심은 OpenCode이며, 이는 내장 웹 서버와 웹 UI를 제공하는 벤더에 구애받지 않는 코딩 환경으로, 장치 간에 동기화되는 지속적인 코딩 세션을 가능하게 합니다.

AI가 생성한 변경 사항의 "폭발 반경"을 제한하고 보안을 유지하기 위해 시스템은 다음과 같이 설계되었습니다:

  • 전용 VM: OpenCode는 Truenas 호스트의 간단한 VM 내에서 systemd 유닛으로 실행됩니다. 이 VM에는 필요한 개발 도구가 포함되어 있지만 관리 대상 실제 서비스와는 네트워크가 격리되어 있습니다.
  • 제한된 Git 접근: AI 에이전트는 전용 SSH 키를 가진 Git 서버의 자체 사용자에게 할당됩니다. 프로젝트를 복제하고 기능 브랜치에 푸시할 수 있지만, 배포 브랜치에 직접 푸시하는 것은 엄격히 금지됩니다.
  • 특권 접근: VM이 프로덕션 서비스와 격리되어 있기 때문에, AI는 호스트 시스템에 위험을 주지 않으면서 빌드 도구나 테스트 의존성을 설치하기 위해 VM 내에서 루트 권한을 부여받습니다.

인프라 관리용 GitOps 워크플로우

플랫폼은 릴리즈 노트를 읽고 Docker Compose 스택을 업데이트하는 등 수동 인프라 유지보수를 AI 지원 파이프라인으로 대체합니다. 워크플로우는 안정성을 보장하기 위해 엄격한 순서를 따릅니다:

  1. 계획: 사용자는 OpenCode에서 기능 또는 개선 사항을 정의하고, 사양 및 구현 계획을 작성합니다.
  2. 반복: 사용자와 AI가 계획을 반복하고 가능한 경우 변경 사항을 검증합니다.
  3. 브랜치 생성: OpenCode는 최종 변경 사항을 기능 브랜치에 푸시합니다.
  4. 리뷰: 사용자는 기능 브랜치에 대한 PR을 열고 검토합니다.
  5. 배포: PR이 병합되면 GitOps 도구가 배포를 처리합니다. 여기에는 Docker 서비스 변경을 위한 Arcane, Home Assistant 구성을 위한 GitOps 플러그인, 블로그 업데이트를 위한 Cloudflare Pages 워커가 포함됩니다.

이 접근 방식은 여러 Compose 파일을 수동으로 편집하는 대신 PR을 검토함으로써 모바일 기기에서 모든 컨테이너의 네트워킹을 업데이트하는 등 고수준 변경을 수행할 수 있게 합니다.

기술적 제한 사항 및 과제

플랫폼이 업데이트를 간소화하지만 CI 피드백 루프와 관련된 큰 병목 현상이 존재합니다. GitHub과 같은 환경에서는 에이전트가 Action 로그를 읽어 실패한 테스트나 린터 오류를 진단할 수 있습니다. 그러나 Forgejo를 사용하는 현재 설정에서는 공개 API가 작업 로그를 제공하지 않아 AI가 배포 실패를 자동으로 진단하고 수정하기 어렵습니다.

커뮤니티 관점 및 대안 구현

개발자들 사이의 논의에서는 홈랩 및 개발 환경에 AI를 통합하기 위한 여러 대안 패턴이 제시되었습니다:

  • 액션 기반 에이전트: 일부 사용자는 Forgejo 액션 러너 내부에서 OpenCode를 실행하고, 이슈 내 /oc 명령을 통해 에이전트를 호출해 자동으로 PR을 생성합니다.
  • 향상된 샌드박싱: 고급 구현에서는 gVisor와 Kubernetes 에이전트 샌드박스, 또는 systemd가 강제하는 프라이빗 로컬호스트와 프록시를 사용해 에이전트가 자격 증명에 직접 접근하지 못하도록 합니다.
  • 통합 레이어: Kimaki와 같은 도구를 사용해 Discord 통합을 추가하고, 사용자가 음성이나 채팅 메시지를 통해 코드베이스와 상호작용할 수 있게 합니다.
  • 대체 툴체인: 다른 사용자들은 n8n, Argo, k3s 등을 활용하고, Qwen 또는 Gemma4와 같은 모델을 사용해 자동화 워크플로우를 구현한 사례도 있습니다.

"내 워크플로우는 AI를 PR 리뷰 뒤에 두고 있습니다. OpenCode가 변경을 작성하고 나는 PR에서 직접 병합합니다. 귀엽긴 하지만, 무엇보다도 검토되지 않은 코드가 배포되는 것을 방지합니다."

"컴퓨터에서 변경을 시작하고, 휴대폰으로 PR을 검토한 뒤 GitOps가 배포를 처리하도록 할 수 있습니다."

Sources