عن المشروع
يوفّر WebVM بيئة لينكس تعمل بالكامل داخل متصفح الويب دون خادم بعيد. ويستخدم محرك الافتراضية CheerpX لترجمة كود x86 إلى WebAssembly، ومحاكاة نداءات نظام لينكس، وتوفير نظام ملفات افتراضي قائم على الكتل، وتنفيذ البرامج داخل صندوق حماية المتصفح. يمكن للنسخة المستضافة تشغيل توزيعة Debian غير معدّلة مع سلاسل أدوات التطوير الأصلية، كما تتوفر بيئة رسومية مبنية على Alpine مع Xorg وi3.
تُوفَّر الشبكات عبر Tailscale. يمكن للمستخدمين الاتصال بشبكة Tailscale الخاصة بهم من الشريط الجانبي في WebVM، وبعد إعداد عقدة خروج، الوصول إلى الإنترنت العامة. قد تستخدم المصادقة تسجيل دخول تفاعلي أو مفتاح مصادقة يُمرَّر في جزء URL. كما يدعم Headscale، وهو تطبيق خادم تحكم Tailscale ذاتي الاستضافة، عند وضعه خلف وكيل عكسي يدعم CORS. تشير الوثائق إلى أن الأدوات المعتمدة على ICMP مثل ping غير متاحة، بينما يمكن استخدام curl وwget لفحوصات الاتصال.
يدعم المستودع النشر والتخصيص. يمكن عمل Fork له ونشره عبر GitHub Pages باستخدام سير عمل GitHub Actions المضمّن. يمكن لسير العمل نفسه بناء صور أقراص .ext2 مخصصة من Dockerfile ونشرها كأصول إصدار أو استخدامها في نشر Pages. وللتطوير المحلي، يمكن للمستخدمين وضع صورة .ext2 في custom-disk-images، وتحديث config_public_terminal.js، ثم التثبيت والبناء باستخدام npm، وتقديم النتيجة عبر إعداد Nginx الموفّر. يمتلك المستخدم الافتراضي صلاحيات root، بينما sudo غير مثبت مسبقًا.
يتضمن WebVM تكاملًا اختياريًا مع Claude AI يتطلب مفتاح Anthropic API الخاص بالمستخدم. يُدخَل المفتاح عبر واجهة المتصفح، ووفقًا للوثائق يُخزَّن محليًا في المتصفح. تشمل أمثلة حالات الاستخدام مطالبة Claude بفحص الملفات أو المساعدة في تحدي CTF داخل البيئة الافتراضية.
تستخدم واجهة المستخدم xterm.js للطرفية، وTailscale للشبكات، وlwIP كمكدس TCP/IP. المستودع صادر بموجب ترخيص Apache License 2.0، بينما يكون لنشر CheerpX العام شروط استخدام وترخيص منفصلة، تشمل قيودًا على الاستخدام المؤسسي وإعادة التوزيع.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.