Repolode
leaningtech

leaningtech/webvm

Uma máquina virtual Linux que roda inteiramente no navegador e usa o CheerpX para executar código x86 via WebAssembly.

Estrelas
17,441
Forks
3,339
Issues abertas
12
Último commit
há 14 dias

O que é?

O WebVM é um ambiente virtual Linux sem servidor que roda totalmente no cliente, em HTML5 e WebAssembly. Ele foi projetado para ser compatível com a ABI do Linux e executa uma distribuição Debian sem modificações, incluindo várias toolchains nativas de desenvolvimento, diretamente em uma aba do navegador.

A máquina virtual é executada pelo mecanismo CheerpX, que oferece um compilador JIT de x86 para WebAssembly, um sistema de arquivos virtual baseado em blocos, um emulador de chamadas de sistema do Linux e execução isolada no cliente. A interface web usa o xterm.js como emulador de terminal.

O repositório contém o código-fonte do webvm.io e permite criar forks no GitHub Pages ou gerar imagens de disco ext2 personalizadas a partir de um Dockerfile. Também oferece rede via Tailscale, com suporte opcional a exit nodes e servidores de controle Headscale auto-hospedados, além de um painel de integração com Claude AI.

Recursos principais

  • 01Executa uma distribuição Debian sem modificações no navegador, traduzindo x86 para WebAssembly.
  • 02Oferece um sistema de arquivos virtual baseado em blocos e emulação de chamadas de sistema do Linux.
  • 03Integra a rede do Tailscale, incluindo exit nodes e suporte ao Headscale.
  • 04Permite criar imagens de disco ext2 personalizadas a partir de um Dockerfile e implantá-las no GitHub Pages.
  • 05Inclui um painel de integração com Claude AI que armazena a chave da API localmente no navegador.

Casos de uso

  • Experimentar um shell Linux ou uma toolchain de desenvolvimento sem instalar nada localmente.
  • Criar uma REPL no navegador, como um ambiente Python, a partir de um Dockerfile personalizado.
  • Hospedar uma demonstração interativa ou um ambiente de tutorial Linux em um site estático.
  • Experimentar desafios de CTF em um sandbox isolado.

Início rápido

  1. 1

    Clone o repositório

    git clone https://github.com/leaningtech/webvm.git
  2. 2

    Instale as dependências

    npm install
  3. 3

    Compile o projeto

    npm run build
  4. 4

    Inicie o Nginx e abra o WebVM em http://127.0.0.1:8081 (depois de colocar uma imagem de disco em custom-disk-images/)

    nginx -p . -c nginx.conf

Antes de usar

  • A implantação pública do CheerpX é gratuita apenas para uso individual e exploração; organizações precisam de uma licença comercial.
  • Alguns recursos de rede de baixo nível, como ping ICMP, não estão disponíveis dentro da VM.
  • Os usuários têm privilégios de root por padrão, e o sudo não está instalado.

Tópicos

Perguntas frequentes

O que é webvm?
Uma máquina virtual Linux que roda inteiramente no navegador e usa o CheerpX para executar código x86 via WebAssembly. O WebVM é um ambiente virtual Linux sem servidor que roda totalmente no cliente, em HTML5 e WebAssembly. Ele foi projetado para ser compatível com a ABI do Linux e executa uma distribuição Debian sem modificações, incluindo várias toolchains nativas de desenvolvimento, diretamente em uma aba do navegador.
webvm é gratuito? Qual é a licença?
webvm é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
webvm ainda é mantido?
Manutenção ativa. O último commit de webvm foi em 7 de out. de 2026.
Para que posso usar webvm?
Experimentar um shell Linux ou uma toolchain de desenvolvimento sem instalar nada localmente. Criar uma REPL no navegador, como um ambiente Python, a partir de um Dockerfile personalizado. Hospedar uma demonstração interativa ou um ambiente de tutorial Linux em um site estático. Experimentar desafios de CTF em um sandbox isolado.
Como instalar webvm?
Clone o repositório: git clone https://github.com/leaningtech/webvm.git Instale as dependências: npm install Compile o projeto: npm run build Inicie o Nginx e abra o WebVM em http://127.0.0.1:8081 (depois de colocar uma imagem de disco em custom-disk-images/): nginx -p . -c nginx.conf
Onde consigo webvm?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/leaningtech/webvm

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados