À propos du projet
WebVM fournit un environnement Linux qui s'exécute entièrement dans un navigateur web sans serveur distant. Il utilise le moteur de virtualisation CheerpX pour compiler le code x86 en WebAssembly, émuler les appels système Linux, fournir un système de fichiers virtuel par blocs et exécuter les logiciels dans un bac à sable du navigateur. La version hébergée peut exécuter une distribution Debian non modifiée avec des chaînes d'outils de développement natives, et un environnement graphique basé sur Alpine avec Xorg et i3 est également disponible.
Le réseau est assuré par Tailscale. Les utilisateurs peuvent se connecter à leur réseau Tailscale depuis la barre latérale de WebVM et, après avoir configuré un nœud de sortie, accéder à l'internet public. L'authentification peut utiliser une connexion interactive ou une clé d'authentification fournie dans le fragment d'URL. Headscale, l'implémentation auto-hébergée du serveur de contrôle Tailscale, est également pris en charge lorsqu'il est placé derrière un proxy inverse compatible CORS. La documentation indique que les outils basés sur ICMP tels que ping ne sont pas disponibles, tandis que curl et wget peuvent être utilisés pour les vérifications de connectivité.
Le dépôt prend en charge le déploiement et la personnalisation. Il peut être dupliqué et publié via GitHub Pages à l'aide du workflow GitHub Actions inclus. Le même workflow peut construire des images disque .ext2 personnalisées à partir d'un Dockerfile et les publier comme artefacts de version ou les utiliser dans un déploiement Pages. Pour le développement local, les utilisateurs peuvent placer une image .ext2 dans custom-disk-images, mettre à jour config_public_terminal.js, installer et compiler avec npm, puis servir le résultat via la configuration Nginx fournie. L'utilisateur par défaut dispose des privilèges root, tandis que sudo n'est pas préinstallé.
WebVM inclut une intégration optionnelle de l'IA Claude qui nécessite la propre clé API Anthropic de l'utilisateur. La clé est saisie via l'interface du navigateur et, selon la documentation, stockée localement dans le navigateur. Parmi les exemples d'utilisation figurent demander à Claude d'inspecter des fichiers ou d'aider à relever un défi CTF dans l'environnement virtuel.
L'interface utilisateur utilise xterm.js pour son terminal, Tailscale pour le réseau et lwIP comme pile TCP/IP. Le dépôt est publié sous la licence Apache 2.0, tandis que le déploiement public de CheerpX est soumis à des conditions d'utilisation et de licence distinctes, notamment des restrictions sur l'utilisation organisationnelle et la redistribution.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.