دليل النشر

Gitea مقابل GitLab: أي منصة Git مستضافة ذاتيًا على VPS؟

انشر على VPS Cloud ←

مقارنة

Gitea مقابل GitLab: أي منصة Git مستضافة ذاتيًا على VPS؟

مقارنات10 دقائق للقراءةعدد الخطوات: 10

استضافة منصة ‎Git‎ خاصة بك تعني استعادة السيطرة على شيفرتك وتكاملك المستمر (‎CI‎) وأسرارك. يراهن ‎Gitea‎ على الخفّة، و‎GitLab‎ على المنصة المتكاملة. إليك كيفية الحسم ونشر منصتك على ‎VPS‎ — من مقارنة الرخص إلى التثبيت في أربع خطوات.

المحتويات· لماذا تستضيف منصة Git ذاتيًا على VPS1/13
  1. 01لماذا تستضيف منصة Git ذاتيًا على VPS
  2. 02فوائد منصة مستضافة ذاتيًا
  3. 03Gitea مقابل GitLab: اختلافات الرخصة في 2026
  4. 04الأداء وموارد الخادم
  5. 05Gitea مقابل GitLab CE: جدول مقارنة شامل
  6. 06مقارنة ميزات CI/CD
  7. 07الهجرة من GitLab إلى Gitea: ما تغطيه CVE-2026-85706
  8. 08متى تختار GitLab CE رغم تكلفة الموارد
  9. 09المتطلبات حسب المنصة المختارة
  10. 10تثبيت Gitea على VPS ServOrbit في 4 خطوات
  11. 11نشر Gitea (أو GitLab) على VPS باستخدام Docker
  12. 12Gitea مقابل GitLab CE: جدول المقارنة
  13. 13Gitea + Woodpecker CI: المجموعة الخفيفة لفرق من 1 إلى 15

لماذا تستضيف منصة Git ذاتيًا على VPS

منصة ‎Git‎ المستضافة ذاتيًا تُبقي ملكيتك الفكرية بعيدًا عن المنصات العامة وتزيل أي حد تعسّفي على عدد المستودعات الخاصة أو المتعاونين أو دقائق ‎CI‎. على ‎VPS‎، تتحكّم في موقع البيانات والنسخ الاحتياطي والتكامل مع خط الإنتاج الداخلي الخاص بك. ‎Gitea‎ (وفرعه ‎Forgejo‎) مكتوب بلغة ‎Go‎: ثنائي (‎binary‎) واحد، إقلاع فوري، بصمة ذاكرة ضئيلة، مثالي لـ ‎VPS‎ متواضع. أما ‎GitLab CE‎ فهو حزمة متكاملة (المشكلات و‎CI/CD‎ وسجل ‎Docker‎ وسجل الحزم وويكي والبيئات) لكنه يستهلك ذاكرة (‎RAM‎) أكبر بكثير.

فوائد منصة مستضافة ذاتيًا

  • مستودعات خاصة غير محدودة من دون اشتراك لكل مقعد
  • CI/CD تحت سيطرتك، مع مُشغِّلاتك الخاصة على VPS
  • الأسرار والرموز (tokens) مخزَّنة لديك، خارج أي منصة طرف ثالث
  • سجل صور Docker والحزم مدمج، قريب من عمليات نشرك
  • الامتثال وتوطين البيانات تحت السيطرة الكاملة
  • مع Gitea: ثنائي واحد، ونسخ احتياطي بنسخ مجلد وقاعدة بيانات

Gitea مقابل GitLab: اختلافات الرخصة في 2026

