프로젝트 소개

Containarium은 오픈소스이며 자체 호스팅할 수 있는 에이전트 런타임으로, 각 AI 에이전트에 테넌트별 네트워크 격리가 적용된 영구적이고 SSH로 접근 가능한 Linux 컨테이너를 제공합니다. 에이전트(Cursor, Claude Code, OpenCode 또는 맞춤형 MCP 클라이언트)는 두 개의 MCP 서버를 통해 자신의 박스와 상호작용합니다: `shell_exec`, `read_file`, `write_file`, `list_directory`, `move_file`, `delete_file`, CI 컨텍스트 리소스를 노출하는 컨테이너 내 `agent-box` 서버; 그리고 컨테이너 라이프사이클(`create_container`, `list_containers`, `expose_port` 등)을 위한 호스트의 플랫폼 `mcp-server`입니다. 동일한 작업은 `containarium` CLI를 통해서도 사용할 수 있습니다. 아키텍처는 사용자 이름 기반 SSH 라우팅을 위한 sshpiper와 PROXY 프로토콜을 통한 HTTPS/TLS 종료를 위한 Caddy를 실행하는 경량 센티넬 VM(예: GCP e2-micro)을 중심으로 합니다. 백엔드 풀은 Ubuntu/Rocky/RHEL의 LXC/Incus 컨테이너(ZFS 스냅샷, 일일 백업, 30일 보관)이거나 Kubernetes 포드(StatefulSet + 헤드리스 Service + 기본 거부 NetworkPolicy, `automountServiceAccountToken:false`, 제한된 Pod Security 프로필)일 수 있습니다. 두 백엔드는 동일한 CLI, MCP 인터페이스, JWT 인증(iss/aud/jti/scopes, 일회용 갱신 토큰, jti 폐기), RBAC, REST/gRPC API를 공유합니다. GPU 패스스루는 베어메탈과 K8s(`nvidia.com/gpu`)에서 작동합니다. 보안 기능에는 비특권 LXC, fail2ban이 적용된 사용자별 프록시 계정, AppArmor 프로필, 선택적 `AGENTBOX_ROOT` 샌드박스, KMS 봉투 암호화(Vault Transit, GCP KMS), tmpfs 시크릿 전달, SHA-256 해시 체인을 사용한 감사 로그, 이미지 다이제스트 검증, 레지스트리 허용 목록, ClamAV/Trivy 스캔이 포함됩니다. 센티넬은 약 10초 만에 스팟 선점을 감지하고 유지보수 페이지를 제공하며 고정 IP를 유지한 채 약 85초 만에 자동 복구됩니다. 빠른 시작: `curl -fsSL https://containarium.dev/install.sh | sudo bash`는 Ubuntu에 데몬과 Incus를 설치합니다; `containarium create alice --ssh-key ~/.ssh/id_ed25519.pub`은 박스를 생성합니다; `containarium ssh-config sync`는 SSH를 연결합니다; `ssh alice agent-box`를 가리키도록 MCP 구성을 추가합니다; `containarium expose-port alice --container-port 8080 --domain blog.example.com`은 공용 HTTPS 엔드포인트를 게시합니다. 단일 `containarium quickstart alice --prompt "..." --domain ...` 명령이 모든 단계를 하나로 묶습니다. Apache 2.0 라이선스, CLA 없음.