[{"data":1,"prerenderedAt":218},["ShallowReactive",2],{"seo-verification":3,"blog-gitea-أم-forgejo-أم-gitlab-ce-أي-منصة-git-في-2026-ma-ar":6,"promo-bar-likely":217},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-gitea-أم-forgejo-أم-gitlab-ce-أي-منصة-git-في-2026-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":150,"ctaBody":151,"ctaButton":152,"ctaUrl":153,"relatedPosts":154},241,"gitea-أم-forgejo-أم-gitlab-ce-أي-منصة-git-في-2026",{"fr":12,"en":13,"ar":10,"es":14},"comparatif-forge-git-self-hosted-2026","gitea-forgejo-or-gitlab-ce-which-git-forge-in-2026","gitea-forgejo-o-gitlab-ce-que-forja-git-en-2026","‏Gitea أم Forgejo أم GitLab CE: أيّ منصة Git في 2026؟","‏Gitea أم Forgejo أم GitLab CE لاستضافة منصة Git الخاصة بك في 2026؟ الموارد، CI\u002FCD، الحوكمة والهجرة بعد CVE-2026-59774.",12,5,false,"2026-08-09T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},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‏، الحوكمة، والهجرة — مع مستجدات ‏Forgejo v16.0‏ (يوليو 2026).",[35,39,50,53,101,104,132,135,138,147],{"type":36,"title":37,"body":38},"h2","‏لماذا هذا السؤال ملحّ في 2026؟","‏نُشرت ‏CVE-2026-59774‏ في الثاني من أغسطس 2026. تطال نسخ ‏Gitea‏ من ‏1.22.1‏ إلى ‏1.27.0‏ — درجة ‏CVSS‏ تبلغ ‏9.8‏ (حرجة). يتمثّل الناقل في توجيه ‏`#+INCLUDE`‏ ضمن محرّك عرض ‏Org-mode‏، إذ يتيح لمهاجم غير مصادَق قراءة ملفات اعتباطية يصل إليها حساب خدمة ‏Gitea‏، بما فيها ‏`app.ini`‏ والرموز الداخلية. ويُفضي كشف ‏`INTERNAL_TOKEN`‏ إلى حقن ‏Git hook‏ وتنفيذ تعليمات برمجية عن بُعد. الإصلاح متوفر في النسخة ‏1.27.1‏. إن كانت نسختك أقدم ولا تُعزَل عن الشبكة العامة، فالترقيع هو الخطوة الأولى. والثانية هي تحديد ما إذا كنت ستبقى على ‏Gitea‏ أم تُسرِّع هجرةً كنت تؤجّلها. أما Forgejo — الذي يُصدر تصحيحاته الأمنية باستقلالية عن Gitea Ltd. — فقد أصلح الثغرة نفسها في عرض Org-mode ضمن النسختين v16.0.2 وv15.0.6 المنشورتين في 30 يوليو 2026، أي قبل النشرة الأمنية لـ Gitea.",{"type":40,"title":41,"items":42},"ul","‏ما الذي تغيّر منذ 2024 وما أثره على هذا الاختيار",[43,44,45,46,47,48,49],"‏**‏Forgejo‏ فرعٌ صارم منذ مطلع 2024** — انفصلت قاعدة الكود عن ‏Gitea‏؛ لا يزال المشروعان يتشاركان معظم أساسياتهما، لكنّ مسارَي التطوير باتا يتباعدان بوضوح","‏**حوكمة مجتمعية في ‏Forgejo** — تُدار بواسطة جمعية غير ربحية دون اتفاقيات مساهمة مع شركة أم؛ إصلاحات الأمان تصدر باستقلالية","‏**Forgejo Actions في الإنتاج** — صياغة قريبة من GitHub Actions مثل Gitea Actions (ينبّه Forgejo إلى أن سير عمل GitHub يحتاج غالبًا إلى تعديلات طفيفة)، تُنفَّذ عبر مشغّلات Docker؛ ويبقى Woodpecker CI بديلًا يتكامل مع Forgejo، فيما لا يوفّر Codeberg تشغيل Actions المستضاف إلا بشكل محدود","‏**‏Forgejo v16.0‏ في يوليو 2026** — تعليقات مراجعة متعددة الأسطر (تحديد نطاق الأسطر في الفرق، خيوط نقاش inline)، مصادقة ‏JWT‏ خارجية للـ ‏API‏ (تتيح لأنظمة خارجية المصادقة دون رمز دائم)، تصليب SSRF لميرورينغ Git (تُطبَّق قواعد `[migrations]` في كل العمليات ولم يعد Git يتبع إعادة التوجيه)، تقليص استهلاك النطاق الترددي للصور الرمزية؛ فرع غير LTS لم يعد مدعومًا منذ 29 أكتوبر 2026، وتستمر ميزاته في Forgejo v17.0 (أكتوبر 2026)","‏**‏Forgejo v15.0‏ في أبريل 2026** — سير عمل مُبسَّط لتسجيل المشغّل عبر الواجهة، رموز مقيّدة بالمستودع، الإصدار المئة من ‏Forgejo","‏**‏GitLab CE‏ شاملة لكن ثقيلة** — تتضمّن النسخة المجتمعية ‏CI\u002FCD‏ ومسجّل الحاويات وفحص الأمان والصفحات؛ الثمن: 8 جيجابايت كحد أدنى للذاكرة، و16 جيجابايت موصى به","‏**الترتيب الذي يتّضح في 2026**: ‏Forgejo‏ للتثبيت الجديد، ‏Gitea‏ إن كنت تستخدمها بنسخة مُرقَّعة، ‏GitLab CE‏ إن احتجت إلى منصة ‏DevOps‏ متكاملة في تثبيت واحد",{"type":36,"title":51,"body":52},"‏المتطلبات الأساسية حسب خيارك","‏كتب ‏Forgejo‏ و‏Gitea‏ بلغة ‏Go‏ ويُشحَنان كملف ثنائي واحد ثابت. تعمل نسخة متواضعة (حتى عشرين مستودعاً، بضعة مشغّلات CI) بشكل مريح على ‏1‏ نواة و‏1‏ جيجابايت من الذاكرة؛ أما نسخة الفريق (مشغّلات ‏CI‏ نشطة، ‏LFS‏، سجل الحزم) فتفضّل نواتين و‏2‏ إلى ‏4‏ جيجابايت. ‏GitLab CE‏ في مستوى آخر تمامًا: تحدّد وثائقه الحد الأدنى بـ 8 جيجابايت من الذاكرة وتوصي بـ 16 جيجابايت، مع تشغيل Postgres وRedis وGitaly وSidekiq في آنٍ واحد. وتنصّ على 8 أنوية افتراضية و40 جيجابايت على الأقل من تخزين SSD للتطبيق، تُضاف إليها مساحة مستودعاتك‏. للأدوات الثلاثة، ستحتاج إلى نطاق يشير إلى ‏VPS‏ الخاص بك، والمنافذ ‏22‏ (SSH Git) و‏80‏ و‏443‏ مفتوحة، وبروكسي عكسي (‏Nginx‏ أو ‏Caddy‏) لـ‏HTTPS‏.",{"type":54,"title":55,"headers":56,"rows":60},"comparison","‏Forgejo مقابل Gitea مقابل GitLab CE — جدول مقارنة 2026",[57,58,59],"‏المعيار","‏Forgejo \u002F Gitea","‏GitLab CE",[61,65,69,73,77,81,85,89,93,97],[62,63,64],"‏الحد الأدنى للذاكرة","‏لا حد أدنى رسميًا (1 جيجابايت لفريق صغير)","‏8 جيجابايت (16 جيجابايت موصى به)",[66,67,68],"‏صيغة التوزيع","‏ملف ثنائي واحد أو صورة Docker","‏Omnibus (متعدد العمليات) أو Helm chart",[70,71,72],"‏CI\u002FCD الأصلية","‏Forgejo Actions \u002F Gitea Actions (صياغة GitHub Actions)","‏GitLab CI\u002FCD المدمجة، مشغّلات مشتركة أو مخصصة",[74,75,76],"‏الحوكمة","‏Forgejo: جمعية غير ربحية (Codeberg) · Gitea: Gitea Ltd.","‏GitLab Inc. (مفتوح المصدر الجوهري، CE مجاني)",[78,79,80],"‏سجل الحاويات","‏نعم (حزم + سجل حاويات)","‏نعم، أكثر اكتمالاً",[82,83,84],"‏الفيدرالية \u002F ActivityPub","‏Forgejo: تجريبية، معطّلة افتراضيًا · Gitea: غير مخطط لها","‏لا",[86,87,88],"‏إصلاحات الأمان المستقلة","‏Forgejo: نعم (ثغرة Org-mode أُصلحت في v16.0.2، يوليو 2026) · Gitea: عبر Gitea Ltd.","‏عبر GitLab Inc.",[90,91,92],"‏مستجدات v16 (يوليو 2026)","‏Forgejo: مراجعات متعددة الأسطر، JWT خارجي، تعزيز حماية SSRF · Gitea: تصحيح 1.27.1 فقط","‏غير ذات صلة",[94,95,96],"‏الهجرة من Gitea","‏Forgejo: نقل مباشر لقاعدة البيانات حتى Gitea 1.22، وبعدها هجرة كل مستودع على حدة · GitLab: أداة استيراد Gitea","‏استيراد جزئي (مستودعات، إشكاليات، طلبات دمج)",[98,99,100],"‏مثالي لـ","‏فرق من 1 إلى 50 مطوراً، VPS متواضع، CI خفيفة","‏مؤسسة تريد كل شيء في تثبيت واحد، ميزانية بنية تحتية متاحة",{"type":36,"title":102,"body":103},"‏الهجرة من Gitea إلى Forgejo: ما هي فعلاً؟","‏كثيراً ما تُوصف الهجرة من ‏Gitea‏ إلى ‏Forgejo‏ بأنها «أمر واحد» — وهذا صحيح في الحالة البسيطة. لكن ذلك يصحّ حتى Gitea 1.22 فقط: يوضّح Forgejo أن Gitea 1.22 هي آخر نسخة يمكن نقلها بشفافية. منذ Gitea 1.23 تباعدت مخططات قواعد البيانات، والطريق الرسمي هو هجرة المستودعات واحدًا تلو الآخر بأداة الهجرة المدمجة في Forgejo. بالنسبة إلى نسخة 1.22.x أو أقدم، تتلخّص العملية في إيقاف حاوية ‏Gitea‏، وتوجيه نفس وحدة تخزين البيانات إلى حاوية ‏Forgejo‏، ثم التشغيل. يكتشف ‏Forgejo‏ المخطط الموجود ويُطبّق ترحيلاته الخاصة. بضعة نقاط للتحقق قبل البدء: احتفظ بنسخة احتياطية من ‏`app.ini`‏ وقاعدة البيانات، لاحظ نسخة ‏Gitea‏ الحالية (يمرّ النقل أولًا عبر Forgejo v10.0 ثم إلى نسخة أحدث)، وراجع سير عمل CI الخاص بك (صياغتا Forgejo Actions وGitea Actions متقاربتان، فاختبرهما على مستودع قبل التحويل). الهجرة في الاتجاه الآخر — نحو ‏GitLab CE‏ — أطول: يوفر ‏GitLab‏ أداة استيراد من Gitea (مستودعات، إشكاليات، طلبات دمج، معالم، تسميات)، لكن يجب إعادة كتابة خطوط أنابيب ‏CI‏ بصياغة ‏GitLab CI‏.",{"type":105,"title":106,"steps":107},"steps","نشر Forgejo على VPS باستخدام Docker وNginx",[108,111,114,117,120,123,126,129],{"title":109,"body":110},"تجهيز خادم 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 للنظام). تنبيه: المنافذ التي ينشرها Docker تتجاوز قواعد ufw، فلا تنشر إلا ما يلزم (الخطوة التالية).",{"title":112,"body":113},"إنشاء المجلدات وملف Compose","أنشئ مجلدًا مخصصًا: `mkdir -p \u002Fopt\u002Fforgejo && cd \u002Fopt\u002Fforgejo`. ثم أنشئ ملف `compose.yml` يتضمن خدمة `forgejo` تشير إلى الصورة `codeberg.org\u002Fforgejo\u002Fforgejo:17` (وسم الإصدار الرئيسي كما في التوثيق الرسمي)، مع وحدة تخزين دائمة لـ `\u002Fdata`، والمنافذ `127.0.0.1:3000:3000` (HTTP، لا يصل إليه إلا Nginx) و`2222:22` (SSH)، ومتغيرات بيئة أساسية (`FORGEJO__server__DOMAIN=git.your-domain.com`، `FORGEJO__server__SSH_PORT=2222`).",{"title":115,"body":116},"تشغيل Forgejo","شغّل الخدمة: `docker compose up -d`. تحقق من تشغيل الحاوية بـ `docker compose ps`، وراجع السجلات بـ `docker compose logs -f forgejo`. المنفذ 3000 لا يستمع إلا على الجهاز نفسه: تحقق بـ `curl -I http:\u002F\u002F127.0.0.1:3000`، ولا تُكمل معالج التثبيت إلا بعد تفعيل HTTPS (الخطوة 6)، كي لا يُكمله أحد قبلك.",{"title":118,"body":119},"ضبط 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":121,"body":122},"الحصول على شهادة TLS","نفّذ `certbot --nginx -d git.your-domain.com`. يقوم Certbot بضبط إعادة التوجيه HTTP→HTTPS وجدولة التجديد التلقائي. تحقق بـ `curl -I https:\u002F\u002Fgit.your-domain.com` من أن رمز الاستجابة هو `200`.",{"title":124,"body":125},"إتمام التثبيت عبر الواجهة الويب","افتح `https:\u002F\u002Fgit.your-domain.com` في متصفحك. يطلب معالج التثبيت نوع قاعدة البيانات (SQLite للبداية، PostgreSQL للإنتاج)، ورابط النسخة، وإعدادات SSH. أنشئ حساب المسؤول، ثم أوقف التسجيل العام إذا كانت النسخة خاصة (`FORGEJO__service__DISABLE_REGISTRATION=true` في `compose.yml`).",{"title":127,"body":128},"تفعيل عامل CI (اختياري)","قدّمت Forgejo v15.0 ‏(أبريل 2026) سير عمل مبسّطًا لتسجيل العامل عبر الواجهة الويب. انتقل إلى **إدارة الموقع ← Actions ← Runners**، انقر **إنشاء عامل** وانسخ أمر التسجيل. شغّل العامل في حاوية ثانية إلى جانب خدمة `docker:dind` تُنفّذ المهام، كما في مثال Compose في التوثيق الرسمي (الصورة `data.forgejo.org\u002Fforgejo\u002Frunner:13`، والأمر `forgejo-runner daemon --config runner-config.yml`). تجنّب تركيب `\u002Fvar\u002Frun\u002Fdocker.sock`: سيحصل سير العمل على ما يعادل صلاحية root على الخادم.",{"title":130,"body":131},"التحقق من الأمان الأساسي (تحديث v16)","شدّد Forgejo v16.0 حماية SSRF لنسخ Git المرآتية: أصبحت إعدادات `[migrations]` (`ALLOWED_DOMAINS` و`BLOCKED_DOMAINS` و`ALLOW_LOCALNETWORKS`) تُطبَّق على كل عمليات الهجرة والنسخ المرآتي، ولم يعد Git يتبع إعادة توجيه HTTP. يبقى `FORGEJO__migrations__ALLOW_LOCALNETWORKS` معطَّلًا افتراضيًا: إذا احتجت إلى عكس مستودعات داخلية على الشبكة المحلية، فأعلنها في `FORGEJO__migrations__ALLOWED_DOMAINS` بدل فتح الشبكة المحلية كلها، وقيّم الأثر. اترك `FORGEJO__server__LOCAL_ROOT_URL` على قيمته الافتراضية (العنوان المحلي الذي تبلغ به العمليات الداخلية خدمة الويب)، إلا إذا كان SSH يعمل على جهاز آخر. للنسخ المُهاجَرة من Gitea المتأثرة بـ CVE-2026-59774: أعِد توليد `INTERNAL_TOKEN` (`forgejo generate secret INTERNAL_TOKEN`)، ثم أعِد توليد رموز الوصول الشخصية للمستخدمين. لا تستبدل `SECRET_KEY` باستخفاف: فهو يشفّر أسرار 2FA من بين أمور أخرى، ولن يتمكن المفتاح الجديد من فكّ تشفيرها.",{"type":133,"body":134},"tip","‏لمنصة Gitea متأثرة بـ CVE-2026-59774 (النسخ من 1.22.1 إلى 1.27.0): الترقية إلى Gitea 1.27.1 أو نسخة لاحقة تُصلح الثغرة، وهي أول ما يجب فعله. ولا تكون الهجرة إلى Forgejo اختصارًا إلا انطلاقًا من Gitea 1.22.x، آخر نسخة ينقل Forgejo قاعدة بياناتها؛ أما منذ Gitea 1.23 فرقّع Gitea أولًا، ثم هاجر مستودعًا تلو الآخر إن اخترت Forgejo. بالهجرة إلى Forgejo v16.0+، تستفيد أيضًا من تصليب SSRF للنسخ المرآتي، وتعليقات المراجعة متعددة الأسطر، والمصادقة JWT الخارجية — ميزات غير متاحة في Gitea 1.27.1. في جميع الحالات، بعد أي تعرّض مشتبه به، أعِد توليد `INTERNAL_TOKEN`، ودوِّر رموز الوصول الشخصية لمستخدميك وأسرار OAuth، ولا تغيّر `SECRET_KEY` إلا وأنت تعلم أن أسرار 2FA المشفّرة بالمفتاح القديم ستصبح غير مقروءة.",{"type":36,"title":136,"body":137},"‏استكشاف الأخطاء: أخطاء التثبيت الشائعة","‏تغطي الأخطاء أدناه الحالات الأكثر شيوعاً عند النشر الأول أو الهجرة.",{"type":40,"title":139,"items":140},"‏الأخطاء الشائعة وحلولها",[141,142,143,144,145,146],"‏**`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`** — مفتاح مضيف SSH فارغ أو غير مقروء: تحقق من أن وحدة التخزين `\u002Fdata` مُركَّبة وأنها مملوكة لـ UID\u002FGID المعلنين في Compose (1000:1000 افتراضيًا)، ثم احذف ملف المفتاح الفارغ وأعِد تشغيل الحاوية ليُعاد إنشاؤه؛ أما `forgejo admin regenerate keys` فلا يعيد توليد سوى ملف `authorized_keys`","‏**`x509: certificate signed by unknown authority`‏ على خطافات الويب الصادرة** — نسختك تستدعي خدمة داخلية بشهادة موقّعة ذاتياً؛ أضف ‏`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","‏**رفض ميرورينغ المستودع بعد الهجرة إلى v16** — يطبّق Forgejo v16.0 إعدادات `[migrations]` بصرامة، مع `FORGEJO__migrations__ALLOW_LOCALNETWORKS=false` افتراضيًا: قد يُرفض ميرور نحو عنوان في الشبكة المحلية أو يمرّ عبر إعادة توجيه HTTP؛ إن كان ميرورك يستهدف GitLab أو Gitea داخليًا، فأعلن نطاقه في `FORGEJO__migrations__ALLOWED_DOMAINS` بدل فتح الشبكة المحلية كلها",{"type":36,"title":148,"body":149},"‏أيّ أداة تختار حسب وضعك؟","‏للتثبيت الجديد في 2026: ‏Forgejo‏ هو الخيار الافتراضي الذي نوصي به. تجمع الحوكمة المجتمعية، وإصلاحات الأمان المستقلة عن ‏Gitea Ltd.‏ (كما يتجلّى في ثغرة Org-mode ضمن CVE-2026-59774، التي أصلحها Forgejo منذ 30 يوليو 2026)، والتوافق مع الأدوات الموجودة (مشغّلات، خطافات ويب، رموز)، ونفس بصمة الذاكرة كـ‏Gitea‏ — كل هذه العوامل لصالح ‏Forgejo‏ دون مقايضات تُذكر لمشروع جديد. مع ‏Forgejo v16.0‏، تسدّ تعليقات المراجعة متعددة الأسطر والمصادقة ‏JWT‏ الخارجية فجوتين وظيفيتين كانتا أحياناً تُبرّران اختيار ‏GitLab CE‏. إن كنت تشغّل نسخة ‏Gitea‏ محدّثة (‏1.27.1+‏) وتلبّي احتياجاتك، فالهجرة ليست ملحّة — لكن في المرة القادمة التي تفكر فيها بتحديث رئيسي، قيِّم Forgejo في تلك اللحظة، علمًا أن الانتقال منذ Gitea 1.23 يتم مستودعًا تلو الآخر. يُفرض ‏GitLab CE‏ عندما يحتاج فريقك إلى سلسلة ‏DevOps‏ بأكملها في تثبيت واحد — فحص الأمان، الصفحات، بيئات النشر، سجل الحاويات‏ — وتملك البنية التحتية لتشغيله بشكل مريح. على ‏VPS‏ متواضع، إنه ليس الأداة المناسبة.","‏منصتك تعمل على بنية تحتية تتحكم فيها أنت","‏بمجرد اختيار منصتك، تعمل على ‏VPS‏ من ‏ServOrbit‏: وصول ‏root‏، عنوان ‏IPv4‏ مخصص، اختيار نظام التشغيل، بدون قيود تعسفية — بنية تحتية لا تعترض مسيرتك.","‏استعرض VPS Cloud","\u002Fsolutions\u002Fdeveloppeurs",[155,177,196],{"id":156,"slug":157,"slugs":158,"title":162,"excerpt":163,"readTime":164,"views":165,"isPinned":19,"noindex":19,"publishedAt":166,"updatedAt":167,"category":168,"categories":174,"featuredImage":30,"bgImage":31,"posterImage":176,"relatedSolution":30},75,"استضافة-forgejo-على-خادم-vps-الخاص-بك",{"fr":159,"en":160,"ar":157,"es":161},"heberger-forgejo","host-forgejo-on-your-own-vps","alojar-forgejo-en-un-vps","استضافة ‎Forgejo‎ على خادم VPS: دليل شامل 2025","انشر ‎Forgejo‎ على خادم ‎VPS‎ باستخدام ‎Docker‎ و‎SSL‎ و‎Actions runners‎ مع تأمين متقدم. دليل خطوة بخطوة لإقامة مخزن ‎Git‎ مستقل.",10,9,"2026-04-06T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":169,"name":170,"slug":171,"color":172,"icon":173},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[175],{"id":169,"name":170,"slug":171,"color":172,"icon":173},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"id":178,"slug":179,"slugs":180,"title":184,"excerpt":185,"readTime":17,"views":186,"isPinned":19,"noindex":19,"publishedAt":187,"updatedAt":188,"category":189,"categories":193,"featuredImage":30,"bgImage":31,"posterImage":195,"relatedSolution":30},212,"woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps",{"fr":181,"en":182,"ar":179,"es":183},"woodpecker-ci-pipeline-vps-forgejo","woodpecker-ci-and-forgejo-cicd-pipeline-on-a-vps","woodpecker-ci-forgejo-pipeline-cicd-vps","Woodpecker CI وForgejo: خط أنابيب CI\u002FCD على خادم VPS","نشر Woodpecker CI v3 مع Forgejo على خادم VPS: إعداد Docker Compose، تكوين YAML، الأسرار، أجهزة التشغيل متعددة المعماريات واستكشاف أخطاء OAuth.",2,"2026-08-02T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":186,"name":190,"slug":191,"color":192,"icon":191},"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[194],{"id":186,"name":190,"slug":191,"color":192,"icon":191},"\u002Fblog\u002Fcovers\u002Fwoodpecker-ci-pipeline-vps-forgejo-poster.svg",{"id":197,"slug":198,"slugs":199,"title":203,"excerpt":204,"readTime":205,"views":206,"isPinned":19,"noindex":19,"publishedAt":207,"updatedAt":208,"category":209,"categories":214,"featuredImage":30,"bgImage":31,"posterImage":216,"relatedSolution":30},228,"تصليب-الخادم-linux-الأولي",{"fr":200,"en":201,"ar":198,"es":202},"durcissement-serveur-linux-initial","initial-linux-server-hardening","hardening-inicial-servidor-linux","تصليب الخادم ‎Linux‎ الأولي","أنشئ مستخدم ‎sudo‎، وكوّن ‎SSH‎ بالمفاتيح، وفعّل ‎UFW‎ و‎fail2ban‎ على ‎Ubuntu‎ أو ‎Debian‎ في أقل من ساعة.",8,1,"2026-08-06T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":205,"name":210,"slug":211,"color":212,"icon":213},"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[215],{"id":205,"name":210,"slug":211,"color":212,"icon":213},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",true,1794270337205]