[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"seo-verification":3,"blog-gitea-أم-forgejo-أم-gitlab-ce-أي-منصة-git-في-2026-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":26,"intro":29,"sections":30,"ctaTitle":136,"ctaBody":137,"ctaButton":138,"ctaUrl":139,"relatedPosts":140},241,"gitea-أم-forgejo-أم-gitlab-ce-أي-منصة-git-في-2026",{"fr":10,"en":11,"ar":8},"comparatif-forge-git-self-hosted-2026","gitea-forgejo-or-gitlab-ce-which-git-forge-in-2026","‏Gitea أم Forgejo أم GitLab CE: أيّ منصة Git في 2026؟","‏Gitea أم Forgejo أم GitLab CE لاستضافة منصة Git الخاصة بك في 2026؟ الموارد، CI\u002FCD، الحوكمة والهجرة بعد CVE-2026-59774.",10,0,false,"2026-08-09T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fcomparatif-forge-git-self-hosted-2026-poster.svg","‏في عام 2026، لم تعد استضافة منصة ‏Git‏ ذاتياً ممارسةً محدودة. غير أنّ ‏CVE-2026-59774‏ كشفت عن ثغرة خطيرة في نسخ ‏Gitea‏ غير المُرقَّعة تتيح قراءة ملفات تعسفية وتنفيذ تعليمات برمجية عن بُعد، مما دفع كثيراً من الفِرق إلى حسم سؤال كانت تؤجّله: ‏Gitea‏ أم ‏Forgejo‏ أم ‏GitLab CE‏؟ تقارن هذه المقالة الأدوات الثلاثة وفق المعايير التي تهمّ في بيئة الإنتاج — الموارد، ‏CI\u002FCD‏، الحوكمة، والهجرة.",[31,35,45,48,88,91,119,122,125,133],{"type":32,"title":33,"body":34},"h2","‏لماذا هذا السؤال ملحّ في 2026؟","‏نُشرت ‏CVE-2026-59774‏ في الرابع من أغسطس 2026. تطال نسخ ‏Gitea‏ من ‏1.22.1‏ إلى ‏1.27.0‏ — درجة ‏CVSS‏ تبلغ ‏9.9‏ (حرجة). يتمثّل الناقل في توجيه ‏`#+INCLUDE`‏ ضمن محرّك عرض ‏Org-mode‏، إذ يتيح لمهاجم غير مصادَق قراءة ملفات اعتباطية يصل إليها حساب خدمة ‏Gitea‏، بما فيها ‏`app.ini`‏ والرموز الداخلية. ويُفضي كشف ‏`INTERNAL_TOKEN`‏ إلى حقن ‏Git hook‏ وتنفيذ تعليمات برمجية عن بُعد. الإصلاح متوفر في النسخة ‏1.27.1‏. إن كانت نسختك أقدم ولا تُعزَل عن الشبكة العامة، فالترقيع هو الخطوة الأولى. الثانية هي تحديد ما إذا كنت ستبقى على ‏Gitea‏ أم تُسرِّع هجرةً كنت تؤجّلها.",{"type":36,"title":37,"items":38},"ul","‏ما الذي تغيّر منذ 2024 وما أثره على هذا الاختيار",[39,40,41,42,43,44],"‏**‏Forgejo‏ فرعٌ صارم منذ مطلع 2024** — انفصلت قاعدة الكود عن ‏Gitea‏؛ لا يزال المشروعان يتشاركان معظم أساسياتهما، لكنّ مسارَي التطوير باتا يتباعدان بوضوح","‏**حوكمة مجتمعية في ‏Forgejo** — تُدار بواسطة جمعية غير ربحية دون اتفاقيات مساهمة مع شركة أم؛ إصلاحات الأمان تصدر باستقلالية","‏**‏Forgejo Actions‏ في الإنتاج** — نفس صياغة ‏Gitea Actions‏ (متوافقة مع ‏GitHub Actions‏)، تدعم ‏Woodpecker CI‏ ومشغّلات ‏Docker‏، منشورة في ‏Codeberg‏ منذ 2024","‏**‏Forgejo v16.0‏ في يوليو 2026** — تعليقات مراجعة متعددة الأسطر، مصادقة ‏JWT‏ خارجية للـ ‏API‏، تصليب ‏SSRF‏، تقليص استهلاك النطاق الترددي للصور الرمزية","‏**‏GitLab CE‏ شاملة لكن ثقيلة** — تتضمّن النسخة المجتمعية ‏CI\u002FCD‏ ومسجّل الحاويات وفحص الأمان والصفحات؛ الثمن: ‏4‏ جيجابايت كحد أدنى للذاكرة، ‏8‏ جيجابايت موصى به","‏**خمسة مقارنات مستقلة نُشرت في 2026** تتقارب نحو الترتيب ذاته: ‏Forgejo‏ للتثبيت الجديد، ‏Gitea‏ إن كنت تستخدمها بنسخة مُرقَّعة، ‏GitLab CE‏ إن احتجت إلى منصة ‏DevOps‏ متكاملة في تثبيت واحد",{"type":32,"title":46,"body":47},"‏المتطلبات الأساسية حسب خيارك","‏مكتوبان بلغة ‏Go‏ ويُشحنان كملف ثنائي منفرد. تعمل نسخة متواضعة (حتى عشرين مستودعاً ومشغّلات ‏CI‏ قليلة) بسهولة على ‏1 vCPU‏ و‏1 GB‏ من الذاكرة؛ أما نسخة الفريق (مشغّلات ‏CI‏ نشطة، ‏LFS‏، سجلّ الحزم) فتفضّل ‏2 vCPU‏ و‏2‏ إلى ‏4 GB‏. ‏GitLab CE‏ في فئة مختلفة: ‏4 GB‏ حدٌّ أدنى مطلق للبدء، ‏8 GB‏ للاستخدام المريح، مع تشغيل ‏Postgres‏ و‏Redis‏ و‏Gitaly‏ و‏Sidekiq‏ في الوقت ذاته. خصّص على الأقل ‏4 vCPU‏ و‏50 GB‏ من التخزين ‏SSD‏. للأدوات الثلاثة تحتاج نطاقاً مُوجَّهاً إلى ‏IP‏ الخادم، مع فتح المنافذ ‏22‏ (‏SSH Git‏) و‏80‏ و‏443‏، وخادم وكيل عكسي (‏Nginx‏ أو ‏Caddy‏) للـ ‏HTTPS‏.",{"type":49,"title":50,"headers":51,"rows":55},"comparison","‏Forgejo مقابل Gitea مقابل GitLab CE — جدول المقارنة 2026",[52,53,54],"‏المعيار","‏Forgejo \u002F Gitea","‏GitLab CE",[56,60,64,68,72,76,80,84],[57,58,59],"‏الحد الأدنى للذاكرة","‏512 MB – 1 GB","‏4 GB (8 GB موصى به)",[61,62,63],"‏صيغة التوزيع","‏ملف ثنائي منفرد أو صورة Docker","‏Omnibus (متعدد العمليات) أو Helm chart",[65,66,67],"‏CI\u002FCD الأصلي","‏Forgejo Actions \u002F Gitea Actions (صياغة GitHub Actions)","‏GitLab CI\u002FCD، مشغّلات مشتركة أو مخصصة",[69,70,71],"‏الحوكمة","‏Forgejo: جمعية غير ربحية (Codeberg) · Gitea: Gitea Ltd.","‏GitLab Inc. (open-core، CE مجاني)",[73,74,75],"‏سجلّ الحاويات","‏نعم (حزم + container registry)","‏نعم، أكثر اكتمالاً",[77,78,79],"‏الاتحاد \u002F ActivityPub","‏Forgejo: beta اختياري · Gitea: غير مُخطَّط","‏لا",[81,82,83],"‏الهجرة من Gitea","‏Forgejo: نفس مخطط قاعدة البيانات، أمر واحد · GitLab: أداة استيراد عبر API","‏استيراد جزئي (مستودعات، issues، PRs)",[85,86,87],"‏الأنسب لـ","‏فِرق من 1 إلى 50 مطوراً، VPS متواضع، CI خفيفة","‏مؤسسة تريد كل شيء في تثبيت واحد، ميزانية بنية تحتية متاحة",{"type":32,"title":89,"body":90},"‏الهجرة من Gitea إلى Forgejo: ما يعنيه ذلك فعلاً","‏كثيراً ما توصف هجرة ‏Gitea → Forgejo‏ بأنها «أمر واحد» — وهذا صحيح في الحالة البسيطة. كلا المشروعين تشاركا مخطط قاعدة البيانات ذاته منذ البداية، ويحافظ ‏Forgejo‏ على التوافق العكسي. تتلخّص العملية في إيقاف حاوية ‏Gitea‏، وتوجيه حجم البيانات ذاته نحو حاوية ‏Forgejo‏، ثم التشغيل. يكتشف ‏Forgejo‏ المخطط الموجود ويطبّق هجراته الخاصة. بعض ما يجب التحقق منه أولاً: نسِّخ احتياطياً ملف ‏`app.ini`‏ وقاعدة البيانات، لاحظ نسخة ‏Gitea‏ الحالية (الهجرة مُختبَرة من النسخ الحديثة — قد تتطلّب نسخة قديمة جداً تحديثاً وسيطاً)، وتأكّد من أن مشغّلات ‏CI‏ تستخدم الصياغة ذاتها (‏Forgejo Actions‏ و‏Gitea Actions‏ متوافقتان). الهجرة في الاتجاه المعاكس — نحو ‏GitLab CE‏ — أطول: تتيح ‏GitLab‏ أداة استيراد عبر ‏API‏ (المستودعات، issues، merge requests، labels)، لكن خطوط أنابيب ‏CI‏ تحتاج إعادة كتابة بصياغة ‏GitLab CI‏.",{"type":92,"title":93,"steps":94},"steps","‏نشر Forgejo على VPS باستخدام Docker وNginx",[95,98,101,104,107,110,113,116],{"title":96,"body":97},"‏تجهيز الـ VPS","‏حدِّث النظام وثبِّت ‏Docker‏ و‏Docker Compose‏: `apt update && apt install -y docker.io docker-compose-plugin`. افتح المنافذ اللازمة: `ufw allow 22\u002Ftcp && ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp && ufw allow 2222\u002Ftcp` (‏2222‏ لـ ‏SSH Git‏ إن لم ترغب في إظهار المنفذ ‏22‏ للنظام).",{"title":99,"body":100},"‏إنشاء الأدلة وملف Compose","‏أنشئ دليلاً مخصصاً: `mkdir -p \u002Fopt\u002Fforgejo && cd \u002Fopt\u002Fforgejo`. ثم أنشئ ملف ‏`compose.yml`‏ يتضمن خدمة ‏`forgejo`‏ تشير إلى الصورة ‏`codeberg.org\u002Fforgejo\u002Fforgejo:latest`‏، وحجماً دائماً لـ ‏`\u002Fdata`‏، والمنافذ ‏`3000:3000`‏ (HTTP‏) و‏`2222:22`‏ (SSH‏)، ومتغيرات بيئة أساسية (`FORGEJO__server__DOMAIN=git.your-domain.com`‏، `FORGEJO__server__SSH_PORT=2222`‏).",{"title":102,"body":103},"‏تشغيل Forgejo","‏أطلق الخدمة: `docker compose up -d`. تحقق من أن الحاوية تعمل بـ `docker compose ps`‏ وراقب السجلات بـ `docker compose logs -f forgejo`‏. واجهة التثبيت متاحة على ‏`http:\u002F\u002F\u003Cip-vps>:3000`‏.",{"title":105,"body":106},"‏إعداد Nginx كوكيل عكسي HTTPS","‏ثبِّت ‏Nginx‏ و‏Certbot‏: `apt install -y nginx python3-certbot-nginx`. أنشئ مضيفاً افتراضياً لـ ‏`git.your-domain.com`‏ يوجّه الطلبات إلى ‏`http:\u002F\u002Flocalhost:3000`‏ مع رؤوس الوكيل القياسية (`proxy_set_header Host $host`‏، `proxy_set_header X-Real-IP $remote_addr`‏، `proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for`‏، `proxy_set_header X-Forwarded-Proto $scheme`‏).",{"title":108,"body":109},"‏الحصول على شهادة TLS","‏نفِّذ `certbot --nginx -d git.your-domain.com`‏. يُعدّ ‏Certbot‏ إعادة التوجيه من ‏HTTP‏ إلى ‏HTTPS‏ ويُجدوِل التجديد التلقائي. تحقق بـ `curl -I https:\u002F\u002Fgit.your-domain.com`‏ من أن رمز الاستجابة ‏`200`‏.",{"title":111,"body":112},"‏إتمام التثبيت عبر واجهة الويب","‏افتح ‏`https:\u002F\u002Fgit.your-domain.com`‏ في المتصفح. يطلب معالج التثبيت نوع قاعدة البيانات (‏SQLite‏ للبداية، ‏PostgreSQL‏ للإنتاج)، وعنوان النسخة، وإعدادات ‏SSH‏. أنشئ حساب المسؤول، ثم عطِّل التسجيل العام إن كانت النسخة خاصة (`FORGEJO__service__DISABLE_REGISTRATION=true`‏ في ‏`compose.yml`‏).",{"title":114,"body":115},"‏تفعيل مشغّل CI (اختياري)","‏قدّمت ‏Forgejo v15.0‏ (أبريل 2026) سير عمل تسجيل مبسّطاً للمشغّلات عبر واجهة الويب. انتقل إلى **إدارة الموقع ← Actions ← Runners**، انقر **إنشاء مشغّل** وانسخ أمر التسجيل. أطلق المشغّل في حاوية ثانية: `docker run -d --name forgejo-runner -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock codeberg.org\u002Fforgejo\u002Frunner:latest daemon --config config.yml`‏.",{"title":117,"body":118},"‏التحقق من الأمان الأساسي","‏تأكّد من أن ‏`FORGEJO__server__LOCAL_ROOT_URL`‏ لا يشير إلى ‏IP‏ داخلي مكشوف (ناقل ‏SSRF‏). منذ ‏Forgejo v16.0‏، تصليب ‏SSRF‏ مفعَّل افتراضياً لمزامنة ‏Git‏ — راجع ‏`FORGEJO__migrations__ALLOW_LOCALNETWORKS`‏ في إعداداتك إن احتجت إلى مزامنة مستودعات داخلية.",{"type":120,"body":121},"tip","‏لنسخة ‏Gitea‏ متأثرة بـ ‏CVE-2026-59774‏ (النسخ ‏1.22.1‏ إلى ‏1.27.0‏): الهجرة إلى ‏Forgejo‏ والترقية إلى ‏Gitea 1.27.1‏ كلتاهما تُصلحان الثغرة. إن قرّرت البقاء على ‏Gitea‏، طبِّق الرقعة فوراً. وإن كنت تفكّر في ‏Forgejo‏ منذ فترة، تحلّ الهجرة المشكلتين معاً: رقِّع بالهجرة بدلاً من الترقية ثم الهجرة لاحقاً. في كل الأحوال، ألغِ صلاحية ‏`INTERNAL_TOKEN`‏ و‏`SECRET_KEY`‏ في ‏`app.ini`‏ عند أي اشتباه بتسريب، ودوِّر رموز الوصول الشخصية لمستخدميك.",{"type":32,"title":123,"body":124},"‏استكشاف الأخطاء: أبرز أخطاء التثبيت","‏تغطّي الأخطاء أدناه أكثر الحالات شيوعاً خلال التثبيت الأول أو الهجرة.",{"type":36,"title":126,"items":127},"‏الأخطاء الشائعة وحلولها",[128,129,130,131,132],"‏**`level=fatal msg=\"Failed to initialize ORM engine\" error=\"Error 1071: Specified key was too long\"` (‏MySQL\u002FMariaDB‏)** — ترميز قاعدة البيانات ليس ‏`utf8mb4`‏: أنشئ القاعدة بـ `CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`‏ وأعد التشغيل","‏**`Failed to initialize SSH: ssh: no key found`** — يبحث ‏Forgejo‏ عن مفاتيح ‏SSH‏ في ‏`\u002Fdata\u002Fgitea\u002F.ssh`‏؛ إن لم يكن الحجم مُركَّباً أو كانت الصلاحيات خاطئة، نفِّذ `docker compose exec forgejo forgejo admin regenerate keys`‏ لإعادة توليدها","‏**`x509: certificate signed by unknown authority`‏ في الـ webhooks الصادرة** — نسختك تستدعي خدمة داخلية بشهادة موقَّعة ذاتياً؛ أضف `FORGEJO__webhook__SKIP_TLS_VERIFY=true`‏ في بيئة التطوير فقط، أو ثبِّت شهادة ‏CA‏ في الحاوية عبر ‏`SSL_CERT_FILE`‏","‏**`Error response from daemon: conflict: unable to delete image`‏ عند التحديث** — أوقف الحاوية أولاً (`docker compose down`‏)، احذف الصورة (`docker image rm codeberg.org\u002Fforgejo\u002Fforgejo`‏)، ثم أعد السحب (`docker compose pull`‏) قبل إعادة التشغيل","‏**مشغّلات CI‏ عالقة على ‏`waiting for available runner`‏ بعد التسجيل** — تحقق من قدرة المشغّل على الوصول إلى نسخة ‏Forgejo‏: يجب أن يُعيد `curl -s https:\u002F\u002Fgit.your-domain.com\u002Fapi\u002Fv1\u002Fversion`‏ من داخل حاوية المشغّل كائن ‏JSON‏ يتضمن رقم النسخة؛ إن لم يتحل اسم النطاق من داخل الحاوية، أضف ‏`extra_hosts`‏ في ‏Compose‏ أو استخدم ‏IP‏ الـ ‏VPS‏ مباشرة",{"type":32,"title":134,"body":135},"‏أيّ أداة تختار حسب وضعك","‏للتثبيت الجديد في 2026: ‏Forgejo‏ هو الاختيار الافتراضي في جميع المقارنات المستقلة تقريباً المنشورة هذا العام. تجمع الحوكمة المجتمعية، وإصلاحات الأمان المستقلة عن ‏Gitea Ltd.‏، والتوافق مع الأدوات الموجودة (مشغّلات، webhooks‏، رموز)، والبصمة الذاكرية المماثلة لـ ‏Gitea‏ — جميعها الحجج دون مقايضات تُذكر لمشروع جديد. إن كنت تشغّل نسخة ‏Gitea‏ محدَّثة (‏1.27.1+‏) وتفي باحتياجاتك، فالهجرة ليست ملحّة — لكن المرة القادمة التي تُفكّر فيها بترقية رئيسية، قيِّم ‏Forgejo‏ آنذاك. ‏GitLab CE‏ هو الخيار الصحيح حين تحتاج فريقُك إلى سلسلة ‏DevOps‏ كاملة في تثبيت واحد — فحص الأمان، الصفحات، بيئات النشر، مقاييس ‏DORA‏ — وتتوفر البنية التحتية اللازمة. على ‏VPS‏ متواضع، ليست الأداة المناسبة. للتعمق أكثر: دليلنا المفصّل لتثبيت ‏Forgejo‏، وإعداد خط أنابيب ‏CI‏ مع ‏Woodpecker‏، ومقالة تصليب خادم ‏Linux‏ الأولي تُكمل هذه المقارنة.","منصتك تعمل على بنية تحتية تتحكم فيها أنت","‏بمجرد اختيار منصتك، تعمل على ‏VPS‏ من ‏ServOrbit‏: وصول ‏root‏، عنوان ‏IPv4‏ مخصص، اختيار نظام التشغيل، بدون قيود تعسفية — بنية تحتية لا تعترض مسيرتك.","‏استعرض VPS Cloud","\u002Fsolutions\u002Fdeveloppeurs",[141,160,177],{"id":142,"slug":143,"slugs":144,"title":147,"excerpt":148,"readTime":14,"views":149,"isPinned":16,"publishedAt":150,"category":151,"categories":157,"featuredImage":26,"bgImage":27,"posterImage":159,"relatedSolution":26},75,"استضافة-forgejo-على-خادم-vps-الخاص-بك",{"fr":145,"en":146,"ar":143},"heberger-forgejo","host-forgejo-on-your-own-vps","استضافة ‎Forgejo‎ على خادم VPS: دليل شامل 2025","انشر ‎Forgejo‎ على خادم ‎VPS‎ باستخدام ‎Docker‎ و‎SSL‎ و‎Actions runners‎ مع تأمين متقدم. دليل خطوة بخطوة لإقامة مخزن ‎Git‎ مستقل.",1,"2026-04-06T00:00:00+00:00",{"id":152,"name":153,"slug":154,"color":155,"icon":156},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[158],{"id":152,"name":153,"slug":154,"color":155,"icon":156},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"id":161,"slug":162,"slugs":163,"title":166,"excerpt":167,"readTime":19,"views":149,"isPinned":16,"publishedAt":168,"category":169,"categories":174,"featuredImage":26,"bgImage":27,"posterImage":176,"relatedSolution":26},212,"woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps",{"fr":164,"en":165,"ar":162},"woodpecker-ci-pipeline-vps-forgejo","woodpecker-ci-and-forgejo-cicd-pipeline-on-a-vps","Woodpecker CI وForgejo: خط أنابيب CI\u002FCD على خادم VPS","انشر Woodpecker CI مع Forgejo على خادم VPS لخط أنابيب CI\u002FCD مفتوح المصدر، مستضاف ذاتيًا وخفيف وسيادي. دليل Docker خطوة بخطوة.","2026-08-02T00:00:00+00:00",{"id":170,"name":171,"slug":172,"color":173,"icon":172},2,"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[175],{"id":170,"name":171,"slug":172,"color":173,"icon":172},"\u002Fblog\u002Fcovers\u002Fwoodpecker-ci-pipeline-vps-forgejo-poster.svg",{"id":178,"slug":179,"slugs":180,"title":183,"excerpt":184,"readTime":14,"views":15,"isPinned":16,"publishedAt":185,"category":186,"categories":192,"featuredImage":26,"bgImage":27,"posterImage":194,"relatedSolution":26},228,"تصليب-الخادم-linux-الأولي",{"fr":181,"en":182,"ar":179},"durcissement-serveur-linux-initial","initial-linux-server-hardening","تصليب الخادم ‎Linux‎ الأولي","أنشئ مستخدم ‎sudo‎، وكوّن ‎SSH‎ بالمفاتيح، وفعّل ‎UFW‎ و‎fail2ban‎ على ‎Ubuntu 22.04‎ أو ‎Debian 12‎ في أقل من ساعة.","2026-08-06T00:00:00+00:00",{"id":187,"name":188,"slug":189,"color":190,"icon":191},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[193],{"id":187,"name":188,"slug":189,"color":190,"icon":191},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",1787580961820]