
Firecracker को सरल बनाया गया। मिलीसेकंड में सुरक्षित microVMs स्पिन अप करें, इंस्टॉल से इंटरैक्टिव शेल तक एक कमांड में।
🔥 Firecracker microVM सैंडबॉक्स टूलकिट
कमांड लाइन से अलग-थलग Firecracker microVMs बनाएँ, प्रबंधित करें और कनेक्ट करें। मिलीसेकंड में एक सैंडबॉक्स किया गया VM बूट करें, कमांड चलाएँ, फ़ाइलें स्थानांतरित करें — SSH की आवश्यकता नहीं।
--from-image के साथ किसी भी OCI इमेज से rootfs बनाएँbase, 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
# in-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
# Docker इमेज से VM बनाएँ
vmsan create --from-image node:22-alpine
# सभी VMs सूचीबद्ध करें
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 | सभी VMs सूचीबद्ध करें |
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/ Firecracker API प्रकार परिभाषाएँ
agent/ Go एजेंट जो VM के अंदर चलता है
docs/ दस्तावेज़ीकरण साइट (vmsan.dev)
/30 सबनेट (198.19.{slot}.0/30) के साथ एक TAP नेटवर्क डिवाइस मिलता हैअवस्था ~/.vmsan/ में संग्रहीत होती है:
~/.vmsan/
vms/ VM अवस्था फ़ाइलें (JSON)
jailer/ Chroot निर्देशिकाएँ
bin/ एजेंट बाइनरी
kernels/ VM कर्नेल इमेज
rootfs/ बेस रूट फ़ाइलसिस्टम
registry/ Docker इमेज rootfs कैश
snapshots/ VM स्नैपशॉट