دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

صايب ماكينة افتراضية معزولة للتطوير لكل مشروع باستعمال devvm

تعلّم كيفاش تنصّب devvm، وتصايب ماكينة افتراضية معزولة بسلاسل الأدوات اللي كتتكتاشف أوتوماتيكياً، وتشغّل وكلاء البرمجة داخل البيئة المعزولة، وتخصّص البيئة ديالها، وتحمي شجرة الخدمة ديالك باستعمال نسخة منفصلة من المستودع.

صايب ماكينة افتراضية معزولة للتطوير لكل مشروع باستعمال devvm

شنو هو devvm؟

devvm كينشئ آلة افتراضية معزولة لكل مجلد ديال مشروع. الآلة الافتراضية فيها سلاسل الأدوات اللي كيحتاجها المشروع ديالك، وكتوفر بيئة معزولة فين تقدر تخدم نتا ولا وكيل البرمجة بلا ما تثبّت الوكيل مباشرة فالجهاز المضيف ديالك.

كل آلة افتراضية كتخدم عبر Lima. افتراضياً، devvm كيربط غير مجلد المشروع المختار وكيعرضو داخل الآلة الافتراضية بنفس المسار المستعمل فالجهاز المضيف. إلا شغّلتي devvm مرة أخرى فداك المجلد، كيفتح نفس الآلة الافتراضية.

الميزات الرئيسية

  • آلة افتراضية لكل مشروع: كل مجلد مشروع كياخذ بيئة معزولة خاصة به.
  • اكتشاف تلقائي لسلاسل الأدوات: devvm كيفحص ملفات المشروع باش يحدد سلاسل الأدوات المطلوبة. مثلاً، المشروع اللي فيه package.json كيتوفر على أدوات Node.js.
  • دعم وكلاء البرمجة: Claude Code وCodex وopencode وpi يقدرو يخدمو داخل الآلة الافتراضية بالإعدادات والمهارات وخوادم MCP ديالهم.
  • شبكة متحكم فيها: الآلات الافتراضية الجديدة كتستعمل افتراضياً مستوى شبكة باللائحة المسموح بها، وما كتقدرش توصل غير للمضيفين الموافق عليهم.
  • الأسرار فالجهاز المضيف: بيانات الاعتماد بحال رموز GitHub وClaude Code كتبقى فالجهاز المضيف فكل مستويات الشبكة.
  • صور قابلة لإعادة الاستعمال: الآلات الافتراضية كتتنسخ من صورة أساسية، وسلاسل الأدوات كتتشارك بين الآلات الافتراضية بصلاحية القراءة فقط. من بعد الإعداد الأولي، الآلات الافتراضية الجديدة تقدر تبدا فثواني.
  • طبقات اختيارية: الطبقات المدمجة كتشمل docker وnix وdesktop. وتقدر حتى تنشئ الطبقة ديالك.
  • وضع الاستنساخ: الآلة الافتراضية تقدر تخدم فاستنساخ Git خاص بها عوض ما تربط شجرة العمل ديال الجهاز المضيف.

متطلبات النظام

devvm كيدعم macOS 13 أو أحدث وLinux على arm64 أو x86_64. كيحتاج Lima 2.2 أو أحدث ومتطلبات Lima المناسبة. المشروع متجرب على أجهزة Mac بمعالجات Apple silicon وأنظمة Linux باستعمال arm64 وx86_64، ولكن مازال ما تجربش على أجهزة Mac بمعالجات Intel.

ثبّت devvm

التثبيت على macOS باستعمال Homebrew

صيغة Homebrew كتثبّت devvm وLima:

brew trust --formula devvmhq/tap/devvm
brew install devvmhq/tap/devvm

التثبيت على Linux

شغّل سكريبت التثبيت الرسمي:

curl -fsSL https://github.com/devvmhq/devvm/releases/latest/download/install.sh | bash

السكريبت كيخدم حتى على macOS. قبل تثبيت Lima أو QEMU أو الولوج إلى /dev/kvm، كيطلب التأكيد.

كل إصدار موقّع بمفتاح minisign ديال devvm: RWSjzFsn7ETaijKJ2y7F4DtZobXmyv+LmdclJwZP/KmAkLUwOCzWF/2b. تبع دليل التحقق من سكريبت التثبيت إلا بغيتي تتحقق من التحميل قبل ما تشغلو.

تحقق من التثبيت ديالك

من بعد التثبيت، شغّل أمر التشخيص:

devvm doctor

هاد الأمر كيتحقق من الحوايج اللي كيحتاجها devvm فالحاسوب ديالك وكيشرح ليك كيفاش تحصل على أي حاجة ناقصة. شوف دليل التثبيت الكامل باش تعرف جميع المتطلبات وخيارات المثبّت.

نشئ أول آلة افتراضية للمشروع ديالك

  1. حلّ مجلد المشروع ديالك. فالتيرمينال، بدّل للمجلد اللي فيه المشروع ديالك.
  2. شغّل devvm. راجع إعدادات الآلة الافتراضية المقترحة ووافق عليها.
  3. خدم داخل الآلة الافتراضية. devvm كيفتح شيل كيبدا المحث ديالو بـ (devvm).
cd ~/some-project
devvm

devvm كيكتاشف سلاسل الأدوات المطلوبة فملفات المشروع. قبل إنشاء الآلة الافتراضية، تقدر حتى تخصّص سلاسل الأدوات ووكلاء البرمجة والطبقات ومستوى الشبكة والحجم ديالها.

