
Firecracker упрощён. Запускайте безопасные микроВМ за миллисекунды — от установки до интерактивной оболочки одной командой.
🔥 Инструментарий для песочницы Firecracker microVM
Создавайте, управляйте и подключайтесь к изолированным microVM с помощью Firecracker прямо из командной строки. Загрузите изолированную VM за миллисекунды, выполняйте команды, передавайте файлы — без SSH.
--from-imagebase, node22, node24, python3.13--json для скриптов и автоматизации--from-image)curl -fsSL https://vmsan.dev/install | bash
Эта команда загружает и устанавливает всё в ~/.vmsan/:
node22, node24, python3.13) загружаются как предварительно собранные артефактыПри установке стандартного релиза встроенные среды выполнения загружаются с https://artifacts.vmsan.dev/ и не требуют Docker. При установке из исходников среды выполнения собираются локально.
curl -fsSL https://vmsan.dev/install | bash -s -- --uninstall
Если вы хотите собрать из исходников:
# Установка зависимостей
bun install
# Сборка агента внутри VM
cd agent && make install && cd ..
# Сборка CLI
bun run build
# Связывание локальной сборки
mkdir -p ~/.vmsan/bin
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Создать и запустить VM
vmsan create --runtime node22 --memory 512 --cpus 2
# Создать VM из Docker-образа
vmsan create --from-image node:22-alpine
# Список всех VM
vmsan list
# Выполнить команду внутри VM
vmsan exec <vm-id> ls -la
# Интерактивное выполнение с PTY
vmsan exec -i <vm-id> bash
# Подключиться к оболочке запущенной VM
vmsan connect <vm-id>
# Загрузить файл в VM
vmsan upload <vm-id> ./local-file.txt /remote/path/file.txt
# Скачать файл из VM
vmsan download <vm-id> /remote/path/file.txt ./local-file.txt
# Создать снимок запущенной VM
vmsan snapshot create <vm-id>
# Список снимков
vmsan snapshot list
# Восстановить VM из снимка
vmsan create --snapshot <snapshot-id>
# Остановить VM
vmsan stop <vm-id>
# Удалить VM
vmsan remove <vm-id>
| Флаг | Описание |
|---|---|
--json | Вывод структурированного JSON |
--verbose | Показать подробный отладочный вывод |
| Команда | Алиас | Описание |
|---|---|---|
create | Создать и запустить новую microVM | |
list | ls | Список всех VM |
start | Запустить остановленную VM | |
stop | Остановить запущенную VM | |
remove | rm | Удалить VM |
exec | Выполнить команду внутри запущенной VM | |
connect | Открыть интерактивную оболочку для VM | |
upload | Загрузить файлы в VM | |
download | Скачать файлы из VM | |
network | Обновить сетевую политику на запущенной VM | |
snapshot | Управление снимками VM (создать, список, удалить) | |
doctor | Проверить системные предварительные требования и работоспособность установки |
vmsan.toml (планируется в 0.5.0)nftables с атомарным применением правил для сетевой изоляции (начиная с 0.2.0)# Сборка
bun run build
# Связывание локальной сборки
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Режим разработки (слежение)
bun run dev
# Запуск тестов
bun run test
# Проверка типов
bun run typecheck
# Линтинг и форматирование
bun run lint
bun run fmt
bin/ Точка входа CLI
src/
commands/ Подкоманды CLI
services/ Клиент Firecracker, клиент агента, сервис VM
lib/ Утилиты (jailer, сеть, оболочка, логирование)
errors/ Система типизированных ошибок
generated/ Определения типов API Firecracker
agent/ Go-агент, работающий внутри VM
docs/ Сайт документации (vmsan.dev)
/30 (198.19.{slot}.0/30)Состояние сохраняется в ~/.vmsan/:
~/.vmsan/
vms/ Файлы состояния VM (JSON)
jailer/ Директории chroot
bin/ Бинарный файл агента
kernels/ Образы ядер VM
rootfs/ Базовые корневые файловые системы
registry/ Кэш rootfs Docker-образов
snapshots/ Снимки VM