Daytona
تتيح Daytona لـ Termbridge تشغيل طرفيتك ومعاينتك في بيئة سحابية معزولة. استخدمها عندما تريد بيئة قابلة لإعادة الإنتاج، أو معاينة سحابية، أو إبقاء حاسوبك المحمول في وضع الخمول.
المتطلبات
- مفتاح Daytona API
- مستودع URL يمكن للبيئة المعزولة استنساخه
- بيانات اعتماد Git إذا كان المستودع خاصًا
البدء السريع
عيّن الواجهة الخلفية إلى Daytona ووفّر إعدادات المستودع:
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_DAYTONA_API_KEY=your_key
export TERMBRIDGE_SANDBOX_REPO=https://github.com/you/your-repo.git
export TERMBRIDGE_SANDBOX_BRANCH=main
export TERMBRIDGE_SANDBOX_PATH=your-repo
export TERMBRIDGE_SANDBOX_NAME=termbridge-sandbox
export TERMBRIDGE_SANDBOX_PUBLIC=true
export TERMBRIDGE_SANDBOX_PREVIEW_PORT=5173
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
ثم شغّل Termbridge كالمعتاد:
npx termbridge
احرص دائمًا على تعيين TERMBRIDGE_SANDBOX_REPO (أو --sandbox-repo). إذا لم تُعيّن، فسيستخدم Termbridge حاليًا مستودعًا افتراضيًا مضمّنًا لا يمكن الوصول إليه علنًا، ما يؤدي إلى إنشاء البيئة المعزولة وفشل الاستنساخ (#2).
اتصال Daytona
| المتغير | الغرض |
|---|---|
TERMBRIDGE_DAYTONA_API_KEY |
مفتاح API الخاص بك في Daytona |
TERMBRIDGE_DAYTONA_API_URL |
نقطة نهاية API (الافتراضية https://app.daytona.io/api) |
TERMBRIDGE_DAYTONA_TARGET |
المنطقة المستهدفة في Daytona (اختياري) |
تُمرر هذه القيم إلى Daytona SDK. عند ترك إحداها دون تعيين، يستخدم SDK متغيره الخاص DAYTONA_API_KEY أو DAYTONA_API_URL أو DAYTONA_TARGET.
وضع البيئة المعزولة المباشر (بلا نفق)
يشغّل الوضع المباشر خادم Termbridge داخل البيئة المعزولة ويتجاوز Cloudflare بالكامل. رابط مشاركة URL هو رابط معاينة Daytona للخادم داخل البيئة المعزولة.
export TERMBRIDGE_BACKEND=sandbox-daytona
export TERMBRIDGE_SANDBOX_DIRECT=true
export TERMBRIDGE_SANDBOX_SERVER_PORT=8080
تكون القيمة الافتراضية لـ TERMBRIDGE_SANDBOX_SERVER_PORT (أو --port) هي 8080. ينشئ الوضع المباشر بيئة معزولة عامة ما لم تعيّن TERMBRIDGE_SANDBOX_PUBLIC=false، كما يخفي UI مبدّل الطرفيات.
لا يزال بإمكانك تفعيل المعاينة بتعيين TERMBRIDGE_SANDBOX_PREVIEW_PORT؛ ففي الوضع المباشر يُمرر كمنفذ الخادم --proxy.
استنساخ المستودع
سينشئ Termbridge بيئة معزولة ويستنسخ مستودعك إلى دليل العمل فيها.
استخدم هذه الإعدادات:
| المتغير | الغرض |
|---|---|
TERMBRIDGE_SANDBOX_REPO |
المستودع URL المراد استنساخه (اضبطه دائمًا، راجع البدء السريع) |
TERMBRIDGE_SANDBOX_BRANCH |
الفرع المراد سحبه (اختياري) |
TERMBRIDGE_SANDBOX_PATH |
مسار المستودع في البيئة المعزولة (اختياري) |
TERMBRIDGE_SANDBOX_NAME |
اسم البيئة المعزولة (اختياري، والافتراضي هو termbridge-<random hex>) |
إذا لم يتم ضبط TERMBRIDGE_SANDBOX_PATH، فسيستنتجه Termbridge من اسم المستودع.
المستودعات الخاصة
قدّم بيانات اعتماد git عند استنساخ المستودعات الخاصة:
export TERMBRIDGE_SANDBOX_GIT_USERNAME=your_github_username
export TERMBRIDGE_SANDBOX_GIT_TOKEN=your_github_token
يدعم أيضًا TERMBRIDGE_SANDBOX_GIT_PASSWORD، وله الأولوية على الرمز المميز إذا تم ضبطه.
وكلاء البرمجة
يمكن لـ Termbridge تثبيت وكلاء البرمجة داخل البيئة المعزولة ومزامنة بيانات المصادقة المحلية لتكون جاهزة فورًا.
راجع دليل وكلاء البرمجة للاطلاع على الإعداد الكامل والوضع التلقائي وتفاصيل الأمان.
وضع المعاينة
لعرض المعاينة، اضبط TERMBRIDGE_SANDBOX_PREVIEW_PORT على المنفذ الذي يستخدمه خادم التطوير داخل البيئة المعزولة.
في Vite، تأكد من ربط الخادم بجميع الواجهات:
npm run dev -- --host 0.0.0.0 --port 5173
يجلب Termbridge رابط المعاينة من Daytona ويمرره عبر خادم Termbridge حتى تُحمّل المعاينة داخل UI.
البيئات المعزولة العامة والخاصة
| المتغير | وظيفته |
|---|---|
TERMBRIDGE_SANDBOX_PUBLIC=true |
ينشئ بيئة معزولة عامة |
TERMBRIDGE_SANDBOX_PUBLIC=false |
ينشئ بيئة معزولة خاصة |
عند عدم ضبط المتغير، تكون البيئات المعزولة خاصة، باستثناء الوضع المباشر حيث تكون عامة.
بالنسبة إلى البيئات المعزولة الخاصة، يمرر Termbridge رمز المعاينة تلقائيًا عند تمرير المعاينة.
التنظيف ودورة الحياة
لحذف البيئات المعزولة عند خروج Termbridge:
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
للبيئات المعزولة قصيرة الأجل أو الاختبارية، استخدم بادئة:
export TERMBRIDGE_SANDBOX_NAME=termbridge-test-$(date +%s)
export TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=true
يساعد ذلك على ضبط استخدام البيئة المعزولة وتجنب مشكلات حصص القرص.
علامات CLI
يمكنك أيضًا ضبط Daytona عبر العلامات. وتكون للعلامة أولوية على متغير البيئة المطابق.
| العلامة | متغير البيئة | الغرض |
|---|---|---|
--backend sandbox-daytona |
TERMBRIDGE_BACKEND |
استخدام الواجهة الخلفية لـ Daytona |
--sandbox-repo <url> |
TERMBRIDGE_SANDBOX_REPO |
مستودع URL |
--sandbox-branch <branch> |
TERMBRIDGE_SANDBOX_BRANCH |
الفرع |
--sandbox-path <path> |
TERMBRIDGE_SANDBOX_PATH |
مسار المستودع في البيئة المعزولة |
--sandbox-name <name> |
TERMBRIDGE_SANDBOX_NAME |
اسم البيئة المعزولة |
--sandbox-preview-port <port> |
TERMBRIDGE_SANDBOX_PREVIEW_PORT |
منفذ المعاينة |
--sandbox-public |
TERMBRIDGE_SANDBOX_PUBLIC=true |
إنشاء بيئة معزولة عامة |
--sandbox-direct |
TERMBRIDGE_SANDBOX_DIRECT=true |
تشغيل الخادم داخل البيئة المعزولة (من دون نفق) |
لا توجد علامة للبيئة المعزولة الخاصة؛ استخدم TERMBRIDGE_SANDBOX_PUBLIC=false. ويظل مخرج termbridge --help المدمج يعرض الأسماء --daytona-* و--backend daytona، وهما مرفوضان (#1).
استكشاف الأخطاء وإصلاحها
صفحة المعاينة فارغة
- تأكد من أن خادم التطوير يعمل داخل البيئة المعزولة.
- استخدم
--host 0.0.0.0ليكون منفذ المعاينة قابلًا للوصول. - تحقق من أن
TERMBRIDGE_SANDBOX_PREVIEW_PORTيطابق منفذ خادم التطوير.
فشل إنشاء البيئة المعزولة بسبب أخطاء الحصة
- احذف البيئات المعزولة القديمة من لوحة تحكم Daytona.
- استخدم
TERMBRIDGE_SANDBOX_DELETE_ON_EXIT=trueللجلسات قصيرة الأجل.
فشل استنساخ المستودع
- تحقق من URL المستودع والفرع وبيانات الاعتماد.
- تأكد من أن رمز Git المميز يتيح قراءة المستودع.