فأول تشغيل، كيطرح عليك بعض الأسئلة اللي كتنشئ الإعدادات الافتراضية للآلات الافتراضية الجديدة وللصورة الأساسية. من بينها الحجم الافتراضي للآلة الافتراضية ووكلاء البرمجة والإضافات الاختيارية للصورة الأساسية. بناء الصورة الأساسية كياخذ بضع دقايق غير مرة وحدة؛ ومن بعد، الآلات الافتراضية ديال المشاريع كتبدا غالباً فثواني.

عاود فتح نفس الآلة الافتراضية

رجع لمجلد المشروع وشغّل نفس الأمر:

cd ~/some-project
devvm

حيت كل مجلد مشروع كيحتافظ بالآلة الافتراضية ديالو، devvm كيعيد فتح البيئة الموجودة عوض ما ينشئ وحدة ما عندهاش علاقة بها.

شغّل وكيل برمجة

منين كيفتح شيل ديال الآلة الافتراضية، شغّل وكيل مدعوم من الداخل ديالها. مثلاً، شغّل Claude Code بهاد الأمر:

claude

بهذا الشكل كيبقى وكيل البرمجة داخل البيئة المعزولة عوض ما يتثبت فالجهاز المضيف ديالك. devvm كيخزن إعدادات الوكلاء المدعومين وبيانات تسجيل الدخول ديالهم فمخزن خاص به.

سجّل الدخول إلى Claude Code

قبل ما تشغّل Claude Code لأول مرة، بدا تسجيل الدخول ديالو من الآلة الافتراضية:

devvm agent login claude

تسجيل الدخول كيبقى محفوظ فالجهاز ديالك. راجع دليل تسجيل الدخول إلى Claude Code لمزيد من التفاصيل.

استورد إعدادات وكيل موجودة

إلا كنت كتستعمل من قبل وكيل برمجة مدعوم فالجهاز المضيف، devvm يقدر ينسخ الإعدادات الموجودة ديالو للمخزن الخاص به:

devvm agent import

هاد الأمر مخصص لجلب الإعدادات المستعملة من طرف وكيل محلي موجود. التكاملات المدعومة كتشمل Claude Code وCodex وopencode وpi.

حمي شجرة العمل ديالك بوضع الاستنساخ

فالوضع الافتراضي، المحرر فالجهاز المضيف والآلة الافتراضية كيتشاركو ملفات المشروع المربوطة. لذلك، التغييرات اللي كتدار داخل الآلة الافتراضية كتبان فنفس شجرة العمل.

باش يكون العزل أقوى، شغّل devvm بـ --clone. من بعد الـVM غادي يكون عندو clone ديالو من المستودع، وهادشي كيمنع العمليات اللي داخلو من لمس شجرة العمل ديال المضيف ولا المجلد ديال .git ديالو.

devvm --clone

منين كتكمّل الخدمة وكتدير commit داخل الـVM، جيبها للمضيف باستعمال remote ديال devvm:

git fetch devvm

الفروع اللي تجيبو كيتوفرو بأسماء بحال devvm/main. راجع الفرق قبل الدمج:

git log -p main..devvm/main

بهاذ الطريقة، الخدمة ديال الـVM ما كتدخلش للمستودع ديالك حتى كتدير fetch بشكل صريح. شوف الخدمة على clone باش تعرف المسار كامل.

نصائح متقدمة للإعداد

اختار سلاسل الأدوات بوعي

الاكتشاف التلقائي كيعطي نقطة بداية مفيدة، ولكن راجع الإعداد المقترح قبل ما تنشئ VM. مسار الإنشاء كيخليك تخصّص سلاسل الأدوات ديالو إلا كان الاختيار المكتشف ما كيناسبش البيئة اللي باغي. توثيق سلاسل الأدوات فيه الخيارات المدعومة.

زيد طبقات للبيئة

استعمل الطبقات المدمجة docker أو nix أو desktop إلا كان المشروع محتاج هاد الإمكانيات. باش تبدا تعرّف طبقة مخصّصة، استعمل:

devvm layer new

راجع توثيق الطبقات قبل ما تخصّص الصور.

راجع الولوج للشبكة

الـVMات الجدد كيتعطى ليهم افتراضياً مستوى الشبكة ديال allowlist. خلّي لائحة المضيفين اللي ممكن الولوج ليهم ضيقة قد ما يمكن، خصوصاً ملي كتخدم agent مستقل للبرمجة. مستويات الشبكة الأخرى موضحة فـدليل السلامة ديال الشبكة.

فهم حدود الـsandbox

الـVM كيقلّل المخاطر، ولكن ما كيسدّش جميع الثغرات الأمنية. فهم شنو يقدر يوصل ليه الـVM، وتفادى تعريض موارد ماشي ضرورية، وراجع التغييرات اللي تولدات قبل ما تقبلها. قرا البقاء آمناً قبل ما توكل للـVM مشروع مهم.

رجع لمرجع CLI

بالنسبة للأوامر والخيارات والوسائط اللي ما مذكوراش فهاد الدرس، استعمل مرجع CLI الرسمي. حتى توثيق الاستعمال الشامل كيغطي المنافذ، وحجم الـVM، والروابط بين الـVMات، وSSH، والمحررات، والصور، وحل المشاكل.

الخلاصة

devvm كيوفر طريقة عملية باش تعطي لكل مشروع بيئة تطوير معزولة ديالو. ثبّتو، وتأكد من المضيف باستعمال devvm doctor، وشغّل devvm من مجلد المشروع، ومن بعد بدا agent ديال البرمجة داخل الـshell الناتج. فالأعمال الحساسة، جمع بين تقييد الشبكة وdevvm --clone، وراجع التغييرات اللي جيبتيها قبل ما تدمجها.