‎Gitea‎ مُصدَر بموجب رخصة ‎MIT‎: يمكنك قراءة الشيفرة وتعديلها وإعادة توزيعها واستضافتها دون قيود تجارية. ‎Forgejo‎، فرعه المجتمعي الذي وُلد عام 2022، يطبّق الرخصة ذاتها. ‎GitLab CE‎ أيضًا ‎MIT‎ — لكن طبقة ‎Community Edition‎ فقط. ‎GitLab EE‎ (‎Enterprise Edition‎) ملكي: الميزات المميزة (‎SAML SSO‎ المتقدم، موافقات ‎MR‎ المتعددة، ‎SAST/DAST‎ المدمج، الملاحم، خرائط الطريق) محجوبة خلف اشتراك مدفوع يبدأ بمئات اليوروهات لكل مستخدم سنويًا. الخطر الحقيقي لفريق يستضيف ‎GitLab CE‎ ليس في الرخصة بل في تأثير الترقية: الميزات الغائبة في ‎CE‎ تدفع تدريجيًا نحو ‎EE‎ المدفوع. مع ‎Gitea‎ أو ‎Forgejo‎، جميع الميزات المتاحة مُدرجة في النسخة المجانية دون أي مستوى مدفوع.

الأداء وموارد الخادم

يستهلك ‎Gitea‎ نحو 100 إلى 150 ميغابايت من الذاكرة في وضع الخمول في نشر ‎Docker‎ قياسي مع ‎PostgreSQL‎. مع نحو عشرة مُشغِّلات نشطة وبضعة خطوط أنابيب متزامنة، تبقى دون 400 ميغابايت للمنصة وحدها. ‎GitLab CE‎ في صيغة ‎omnibus‎ في فئة مختلفة: يعمل ‎PostgreSQL‎ و‎Redis‎ و‎Sidekiq‎ و‎Gitaly‎ و‎Puma‎ و‎NGINX‎ بالتوازي. في وضع الخمول، يتجاوز المجموع عادةً 3 إلى 4 غيغابايت، ويمكن أن يرتفع إلى 6 إلى 8 غيغابايت تحت حمل ‎CI‎. يوصي ‎GitLab‎ رسميًا بـ 8 غيغابايت من الذاكرة للاستخدام الإنتاجي مع تفعيل ‎CI‎.

Gitea مقابل GitLab CE: جدول مقارنة شامل

مرّر الجدول أفقيًا

المعيار‎Gitea / Forgejo‎‎GitLab CE‎
الذاكرة في وضع الخمول‎~128 ميغابايت (المنصة وحدها)‎‎3 إلى 4 غيغابايت (omnibus كامل)‎
الذاكرة المُوصى بها للإنتاج‎1 إلى 2 غيغابايت‎‎8 غيغابايت‎
البنيةثنائي ‎Go‎ واحدحزمة متعددة الخدمات (‎omnibus‎)
زمن الإقلاعشبه فوريعدة دقائق
الرخصة‎MIT (Gitea) / MIT (Forgejo)‎‎MIT (CE)‎ / ملكي (‎EE‎)
‎CI/CD‎ مدمج‎Gitea Actions‎ (بأسلوب ‎GitHub‎)‎GitLab CI/CD‎، متكامل جدًا
مُشغِّلات موزّعةأساسية (‎act runner‎)متقدمة (مُشغِّلات موزّعة، مُنفِّذ ‎k8s‎)
‎SAST / DAST‎ مدمجلا (عبر إضافات ‎CI‎)‎EE‎ فقط
موافقات ‎MR‎ المتعددةبسيطةمتقدمة (‎EE‎)
سجل ‎Docker‎ / الحزممُضمَّن وخفيفمُضمَّن وغني
إدارة المشاريع (المشكلات، اللوحات)أساسيةمتقدمة (‎epics‎ حسب الإصدار)
سهولة النسخ الاحتياطيمجلد + تفريغ ‎SQL‎إجراء ‎omnibus‎ مخصص
مثالي لـ‎VPS‎ متواضع، فرق من 1 إلى 30 مطوّرًامنصة ‎DevOps‎ للمؤسسات

مقارنة ميزات CI/CD

