تخطَّ إلى المحتوى
نسخة تجريبيةشاركنا رأيك

المشاريع

المشروع تطبيق تبنيه المنصّة من مستودع GitHub وتشغّله لك. ادفع إلى الفرع المتتبَّع فتصدر نسخة جديدة؛ وإن انكسرت، ارجع إلى الصورة نفسها التي كانت تعمل قبلها. وكل ما في هذه الصفحة موجود في لوحة التحكّم تحت المشاريع.

وتعمل المشاريع على نموذج العزل نفسه الذي تعمل عليه النسخ: كل تطبيق في حاوية خاصة به، ولا شيء مشترك مع مساحة عمل أخرى.

اربط GitHub أولاً

افتح صفحة التكاملات في مساحة عملك واربط GitHub. يثبّت ذلك تطبيق سحابتي على الحساب أو المؤسسة التي تختارها، ويمنح هذه المساحة وصولاً إلى المستودعات التي تحدّدها أنت — لا نحن — ويمكنك توسيع الاختيار أو تضييقه لاحقاً من الصفحة نفسها.

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

استورد مستودعاً

يعرض المشاريع ← مشروع جديد المستودعات التي يراها التثبيت. اختر واحداً واملأ:

  • الفرع — فرع الإنتاج. الدفع إليه يُطلق نشراً.
  • اسم المشروع — أحرف إنجليزية صغيرة وأرقام وشُرَط داخلية. يدخل ضمن رابط تطبيقك، فاختر اسماً تميّزه.
  • المجلد الجذر — المجلد الفرعي الذي يُبنى منه؛ اتركه ./ لجذر المستودع. وهذا هو الحقل الخاص بالمستودعات الأحادية (monorepo).
  • متغيّرات البيئة — الإعدادات والأسرار التي يحتاجها تطبيقك. الصق ملف .env كاملاً في حقل مفتاح فتُضاف كل أسطره دفعة واحدة.
  • إعدادات البناء (اختيارية) — اتركها فارغة ليكتشف النظام كل شيء.

اضغط نشر فيبدأ البناء الأول فوراً.

رابط تطبيقك

يُقدَّم كل مشروع عبر HTTPS على اسم مضيف خاص به:

text
https://<اسم-المشروع>-<لاحقة>.sahabti.app

واللاحقة القصيرة تجعل اسم المضيف فريداً على مستوى المنصّة، فيمكن لمساحتَي عمل أن تسمّيا مشروعاً باسم web. ويظهر الرابط في صفحة المشروع بمجرد إنشائه، ويفتحه زر زيارة.

أما تقديم المشروع تحت نطاقك الخاص فغير متاح بعد — واللوحة تقول ذلك بدل أن تقبل نطاقاً لا تستطيع توجيهه.

كيف يجري البناء

تكتشف المنصّة بنية مشروعك وتولّد البناء المناسب لها. الأطر المكتشَفة:

جافاسكربتNext.js، Nuxt، Astro، SvelteKit، React Router، Vite، Node.js
بيئات أخرىPython، Go
بلا إطارالمواقع الساكنة، وأي مستودع فيه Dockerfile خاص به

وثلاث طبقات تحدّد كيف يُبنى المشروع، والأعلى منها يفوز دائماً:

  1. sahabti.json في مستودعك — إعدادات مُودعة إلى جانب الشيفرة.
  2. إعدادات البناء في المشروع — طبقة التجاوز في لوحة التحكّم: الإطار، وأوامر التثبيت والبناء والتشغيل، ومجلد المخرجات، ومسار Dockerfile.
  3. الاكتشاف التلقائي — ما يجري حين لا تقول الطبقتان أعلاه شيئاً.

واختيار إطار Docker، أو تحديد مسار Dockerfile، يبني ملف Dockerfile الخاص بمستودعك حرفياً — فلا تولّد المنصّة شيئاً وتبتعد عن الطريق.

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

شاهد النشر

يسرد تبويب عمليات النشر كل بناء، الأحدث أولاً، ويتوسّع كل صفّ ليعرض سجل البناء الحيّ. وتمرّ عملية النشر بخمس خطوات:

  1. استنساخ المستودع — عند الالتزام (commit) الذي أطلق النشر بالضبط.
  2. اكتشاف الإطار — تحويل الطبقات الثلاث أعلاه إلى خطة بناء واحدة.
  3. بناء الصورة — تُبنى الصورة بعيداً عن حاوية التطبيق وتُدفع إلى سجلّ المنصّة.
  4. نشر الحاوية — تُشغَّل الصورة الجديدة إلى جانب القديمة، وعليها أن تجتاز فحص سلامة قبل أن تستلم. وإن لم تجتزه، تُستعاد النسخة السابقة ويُعلَّم النشر فاشلاً — ويبقى تطبيقك يعمل طوال الوقت.
  5. حيّ — النسخة الجديدة تقدّم الخدمة.

والخطوة الفاشلة تُذكر بالاسم ومعها مخرجات البناء. وتُحفظ سجلات البناء 30 يوماً؛ وبعدها يحتفظ الصفّ بخطواته وحالته والتزامه، ويصير السجل «منتهي الصلاحية».

النشر عند الدفع

النشر التلقائي مفعّل افتراضياً. وكل دفعة إلى فرع الإنتاج تضع نشراً في الطابور بوسم دفعة Git، ويُطابَق على المستودع نفسه لا على اسمه — فإعادة تسمية المستودع في GitHub لا تكسر الارتباط.

وأطفئه من الإعدادات ← عام فيبقى الفرع متتبَّعاً: يظهر المشروع بوسم تغييرات جديدة لم تُنشر حين يتقدّم الفرع على ما هو حيّ، وتنشر أنت حين تجهز.

إعادة النشر والتراجع والإلغاء

  • إعادة النشر تشغّل بناءً جديداً للفرع المتتبَّع وتستبدل النسخة الحالية عند نجاحه. إعادة نشر واحدة لكل مشروع في الدقيقة — والدفعات غير محدودة بذلك.
  • التراجع يعيد إرسال الصورة نفسها التي أصدرتها عملية نشر ناجحة سابقة. لا يُبنى شيء من جديد، فهي الشيفرة ذاتها التي كانت تعمل، وتظهر كعملية نشر جديدة على رأس الجدول الزمني بدل أن تعيد كتابة التاريخ.
  • الإلغاء يزيل نشراً من الطابور، أو يوقف بناءً قيد التشغيل. وبمجرد انتهاء البناء وبدء تبديل الحاوية يُرفض الإلغاء — فتلك هي النافذة الوحيدة التي يُسقط فيها التوقّف في المنتصف تطبيقك. تراجَع بعد أن يصير حيّاً بدلاً من ذلك.

متغيّرات البيئة

يحوي الإعدادات ← البيئة المتغيّرات التي تُحقن في المشروع أثناء البناء وأثناء التشغيل. والقيم المعلّمة كأسرار مخفية في الواجهة. ويقبل الإضافة الجماعية كتلة KEY=value ملصوقة، متجاهلاً الأسطر الفارغة وأسطر التعليق #.

ويعرض الحفظ خيار حفظ وإعادة نشر: فالمتغيّرات تُخبز في البناء، أي أنها تسري عند النشر التالي لا على الحاوية العاملة.

الحذف

يحذف الإعدادات ← عام ← منطقة الخطر المشروع وحاويته وتاريخ نشره. ويبقى تثبيت GitHub مرتبطاً لبقية مشاريعك.

الخطوات التالية