Sobre el proyecto

WebVM proporciona un entorno Linux que se ejecuta completamente en un navegador web sin un servidor remoto. Utiliza el motor de virtualización CheerpX para compilar código x86 a WebAssembly, emular llamadas al sistema de Linux, ofrecer un sistema de archivos virtual basado en bloques y ejecutar software en un sandbox del navegador. La versión alojada puede ejecutar una distribución Debian sin modificar con cadenas de herramientas de desarrollo nativas, y también está disponible un entorno gráfico basado en Alpine con Xorg e i3. La red se proporciona a través de Tailscale. Los usuarios pueden conectarse a su red Tailscale desde la barra lateral de WebVM y, después de configurar un nodo de salida, acceder a internet público. La autenticación puede usar un inicio de sesión interactivo o una clave de autenticación proporcionada en el fragmento de URL. También se admite Headscale, la implementación del servidor de control Tailscale autoalojado, cuando se coloca detrás de un proxy inverso con CORS habilitado. La documentación señala que las herramientas basadas en ICMP, como ping, no están disponibles, mientras que curl y wget se pueden usar para comprobaciones de conectividad. El repositorio admite despliegue y personalización. Se puede bifurcar y publicar a través de GitHub Pages usando el flujo de trabajo de GitHub Actions incluido. El mismo flujo de trabajo puede construir imágenes de disco .ext2 personalizadas desde un Dockerfile y publicarlas como activos de lanzamiento o usarlas en un despliegue de Pages. Para desarrollo local, los usuarios pueden colocar una imagen .ext2 en custom-disk-images, actualizar config_public_terminal.js, instalar y construir con npm, y servir el resultado a través de la configuración de Nginx proporcionada. El usuario predeterminado tiene privilegios de root, mientras que sudo no está preinstalado. WebVM incluye una integración opcional de Claude AI que requiere la propia clave de API de Anthropic del usuario. La clave se ingresa a través de la interfaz del navegador y, según la documentación, se almacena localmente en el navegador. Ejemplos de uso incluyen pedir a Claude que inspeccione archivos o ayude con un desafío CTF en el entorno virtual. La interfaz de usuario usa xterm.js para su terminal, Tailscale para redes y lwIP como su pila TCP/IP. El repositorio se publica bajo la Licencia Apache 2.0, mientras que el despliegue público de CheerpX tiene términos de uso y licencia separados, incluyendo restricciones sobre uso organizacional y redistribución.