Sobre o projeto
WebVM fornece um ambiente Linux que roda inteiramente em um navegador web sem servidor remoto. Ele usa o motor de virtualização CheerpX para compilar código x86 para WebAssembly, emular chamadas de sistema Linux, fornecer um sistema de arquivos virtual baseado em blocos e executar software em uma sandbox do navegador. A versão hospedada pode executar uma distribuição Debian sem modificações com toolchains de desenvolvimento nativos, e também está disponível um ambiente gráfico baseado em Alpine com Xorg e i3.
A rede é fornecida através do Tailscale. Os usuários podem se conectar à sua rede Tailscale a partir da barra lateral do WebVM e, após configurar um nó de saída, acessar a internet pública. A autenticação pode usar um login interativo ou uma chave de autenticação fornecida no fragmento da URL. O Headscale, a implementação auto-hospedada do servidor de controle do Tailscale, também é suportado quando colocado atrás de um proxy reverso com CORS habilitado. A documentação observa que ferramentas baseadas em ICMP, como ping, não estão disponíveis, enquanto curl e wget podem ser usados para verificações de conectividade.
O repositório suporta implantação e personalização. Ele pode ser bifurcado e publicado através do GitHub Pages usando o fluxo de trabalho do GitHub Actions incluído. O mesmo fluxo de trabalho pode compilar imagens de disco .ext2 personalizadas a partir de um Dockerfile e publicá-las como ativos de release ou usá-las em uma implantação do Pages. Para desenvolvimento local, os usuários podem colocar uma imagem .ext2 em custom-disk-images, atualizar o config_public_terminal.js, instalar e compilar com npm e servir o resultado através da configuração Nginx fornecida. O usuário padrão tem privilégios de root, enquanto o sudo não vem pré-instalado.
O WebVM inclui uma integração opcional de IA Claude que requer a própria chave de API da Anthropic do usuário. A chave é inserida através da interface do navegador e, de acordo com a documentação, armazenada localmente no navegador. Casos de uso de exemplo incluem pedir ao Claude para inspecionar arquivos ou auxiliar em um desafio CTF no ambiente virtual.
A interface do usuário usa xterm.js para seu terminal, Tailscale para rede e lwIP como sua pilha TCP/IP. O repositório é lançado sob a Licença Apache 2.0, enquanto a implantação pública do CheerpX tem termos de uso e licenciamento separados, incluindo restrições ao uso organizacional e redistribuição.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.