ظهر ‎Gitea Actions‎ في ‎Gitea 1.19‎ (2023) ويُعيد استخدام صياغة سير عمل ‎GitHub Actions‎ بالضبط: ملفات ‎.github/workflows/*.yml‎ الموجودة قابلة لإعادة الاستخدام دون تعديل في معظم الحالات. هذا كافٍ لغالبية خطوط الأنابيب: البناء والاختبار والفحص ودفع الصور والنشر عبر ‎SSH‎. تظهر القيود في الحالات المتقدمة: لا ذاكرة تخزين مؤقتة مشتركة بين المُشغِّلات على نطاق واسع، ولا بيئات مراجعة أصيلة. ‎GitLab CI‎ أكثر نضجًا في هذه النقاط: مُشغِّلات موزّعة على أجهزة متعددة، مُنفِّذات ‎Kubernetes‎، ذاكرة تخزين مؤقتة مشتركة، بيئات ديناميكية، تطبيقات مراجعة. القاعدة العملية: ‎Gitea Actions‎ يكفي لفرق من 1 إلى 20 مطوّرًا بخطوط أنابيب قياسية؛ ‎GitLab CI‎ يصبح ضروريًا عندما تكون نضج خط الأنابيب معيار اختيار بحد ذاته.

الهجرة من GitLab إلى Gitea: ما تغطيه CVE-2026-85706

‎CVE-2026-85706‎ هي ثغرة أمنية من نوع ‎Server-Side Request Forgery (SSRF)‎ اكتُشفت في ‎GitLab CE‎ و‎EE‎، وتؤثر في الإصدارات السابقة لتصحيح مارس 2026. تتيح لمهاجم مصادَق عليه إجبار ‎GitLab‎ على تنفيذ طلبات ‎HTTP‎ نحو موارد الشبكة الداخلية عبر ميزة استيراد المستودع البعيد. على ‎VPS‎ حيث يشارك ‎GitLab‎ الشبكة الداخلية مع خدمات أخرى (قواعد بيانات، سجلات، واجهات برمجية)، يكون التعرّض حقيقيًا. ‎Gitea‎ غير متأثر بهذه الثغرة تحديدًا. الهجرة ‎GitLab → Gitea‎ موثّقة ومغطّاة بأداة ‎gitea-migration-tool‎: تستورد المستودعات والمشكلات والتسميات والمعالم وطلبات السحب والتعليقات من ‎API GitLab‎. إذا كنت تشغّل نسخة ‎GitLab CE‎ غير مُرقَّعة على ‎VPS‎ مكشوف، فالهجرة إلى ‎Gitea‎ أو الترقية العاجلة هما الخياران الوحيدان المعقولان.

متى تختار GitLab CE رغم تكلفة الموارد

  • فرق تضم أكثر من 50 مطوّرًا نشطًا: إدارة الأذونات الدقيقة والمجموعات المتداخلة في GitLab تبرّر التعقيد
  • الامتثال المؤسسي أو شهادة ISO 27001: سجلات التدقيق وموافقات MR بنصاب قانوني وسياسات حماية الدفع أكثر نضجًا
  • SAST / DAST مدمج في خط الأنابيب (يتطلب GitLab EE، لكن بعض الفرق تفضّل توحيد أدواتها في منتج مدفوع واحد)
  • تطبيقات المراجعة والبيئات الديناميكية لكل MR: GitLab CI يتعامل مع هذا أصيلًا؛ Gitea Actions يتطلب أدوات خارجية
  • مُشغِّلات Kubernetes مع التوسّع التلقائي: GitLab لديه مُشغِّل K8s مخصص ومُنفِّذ أصيل
  • ويكي مرتبط بالمستودع مع سجل Git وعروض Mermaid / PlantUML مدمجة في الواجهة

المتطلبات حسب المنصة المختارة

‎Gitea‎ اقتصادي: يكفي 1 ‎vCPU‎ و1 غيغابايت من الذاكرة لفريق صغير، و2 غيغابايت مع قاعدة البيانات وبضعة مُشغِّلات. أما ‎GitLab CE‎ فأكثر نهمًا بكثير: استهدف 4 غيغابايت من الذاكرة كحد أدنى (يُوصى بـ 8 غيغابايت في الاستخدام الفعلي مع ‎CI‎)، و4 ‎vCPU‎ وقرصًا سريعًا. في كلتا الحالتين تحتاج إلى ‎Docker‎ و‎Compose‎، ونطاق فرعي، وبروكسي عكسي لأجل ‎TLS‎. خصّص وحدة تخزين مخصصة للمستودعات واستراتيجية للنسخ الاحتياطي.

تثبيت Gitea على VPS ServOrbit في 4 خطوات

  1. إعداد وحدة التخزين وشبكة Docker

    على ‎VPS ServOrbit‎ الخاص بك، أنشئ مجلدات البيانات وشبكة ‎Docker‎ معزولة: ‎mkdir -p /srv/gitea/{data,db} && docker network create forge‎. تتيح هذه الشبكة لـ ‎Gitea‎ و‎PostgreSQL‎ التواصل دون كشف قاعدة البيانات للواجهة العامة.

  2. كتابة ملف docker-compose.yml

    عرِّف خدمتين: ‎gitea/gitea:latest‎ مُركَّبة على ‎/srv/gitea/data‎ و‎postgres:16-alpine‎ مُركَّبة على ‎/srv/gitea/db‎. اكشف المنفذ ‎3000‎ داخليًا ومنفذ ‎SSH Git 2222‎ خارجيًا. مرِّر ‎GITEA__database__DB_TYPE=postgres‎ و‎GITEA__server__DOMAIN‎ و‎GITEA__server__ROOT_URL‎ كمتغيرات بيئة.

  3. ضبط النطاق وSSL

    في مساحة عميل ‎ServOrbit‎، أنشئ سجل ‎DNS‎ لـ ‎git.yourdomain.com‎ يشير إلى ‎IP‎ الـ ‎VPS‎. وجِّه هذا النطاق الفرعي باستخدام ‎Caddy‎ أو ‎Nginx‎ نحو منفذ ‎Gitea 3000‎. تحقق من أن ‎X-Forwarded-Proto: https‎ مُمرَّر كي تكون روابط الاستنساخ صحيحة.

  4. إنشاء أول مستودع وتوصيل مُشغِّل CI

    نفِّذ ‎docker compose up -d‎، ثم انتقل إلى ‎https://git.yourdomain.com‎. معالج التثبيت يفتح عند أول اتصال: حدّد نوع قاعدة البيانات (‎PostgreSQL‎)، أكِّد النطاق، وأنشئ حساب المشرف. للـ ‎CI‎، ثبِّت ‎act_runner‎ وسجِّله في إدارة موقع ‎Gitea‎ (الإدارة → المُشغِّلات).

نشر Gitea (أو GitLab) على VPS باستخدام Docker

  1. إنشاء وحدات التخزين والشبكة

    جهّز ‎mkdir -p /srv/gitea/{data,db}‎ وشبكة ‎Docker‎ مخصصة ‎docker network create forge‎. يسهّل الفصل بين ‎data/db‎ النسخ الاحتياطي المستقل للشيفرة ولقاعدة البيانات.

  2. تعريف ملف docker-compose.yml

    بالنسبة إلى ‎Gitea‎، عرِّف خدمة ‎gitea/gitea‎ إضافةً إلى ‎postgres‎، وركِّب وحدات التخزين، واكشف منفذ ‎HTTP 3000‎ ومنفذ ‎SSH الخاص بـ Git 2222‎ محليًا. أما بالنسبة إلى ‎GitLab‎، فاستخدم ‎gitlab/gitlab-ce‎ مع المتغير ‎GITLAB_OMNIBUS_CONFIG‎ لتعيين ‎external_url‎.

  3. التشغيل وإنهاء التثبيت

    نفِّذ ‎docker compose up -d‎. يعرض ‎Gitea‎ معالج تثبيت عند أول اتصال (أدخِل نوع قاعدة البيانات والنطاق)؛ أما ‎GitLab‎ فيستغرق عدة دقائق للتهيئة، فاحصل على كلمة مرور ‎root‎ المُولَّدة من السجلات (‎logs‎).

  4. ضبط البروكسي العكسي وSSL

    وجِّه ‎git.yourdomain.com‎ إلى منفذ ‎HTTP‎ الخاص بالمنصة باستخدام ‎Caddy‎ أو ‎Nginx‎ للحصول على شهادة ‎Let's Encrypt‎. احرص على تمرير ‎X-Forwarded-Proto‎ الصحيح كي تكون روابط الاستنساخ عبر ‎HTTPS‎ صحيحة.

  5. تفعيل SSH الخاص بـ Git

    اربط منفذ ‎SSH‎ الخاص بالحاوية بمنفذ على الـ ‎VPS‎ (مثل 2222) واضبط مفاتيحك. عيِّن ‎SSH_DOMAIN‎ كي تكون أوامر ‎git clone‎ التي تقترحها الواجهة دقيقة.

  6. توصيل CI/CD

    سجِّل مُشغِّلًا (‎runner‎): إما ‎Gitea Actions‎ (متوافق مع صياغة ‎GitHub Actions‎) أو ‎GitLab Runner‎ عبر ‎Docker‎. حُدّ من موارده واعزله في حاويته الخاصة كي لا تُسقط مهمة ثقيلة المنصة.

Gitea مقابل GitLab CE: جدول المقارنة

مرّر الجدول أفقيًا

المعيارGiteaGitLab CE
الحد الأدنى المُوصى به من الذاكرة1 إلى 2 غيغابايت4 إلى 8 غيغابايت
البنيةثنائي Go واحدحزمة متعددة الخدمات (omnibus)
زمن الإقلاعشبه فوريعدة دقائق
CI/CD مدمجGitea Actions (بأسلوب GitHub)GitLab CI/CD، متكامل جدًا
سجل Docker / الحزممُضمَّن وخفيفمُضمَّن وغني
إدارة المشاريع (المشكلات، اللوحات)أساسيةمتقدمة (epics حسب الإصدار)
سهولة النسخ الاحتياطيمجلد + تفريغ SQLإجراء omnibus مخصص
مثالي لـVPS متواضع، فريق صغير/متوسطمنصة DevOps متكاملة

Gitea + Woodpecker CI: المجموعة الخفيفة لفرق من 1 إلى 15

إذا كانت ‎Gitea Actions‎ تبدو قريبة جدًا من منظومة ‎GitHub‎ وتريد ‎CI‎ مستضافة ذاتيًا بالكامل دون اعتماد على ‎act‎، فانظر إلى ‎Woodpecker CI‎ (فرع من ‎Drone CI‎، رخصة ‎Apache 2.0‎). يتكامل أصيلًا مع ‎Gitea‎ عبر ‎OAuth‎، يعمل على ‎Docker‎، وصياغة ‎YAML‎ الخاصة به أكثر وضوحًا من ‎GitHub Actions‎. تستهلك مجموعة ‎Gitea + Woodpecker CI‎ أقل من 300 ميغابايت من الذاكرة في وضع الخمول على ‎VPS‎ بـ 2 غيغابايت.

في ‎GitLab‎، تجنّب الـ ‎OOM-kill‎ على ‎VPS‎ صغير بتقليل التزامن: اضبط ‎puma['worker_processes']‎ على 2 و‎sidekiq['max_concurrency']‎ على 10 في إعدادات ‎omnibus‎. وإذا ظلّت الذاكرة مشكلة، فانظر إلى ‎Forgejo‎ (فرع مجتمعي من ‎Gitea‎) الذي يحافظ على الخفّة مع تغطية 90% من احتياجات الفريق، بما في ذلك السجل و‎Actions‎.

منصة Git الخاصة بك جاهزة للاستنساخ

يتيح لك VPS Cloud من ServOrbit مع قالب Docker نشر Gitea أو GitLab مع بروكسي عكسي وSSL ومُشغِّل CI في بضع خطوات، من مساحة العميل الخاصة بك.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة