프로젝트 소개

WebVM은 원격 서버 없이 웹 브라우저 내에서 완전히 실행되는 Linux 환경을 제공합니다. CheerpX 가상화 엔진을 사용하여 x86 코드를 WebAssembly로 컴파일하고, Linux 시스템 호출을 에뮬레이트하며, 블록 기반 가상 파일 시스템을 제공하고, 브라우저 샌드박스에서 소프트웨어를 실행합니다. 호스팅 버전은 기본 개발 툴체인이 포함된 수정되지 않은 Debian 배포판을 실행할 수 있으며, Xorg 및 i3를 사용하는 Alpine 기반 그래픽 환경도 사용 가능합니다. 네트워킹은 Tailscale을 통해 제공됩니다. 사용자는 WebVM 사이드바에서 Tailscale 네트워크에 연결하고, 종료 노드를 구성한 후 공용 인터넷에 액세스할 수 있습니다. 인증은 대화형 로그인 또는 URL 조각에 제공된 인증 키를 사용할 수 있습니다. 자체 호스팅 Tailscale 제어 서버 구현인 Headscale도 CORS 지원 역방향 프록시 뒤에 배치될 때 지원됩니다. 문서에는 ping과 같은 ICMP 기반 도구는 사용할 수 없지만, curl 및 wget을 연결 확인에 사용할 수 있다고 명시되어 있습니다. 리포지토리는 배포 및 사용자 정의를 지원합니다. 포함된 GitHub Actions 워크플로를 사용하여 포크하고 GitHub Pages를 통해 게시할 수 있습니다. 동일한 워크플로는 Dockerfile에서 사용자 정의 .ext2 디스크 이미지를 빌드하고 릴리스 자산으로 게시하거나 Pages 배포에 사용할 수 있습니다. 로컬 개발을 위해 사용자는 .ext2 이미지를 custom-disk-images에 배치하고, config_public_terminal.js를 업데이트하고, npm으로 설치 및 빌드한 후 제공된 Nginx 구성을 통해 결과를 제공할 수 있습니다. 기본 사용자는 root 권한을 가지며, sudo는 사전 설치되지 않습니다. WebVM에는 사용자 자신의 Anthropic API 키가 필요한 선택적 Claude AI 통합이 포함됩니다. 키는 브라우저 인터페이스를 통해 입력되며, 문서에 따르면 브라우저에 로컬로 저장됩니다. 사용 사례 예로는 Claude에게 가상 환경에서 파일을 검사하거나 CTF 챌린지를 지원하도록 요청하는 것이 있습니다. 사용자 인터페이스는 터미널에 xterm.js를, 네트워킹에 Tailscale을, TCP/IP 스택에 lwIP를 사용합니다. 리포지토리는 Apache License 2.0에 따라 릴리스되지만, 공개 CheerpX 배포에는 조직 사용 및 재배포에 대한 제한을 포함한 별도의 사용 및 라이선스 조건이 있습니다.