Repolode
leaningtech

leaningtech/webvm

CheerpXでx86コードをWebAssembly経由で実行し、ブラウザー内だけで動作するLinux仮想マシン。

スター
17,441
フォーク
3,339
未解決の Issue
12
最終コミット
14 日前

これは何?

WebVMは、HTML5とWebAssemblyを使ってクライアント側だけで動作する、サーバーレスのLinux仮想環境です。Linux ABIとの互換性を想定して設計されており、変更を加えていないDebianディストリビューションと、多数のネイティブ開発ツールチェーンをブラウザーのタブで直接実行できます。

仮想マシンはCheerpXエンジンで動作します。このエンジンは、x86からWebAssemblyへのJITコンパイラー、仮想ブロックベースのファイルシステム、Linux syscallエミュレーター、サンドボックス化されたクライアント側実行環境を提供します。Webインターフェースでは、ターミナルエミュレーターとしてxterm.jsを使用しています。

このリポジトリにはwebvm.ioのソースコードが含まれており、GitHub Pagesへのフォークや、Dockerfileからのカスタムext2ディスクイメージのビルドに対応しています。また、オプションのexit nodeやセルフホスト型Headscaleコントロールサーバーを利用できるTailscaleネットワーク機能と、Claude AI統合パネルも備えています。

主な機能

  • 01x86からWebAssemblyへの変換を通じて、変更を加えていないDebianディストリビューションをブラウザー上で実行します。
  • 02仮想ブロックベースのファイルシステムとLinux syscallエミュレーションを提供します。
  • 03exit nodeやHeadscaleに対応したTailscaleネットワーク機能を統合しています。
  • 04Dockerfileからカスタムext2ディスクイメージをビルドし、GitHub Pagesにデプロイできます。
  • 05APIキーをブラウザー内にローカル保存するClaude AI統合パネルを備えています。

ユースケース

  • ローカルに何もインストールせずに、Linuxシェルや開発ツールチェーンを試す。
  • カスタムDockerfileを使って、Python環境などのブラウザーベースのREPLを構築する。
  • 静的サイト上で、操作できるLinuxのデモやチュートリアル環境を公開する。
  • 隔離されたサンドボックスでCTFの課題に取り組む。

クイックスタート

  1. 1

    リポジトリをクローンする

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

    依存関係をインストールする

    npm install
  3. 3

    プロジェクトをビルドする

    npm run build
  4. 4

    ディスクイメージを custom-disk-images/ に配置した後、Nginx を起動して http://127.0.0.1:8081 で WebVM を開く

    nginx -p . -c nginx.conf

使う前に知っておきたいこと

  • 公開されている CheerpX のデプロイは、個人利用と試用に限り無料です。組織での利用には商用ライセンスが必要です。
  • ICMP ping など、一部の低レベルなネットワーク機能は VM 内で利用できません。
  • ユーザーにはデフォルトで root 権限が付与されており、sudo はインストールされていません。

トピック

よくある質問

webvm とは?
CheerpXでx86コードをWebAssembly経由で実行し、ブラウザー内だけで動作するLinux仮想マシン。 WebVMは、HTML5とWebAssemblyを使ってクライアント側だけで動作する、サーバーレスのLinux仮想環境です。Linux ABIとの互換性を想定して設計されており、変更を加えていないDebianディストリビューションと、多数のネイティブ開発ツールチェーンをブラウザーのタブで直接実行できます。
webvm は無料で使えますか?ライセンスは?
webvm は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
webvm は今もメンテナンスされていますか?
活発にメンテナンス中。webvm の最終コミットは 2026年10月7日 です。
webvm は何に使えますか?
ローカルに何もインストールせずに、Linuxシェルや開発ツールチェーンを試す。 カスタムDockerfileを使って、Python環境などのブラウザーベースのREPLを構築する。 静的サイト上で、操作できるLinuxのデモやチュートリアル環境を公開する。 隔離されたサンドボックスでCTFの課題に取り組む。
webvm のインストール方法は?
リポジトリをクローンする: git clone https://github.com/leaningtech/webvm.git 依存関係をインストールする: npm install プロジェクトをビルドする: npm run build ディスクイメージを custom-disk-images/ に配置した後、Nginx を起動して http://127.0.0.1:8081 で WebVM を開く: nginx -p . -c nginx.conf
webvm はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/leaningtech/webvm

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト