تخطّ إلى المحتوى
AISI
𝕏
دليل إرشادي

بناء Pipeline نشر مع Coolify + Gitea

دليل متقدم لربط Gitea مع Coolify لإنشاء pipeline نشر تلقائي متكامل من الكود إلى الإنتاج.

22 دقائق قراءة CI/CDDevOps

مقدمة في بناء خطوط النشر الذاتية (CI/CD)

بالنسبة لفرق التطوير والمهندسين الذين يسعون للاستقلال عن الخدمات السحابية باهظة الثمن (مثل GitHub Actions و Heroku)، يمثل بناء Pipeline نشر آلي (CI/CD) باستخدام أدوات مفتوحة ومستضافة ذاتياً الخيار الأمثل. دمج Gitea (الخادم الخفيف لإدارة الأكواد البديل لـ GitHub) مع Coolify (منصة النشر البديلة لـ Vercel/Heroku) يوفر بيئة متكاملة تماماً: ترفع الكود إلى المستودع، فيتم بناءه ونشره تلقائياً دون أي تدخل يدوي.

لماذا Gitea و Coolify؟

  • Gitea: سريع جداً، يستهلك القليل من الذاكرة (RAM)، ويمكن تشغيله على خوادم صغيرة جداً مقارنة بـ GitLab.
  • Coolify: يراقب مستودعات الكود، ويبني حاويات Docker (أو يستخدم Nixpacks) بمجرد اكتشاف أي تغييرات جديدة، ويقوم بإصدار شهادات SSL للمشاريع تلقائياً.

خطوات الربط وبناء الـ Pipeline

1. تجهيز بيئة Gitea

في البداية، نفترض أن لديك خادم Gitea قيد التشغيل. قم بإنشاء مستودع جديد (Repository) وارفع إليه كود التطبيق الخاص بك (مثلاً تطبيق Node.js أو Python). تأكد من أن تطبيقك يحتوي على منفذ (Port) واضح للتشغيل.

2. إعداد المصادقة (Authentication) بين النظامين

لكي يتمكن Coolify من سحب الأكواد من Gitea (خاصة إذا كان المستودع Private)، يجب أن نمنحه صلاحيات الوصول (Deploy Key):

  1. في لوحة تحكم Coolify، اذهب إلى قسم Keys & Tokens وقم بتوليد مفتاح SSH جديد، أو انسخ المفتاح العام (Public Key) الخاص بخادم Coolify.
  2. انتقل إلى Gitea، وادخل إلى إعدادات المستودع الخاص بك.
  3. في قسم Deploy Keys، قم بلصق المفتاح العام الخاص بـ Coolify. هذه الخطوة تضمن أمان الاتصال.

3. إنشاء مورد جديد (Resource) في Coolify

الآن، سنخبر Coolify بكيفية سحب الكود:

  • من واجهة Coolify، اضغط على Create New Resource ثم اختر Application.
  • عندما يطلب منك تحديد مصدر الكود، اختر Public Repository (أو Private عبر SSH إذا أعددت الخطوة السابقة).
  • أدخل رابط المستودع بصيغة SSH (مثلاً: git@gitea.yourdomain.com:team/project.git) وحدد الفرع (Branch) الرئيسي main.

4. تفعيل النشر التلقائي (Webhooks)

الهدف من الـ CI/CD هو أتمتة العملية، بحيث لا تحتاج للدخول إلى Coolify والضغط على زر (Deploy) كلما غيرت كوداً.

  • في إعدادات التطبيق داخل Coolify، ستجد خيار Webhooks. قم بنسخ الرابط المخصص (Webhook URL) المعروض هناك.
  • عد إلى Gitea، وفي إعدادات المستودع، اختر Webhooks واضغط على إضافة جديد (Add Webhook).
  • ألصق الرابط، وتأكد من اختيار Push Events.

الآن، بمجرد أن يقوم أي مطور بعمل أمر git push لفرع main، سيقوم Gitea بإرسال إشارة (Ping) إلى Coolify الذي سيبدأ فوراً بسحب الكود الجديد وبناء التطبيق وإطلاقه.

إدارة الإصدارات والتراجع (Rollbacks)

من أهم ميزات هذا الـ Pipeline هو الأمان. يحتفظ Coolify بنسخ الحاويات القديمة (Images). إذا قمت بنشر كود يحتوي على خلل (Bug)، يمكنك العودة إلى لوحة تحكم Coolify وبنقرة واحدة على زر (Rollback)، سيتم إيقاف الإصدار المعيب وإعادة تشغيل الإصدار السابق المستقر في ثوانٍ.

الخلاصة

من خلال دمج Gitea مع Coolify، تحصل المؤسسات والفرق البرمجية على قوة وأتمتة المنصات السحابية الكبرى (Enterprise CI/CD)، ولكن مع التحكم الكامل في الخوادم، وخصوصية البيانات، وبدون أي تكاليف اشتراكات شهرية، مما يسرع عملية التطوير ويقلل من الأخطاء البشرية أثناء النشر.