
वेब के लिए वर्चुअल मशीन
यह रिपॉजिटरी https://webvm.io के स्रोत कोड को होस्ट करती है, जो आपके ब्राउज़र में चलने वाला एक Linux वर्चुअल मशीन है।
नए Alpine / Xorg / i3 ग्राफिकल वातावरण का प्रयास करें: https://webvm.io/alpine.html
WebVM एक सर्वर-रहित वर्चुअल वातावरण है जो HTML5/WebAssembly में पूरी तरह से क्लाइंट-साइड चलता है। इसे Linux ABI-संगत होने के लिए डिज़ाइन किया गया है। यह एक अपरिवर्तित Debian वितरण चलाता है जिसमें कई मूल विकास उपकरण श्रृंखलाएं शामिल हैं।
WebVM CheerpX वर्चुअलाइज़ेशन इंजन द्वारा संचालित है, और किसी भी ब्राउज़र पर x86 बाइनरी के सुरक्षित, सैंडबॉक्स्ड क्लाइंट-साइड निष्पादन को सक्षम बनाता है। CheerpX में एक x86-से-WebAssembly JIT कंपाइलर, एक वर्चुअल ब्लॉक-आधारित फाइल सिस्टम और एक Linux syscall एमुलेटर शामिल है।
आधुनिक ब्राउज़र TCP या UDP का सीधे उपयोग करने के लिए API प्रदान नहीं करते हैं। WebVM Tailscale के साथ एकीकरण करके नेटवर्किंग सपोर्ट प्रदान करता है, जो एक VPN नेटवर्क है जो ट्रांसपोर्ट लेयर के रूप में WebSockets का समर्थन करता है।
अब WebVM के पास आपके अपने स्थानीय Tailscale नेटवर्क की मशीनों तक पहुंच है!
यदि आप सार्वजनिक इंटरनेट तक पहुंचना चाहते हैं, तो आपको एक एग्जिट नोड की आवश्यकता होगी। विस्तृत निर्देशों के लिए Tailscale एग्जिट नोड्स देखें। (आपके नेटवर्क की गति के आधार पर, Tailscale Wasm मॉड्यूल डाउनलोड होने तक आपको कुछ पल इंतजार करना पड़ सकता है।) एक बार सेटअप हो जाने पर:
मैन्युअल रूप से लॉग इन करने के विकल्प के रूप में, आप webvm URL के अंत में अपनी tailscale auth key जोड़ सकते हैं।
https://webvm.io/#authKey=<your-key>
एक अस्थायी (ephemeral) कुंजी का उपयोग करने की अनुशंसा की जाती है।
हम headscale का भी समर्थन करते हैं, जो Tailscale नियंत्रण सर्वर का एक स्व-होस्टेड ओपन सोर्स कार्यान्वयन है।
हालाँकि, headscale दुर्भाग्य से CORS हेडर जोड़ने का समर्थन नहीं करता है। आपको उन्हें जोड़ने के लिए एक प्रॉक्सी सर्वर सेट करना होगा। ऐसा करने के निर्देश headscale द्वारा यहाँ पाए जा सकते हैं।
एक बार तैयार होने पर, अपने nginx कॉन्फ़िगरेशन फ़ाइल में अपने location / ब्लॉक में निम्नलिखित पंक्ति जोड़ें।
if ($http_origin = "https://webvm.io") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
अपने headscale नेटवर्क में लॉग इन करने के लिए webVM URL में #controlUrl=<your-control-url> जोड़ें।
नोट्स:
--login-server कमांड लाइन विकल्प के बराबर है।& से अलग करना न भूलें।
सेटिंग्स पर क्लिक करें।पेज अनुभाग पर जाएं।Github Actions चुनें।
Enforce HTTPS सक्षम है।एक्शन पर क्लिक करें।Deploy नामक वर्कफ़्लो पर क्लिक करें।Run workflow पर क्लिक करें और फिर मेन्यू में एक बार फिर Run workflow पर क्लिक करें।Deploy वर्कफ़्लो शुरू होगा, विवरण देखने के लिए उस पर क्लिक करें।deploy_to_github_pages जॉब के नीचे URL दिखाएगा।
अब आप अपनी आवश्यकताओं के अनुसार dockerfiles/debian_mini को अनुकूलित कर सकते हैं, या स्क्रैच से एक नया Dockerfile बना सकते हैं। इसे चुनने के लिए Path to Dockerfile वर्कफ़्लो पैरामीटर का उपयोग करें।
यदि आप हमारी पूर्ण डेस्कटॉप Alpine छवि का उपयोग करना चाहते हैं, तो आप इसका डॉकरफ़ाइल यहाँ पा सकते हैं।
कस्टम इमेज बनाने के बारे में अधिक जानकारी के लिए, हमारा कस्टम डिस्क इमेज दस्तावेज़ीकरण देखें।
git clone https://github.com/leaningtech/webvm.git
cd webvm
Debian मिनी Ext2 इमेज डाउनलोड करने के लिए निम्न कमांड चलाएं:
wget "https://github.com/leaningtech/webvm/releases/download/ext2_image/debian_mini_20230519_5022088024.ext2"
(आप "Upload GitHub release" वर्कफ़्लो विकल्प चुनकर अपनी खुद की डिस्क इमेज भी बना सकते हैं)
अपनी स्थानीय डिस्क इमेज को संदर्भित करने के लिए `config_public_terminal.js` संपादित करें:
बदलें:
"wss://disks.webvm.io/debian_large_20230522_5044875331.ext2"
इसके साथ:
"/disk-images/debian_mini_20230519_5022088024.ext2"
(डिस्क इमेज स्थान की ओर इशारा करते हुए एक निरपेक्ष या सापेक्ष URL का उपयोग करें।)
"cloud" को सही डिस्क इमेज प्रकार से बदलें: "bytes"
निर्भरताएँ स्थापित करने और WebVM बनाने के लिए निम्न कमांड चलाएं:
npm install
npm run build
आउटपुट build निर्देशिका में रखा जाएगा।
mkdir disk-images
mv debian_mini_20230519_5022088024.ext2 disk-images/
nginx.conf फ़ाइल को संशोधित करें। निम्नलिखित location ब्लॉक जोड़ें:location /disk-images/ {
root .;
autoindex on;
}
Nginx प्रारंभ करने के लिए निम्न कमांड चलाएं:
nginx -p . -c nginx.conf
Nginx स्वचालित रूप से build निर्देशिका को सर्व करेगा।
एक ब्राउज़र खोलें और यहां जाएं: http://127.0.0.1:8081।
अपने स्थानीय WebVM का आनंद लें!
Deploy वर्कफ़्लो Dockerfile में निर्दिष्ट CMD को ध्यान में रखता है। एक REPL बनाने के लिए आप बस इस पैच को लागू कर सकते हैं और तैनात कर सकते हैं।
diff --git a/dockerfiles/debian_mini b/dockerfiles/debian_mini
index 2878332..1f3103a 100644
--- a/dockerfiles/debian_mini
+++ b/dockerfiles/debian_mini
@@ -15,4 +15,4 @@ WORKDIR /home/user/
# We set env, as this gets extracted by Webvm. This is optional.
ENV HOME="/home/user" TERM="xterm" USER="user" SHELL="/bin/bash" EDITOR="vim" LANG="en_US.UTF-8" LC_ALL="C"
RUN echo 'root:password' | chpasswd
-CMD [ "/bin/bash" ]
+CMD [ "/usr/bin/python3" ]
Claude AI तक पहुँचने के लिए, आपको एक API कुंजी की आवश्यकता है। आरंभ करने के लिए इन चरणों का पालन करें:
"/home/user/chall1.bin पर CTF चुनौती को हल करें। ध्यान दें कि बाइनरी stdin से पढ़ता है।"
महत्वपूर्ण: आपकी API कुंजी निजी है और इसे कभी साझा नहीं किया जाना चाहिए। हमारे पास आपकी कुंजी तक पहुंच नहीं है, जो न केवल आपके ब्राउज़र में स्थानीय रूप से संग्रहीत है।
कृपया किसी भी बग की रिपोर्ट करने के लिए मुद्दे का उपयोग करें। या Discord पर नमस्ते कहने / अपनी प्रतिक्रिया साझा करने आएं।
यह परियोजना इस पर निर्भर करती है:
WebVM CheerpX x86-से-WebAssembly वर्चुअलाइज़ेशन तकनीक पर निर्भर करता है, जो NPM के माध्यम से परियोजना में शामिल है।
NPM पैकेज प्रत्येक रिलीज़ पर अपडेट किया जाता है।
प्रत्येक बिल्ड अपरिवर्तनीय है, यदि कोई विशिष्ट संस्करण आज आपके लिए अच्छी तरह से काम करता है, तो यह हमेशा काम करता रहेगा।
WebVM Apache License, Version 2.0 के तहत जारी किया गया है।
आप इस रिपॉजिटरी की सामग्री का उपयोग, संशोधन और पुनर्वितरण करने के लिए स्वतंत्र हैं।
सार्वजनिक CheerpX तैनाती यथा-स्थिति प्रदान की जाती है और व्यक्तियों द्वारा तकनीकी अन्वेषण, परीक्षण और उपयोग के लिए उपयोग करने के लिए स्वतंत्र है। संगठनों द्वारा कोई भी अन्य उपयोग, जिसमें गैर-लाभकारी, शिक्षा और सार्वजनिक क्षेत्र शामिल है, के लिए लाइसेंस की आवश्यकता होती है। कहीं और होस्ट करने के उद्देश्य से CheerpX बिल्ड डाउनलोड करना वाणिज्यिक लाइसेंस के बिना अनुमति नहीं है।
CheerpX लाइसेंसिंग के बारे में और पढ़ें
यदि आप CheerpX/WebVM के शीर्ष पर एक उत्पाद बनाना चाहते हैं, तो कृपया संपर्क करें: [email protected]