Бессерверная виртуальная среда, работающая полностью на стороне клиента в формате HTML5/WebAssembly. Разработана с учётом совместимости с ABI Linux. В ней используется неизменённый дистрибутив Debian, включающий множество встроенных наборов инструментов для разработки.
🔺WebVM работает на базе механизма виртуализации CheerpX и обеспечивает безопасное выполнение двоичных файлов x86 на стороне клиента в изолированной среде в любом браузере. CheerpX включает в себя JIT-компилятор x86 в WebAssembly, виртуальную файловую систему на основе блоков и эмулятор системных вызовов Linux.
🔺Сетевое взаимодействие
Современные браузеры не предоставляют API для прямого использования TCP или UDP. WebVM обеспечивает сетевую поддержку за счёт интеграции с Tailscale — VPN-сетью, которая поддерживает WebSockets в качестве транспортного уровня.
🔺Откройте панель Networking на боковой панели;
🔺Нажмите Connect to Tailscale на панели;
🔺Войдите в Tailscale (создайте учётную запись, если у вас её нет);
🔺Нажмите Connect, когда Tailscale предложит это сделать.
🔺Запуск WebVM локально с помощью пользовательского образа Debian
1️⃣ Клонируйте репозиторий WebVM
git clone https://github.com/leaningtech/webvm.git
cd webvm
2️⃣ Чтобы загрузить образ Debian mini Ext2, выполните следующую команду:
wget "https://github.com/leaningtech/webvm/releases/download/ext2_image/debian_mini_20230519_5022088024.ext2"
3️⃣ Обновите файл конфигурации
Заменить:
wss://disks.webvm.io/debian_large_20230522_5044875331.ext2На:
/disk-images/debian_mini_20230519_5022088024.ext2(Используйте абсолютный или относительный URL-адрес, указывающий на расположение образа диска.)
4️⃣ Выполните следующие команды, чтобы установить зависимости и собрать WebVM:
sh
npm install
npm run build
Результат будет сохранён в каталоге build.
5️⃣ Настройка Nginx. Создайте каталог для образа диска:
mkdir disk-images
mv debian_mini_20230519_5022088024.ext2 disk-images/
Измените файл nginx.conf так, добавив следующий блок
location /disk-images/ {
root .;
autoindex on;
}6️⃣ Чтобы запустить Nginx, выполните следующую команду:
nginx -p . -c nginx.conf
Nginx будет автоматически обслуживать каталог сборки.
7️⃣ Для доступа к WebVM откройте браузер и перейдите по адресу: http://127.0.0.1:8081.
WebVM поддерживает интеграцию с Claude AI. Чтобы получить доступ к Claude AI, вам понадобится ключ API.
