[{"data":1,"prerenderedAt":237},["ShallowReactive",2],{"seo-verification":3,"blog-gitlab-ثغرة-خطورة-قصوى-تحديث-النسخة-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-gitlab-ثغرة-خطورة-قصوى-تحديث-النسخة-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":179,"ctaBody":180,"ctaButton":181,"ctaUrl":182,"relatedPosts":183},518,"gitlab-ثغرة-خطورة-قصوى-تحديث-النسخة",{"fr":12,"en":13,"ar":10,"es":14},"gitlab-severite-maximale-mettre-a-jour-instance","gitlab-maximum-severity-update-self-managed-instance","gitlab-severidad-maxima-actualizar-instancia","GitLab CVE-2026-110264: حدّث نسختك المستضافة ذاتيًا","ثغرة GitLab CVE-2026-110264 (CVSS 10.0): الإصدار المصحَّح لكل فرع، النسخ الاحتياطي، التحديث عبر Omnibus أو Docker، ثم فحص آثار الاختراق.",11,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fgitlab-severite-maximale-mettre-a-jour-instance-poster.svg","في 21 أكتوبر 2026، أصدرت GitLab إصلاحات لـ CVE-2026-110264، وهي ثغرة بدرجة 10.0 تتيح تنفيذ تعليمات برمجية على الخادم دون مصادقة. إصلاحات 12 أكتوبر لا تكفي، ولا يوجد أي حل مؤقت رسمي: التحديث وحده يحمي النسخة المستضافة ذاتيًا. يعطيك هذا الدليل الإصدار المطلوب لفرعك، والنسخة الاحتياطية الواجبة قبل البدء، وأوامر Omnibus وDocker، ثم الفحوص اللاحقة. على عقدة واحدة دون محطة وسيطة تكفي جلسة واحدة؛ وإلا فخصّص وقتًا أطول.",[35,39,79,82,104,107,128,132,135,144,162,165,173,176],{"type":36,"title":37,"body":38},"h2","ما الذي يصلحه إصدار GitLab في أكتوبر 2026","في 21 أكتوبر 2026، نشرت GitLab إصدارًا تصحيحيًا حرجًا لنسختيها Community وEnterprise. CVE-2026-110264 هي فيض في الأعداد الصحيحة داخل مُصرِّف التعابير النمطية: بحسب النشرة، قد يتمكن مستخدم غير مصادَق من تنفيذ تعليمات برمجية عشوائية على خادم GitLab. متجه CVSS 3.1 الذي أوردته جهة ثانوية هو `AV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:C\u002FC:H\u002FI:H\u002FA:H`، أي تعرّض عبر الشبكة دون مصادقة ودون تفاعل من المستخدم. تمتد الإصدارات المتأثرة من 7.0 حتى الإصدار المصحَّح لكل فرع.\n\nتدور عدة ثغرات حاليًا حول محرك التعابير النمطية في GitLab، ومن السهل الخلط بينها. CVE-2026-97229، التي صُحّحت في 12 أكتوبر 2026 ضمن الإصدارات 19.4.2 و19.3.5 و19.2.8، كانت تخص مُصرِّف التعابير النمطية في إعدادات CI\u002FCD. تبقى هذه الإصدارات الثلاثة عرضة لـ CVE-2026-110264. أما CVE-2026-85706، وهي اجتياز مسار سبق استغلاله، فمسألة أخرى عالجناها في مقالنا عن الترقيع الطارئ أو الانتقال إلى Gitea. تنبيه: الإصدار 19.3.2 الذي يذكره بوصفه مصحَّحًا هو نفسه عرضة لـ CVE-2026-110264، لأن الفرع 19.3 لا يُحمى إلا ابتداءً من 19.3.6. ويصلح الإصدار نفسه إحدى عشرة ثغرة أخرى بين خطورة عالية ومنخفضة: هي أيضًا تبرر التحديث، لكنها لا تغيّر الإجراء.",{"type":40,"title":41,"headers":42,"rows":46},"comparison","أي إصدار تثبّت بحسب فرعك",[43,44,45],"فرعك","الحالة","الإصدار المطلوب",[47,51,55,59,63,67,71,75],[48,49,50],"19.5.x","متأثر قبل 19.5.1","19.5.1",[52,53,54],"19.4.x","متأثر قبل 19.4.3، بما فيه 19.4.2","19.4.3",[56,57,58],"19.3.x","متأثر قبل 19.3.6، بما فيه 19.3.5","19.3.6",[60,61,62],"19.2.x","متأثر قبل 19.2.9، بما فيه 19.2.8","19.2.9",[64,65,66],"19.1.x","متأثر قبل 19.1.9","19.1.9",[68,69,70],"19.0.x","متأثر قبل 19.0.10","19.0.10",[72,73,74],"18.11.x","متأثر قبل 18.11.13","18.11.13",[76,77,78],"أي إصدار أقدم من 18.11","متأثر، فالنطاق يبدأ من 7.0","اتبع مسار الترقية الرسمي حتى فرع مصحَّح",{"type":36,"title":80,"body":81},"هل أنت معرَّض: القراءة التي تحسم الأمر","السؤال ليس هل نسختك مهمة، بل هل هي مستضافة ذاتيًا وأدنى من الإصدار المصحَّح لفرعها. GitLab.com مصحَّح أصلًا، والمستأجرون على GitLab Dedicated بإصدار 19.3.5-internal0 أو 19.4.2-internal0 فما بعد يتضمنون الإصلاحات. أما أي تثبيت تديره بنفسك، على VPS أو خادم مخصص، فالجواب بسيط: تحقق من رقم الإصدار وقارنه بالجدول أعلاه. كثيرًا ما تظن نسخة 19.4.2 أنها محدَّثة لأنها تلقت إصلاح 12 أكتوبر. وهي ليست كذلك.\n\nلا تذكر النشرة أي إعداد يعطّل الثغرة. والنسخة المتاحة من الإنترنت هي الأكثر استعجالًا بداهةً، لكن النسخة الداخلية ليست بمنأى عن جهاز مخترَق داخل الشبكة. وقت كتابة هذا الدليل، لا تبلّغ GitLab عن أي استغلال لـ CVE-2026-110264، وبحسب المصادر التي راجعناها لا تظهر الثغرة في كتالوج CISA للثغرات المستغَلة. إنها فرصة للتصرف بهدوء، لا سببًا للتأجيل.",{"type":83,"title":84,"steps":85},"steps","تحقق من إصدارك وحضّر نافذة التحديث",[86,89,92,95,98,101],{"title":87,"body":88},"اقرأ الإصدار بدقة","في الواجهة، تعرض قائمة المساعدة رقم الإصدار. في سطر الأوامر: `sudo gitlab-rake gitlab:env:info`. على Docker: `docker exec gitlab cat \u002Fopt\u002Fgitlab\u002Fversion-manifest.txt`. دوّن الرقم كاملًا لا الفرع وحده.",{"title":90,"body":91},"حدّد النسخة المثبّتة","`dpkg -l | grep gitlab` على Debian وUbuntu، و`rpm -q gitlab-ce gitlab-ee` على RHEL وAlmaLinux. اسم الحزمة، `gitlab-ce` أو `gitlab-ee`، يحدد أمر التحديث. كلتا النسختين متأثرة.",{"title":93,"body":94},"تحقق من مسار الترقية","اقفز مباشرة إلى الإصدار المصحَّح فقط إذا لم تكن هناك محطة وسيطة مطلوبة. توضح GitLab أنه لا يمكن الصعود دفعة واحدة إلى أحدث إصدار رئيسي حين يفرض المسار محطات. في هذه الحالة، ثبّت كل محطة برقمها الدقيق. وتعطيك أداة مسار الترقية في التوثيق الرسمي القائمة.",{"title":96,"body":97},"افحص المساحة على القرص","`df -h \u002Fvar\u002Fopt\u002Fgitlab`. يحتاج أرشيف النسخ الاحتياطي والترحيلات إلى مساحة. القسم الممتلئ تقريبًا هو أول سبب لتحديث ينقطع في منتصفه.",{"title":99,"body":100},"أعلن عن فترة التوقف","على عقدة واحدة، تحذّر GitLab من أن الترحيلات يجب أن تنتهي قبل الإقلاع: التوقف أمر متوقع. نبّه الفرق، واترك خطوط الإنتاج الجارية تنتهي، ودوّن حالة الـ runners بالأمر `sudo gitlab-ctl status`.",{"title":102,"body":103},"احتفظ بمخرج للطوارئ","أبقِ جلسة SSH ثانية مفتوحة ورقم الإصدار الحالي في متناولك. إن فشلت محطة، ستعرف بالضبط إلى أي إصدار تعود وأي أرشيف تستعيد.",{"type":36,"title":105,"body":106},"النسخ الاحتياطي أولًا، وما لا يحتويه","تنسخ الحزمة قاعدة البيانات تلقائيًا قبل تثبيت إصدار أحدث. ومع ذلك توصي GitLab بالاحتفاظ بنسختك الاحتياطية الكاملة والحديثة، ولا تعطّل هذه الخطوة التلقائية (الملف الفارغ `\u002Fetc\u002Fgitlab\u002Fskip-auto-backup` موجود لهذا الغرض). الأمر هو `sudo gitlab-backup create`، أو `docker exec -t gitlab gitlab-backup create` لحاوية اسمها gitlab. الأرشيف ملف `.tar` واحد، ويحدد المعامل `backup_path` موضعه محليًا.\n\nالفخ المعتاد: هذه النسخة لا تحتوي على الإعدادات. انسخ على حدة `\u002Fetc\u002Fgitlab\u002Fgitlab-secrets.json` و`\u002Fetc\u002Fgitlab\u002Fgitlab.rb`، مثلًا بالأمر `sudo mkdir -p \u002Froot\u002Fgitlab-config-backup && sudo cp -a \u002Fetc\u002Fgitlab\u002Fgitlab-secrets.json \u002Fetc\u002Fgitlab\u002Fgitlab.rb \u002Froot\u002Fgitlab-config-backup\u002F`. من دون `gitlab-secrets.json`، تترك الاستعادة البيانات المشفرة غير مقروءة، مثل متغيرات CI\u002FCD وأسرار المصادقة الثنائية. ثم انقل النسختين خارج الجهاز إلى تخزين منفصل. لا يمكن الرجوع إلى الخلف إلا بنسخة احتياطية للقاعدة مأخوذة من الإصدار نفسه والنسخة نفسها اللذين تستعيد إليهما.",{"type":83,"title":108,"steps":109},"التحديث بحسب طريقة التثبيت",[110,113,116,119,122,125],{"title":111,"body":112},"Debian وUbuntu (حزمة Omnibus)","`sudo apt update && sudo apt install gitlab-ce=\u003Cversion>-ce.0`\nاستبدل `\u003Cversion>` بإصدار الجدول الخاص بفرعك. لنسخة Enterprise: `sudo apt install gitlab-ee=\u003Cversion>-ee.0`.",{"title":114,"body":115},"RHEL وAlmaLinux وOracle Linux","`sudo dnf install gitlab-ce-\u003Cversion>-ce.0.el9`\nاستخدم `.el8` على جهاز بالإصدار 8، و`gitlab-ee-\u003Cversion>-ee.0.el9` لنسخة Enterprise.",{"title":117,"body":118},"Docker عبر docker run","`sudo docker stop gitlab`\n`sudo docker rm gitlab`\n`sudo docker pull gitlab\u002Fgitlab-ce:\u003Cversion>-ce.0`\nثم أعد تشغيل `docker run` بخياراتك الأصلية تمامًا: المنافذ نفسها، والمجلدات نفسها لـ `config` و`logs` و`data`، و`--shm-size` نفسه. تعيش البيانات في المجلدات لا في الحاوية المحذوفة.",{"title":120,"body":121},"Docker عبر Compose","عدّل وسم الصورة في `docker-compose.yml` ليشير إلى `\u003Cversion>-ce.0`، ثم:\n`docker compose pull`\n`docker compose up -d`\n`docker compose logs -f gitlab`\nإذا كان ملفك يستخدم وسمًا متحركًا فثبّته: الإصدار المثبَّت يجعل التحديث التالي مقروءًا.",{"title":123,"body":124},"طبّق الإعدادات","على Docker، تعيد GitLab ضبط نفسها وترقّي نفسها عند أول إقلاع للحاوية. وعند التثبيت بالحزمة، بعد أي تعديل على `gitlab.rb`، طبّقه بالأمر `sudo gitlab-ctl reconfigure`. اترك الترحيلات تصل إلى نهايتها قبل أن تحكم بأن النسخة عالقة.",{"title":126,"body":127},"افحص النتيجة","`sudo gitlab-ctl status`\n`sudo gitlab-rake gitlab:env:info`\nيجب أن يطابق الإصدار المعروض إصدار الجدول. افتح الواجهة، وتحقق من أن مستودعًا يُستنسخ، وأن خط إنتاج يبدأ، وأن الـ runners تعيد الاتصال.",{"type":129,"title":130,"body":131},"tip","جرّب على نسخة طبق الأصل حين تكون النسخة حرجة","استعد النسخة الاحتياطية على جهاز مؤقت بالإصدار نفسه، وحدّثه، ثم قِس مدة الترحيلات. تحصل على المدة الفعلية للتوقف وتكتشف المفاجآت دون المساس بالإنتاج. دمّر النسخة بعد ذلك: فهي تحتوي أسرارك.",{"type":36,"title":133,"body":134},"التوقف والترحيلات والمسارات القديمة: ثلاث مخاوف","تحديث منصة شيفرة في الإنتاج مخيف لأسباب محددة، وتجيب عنها نشرة GitLab بوضوح. ترحيلات قاعدة البيانات: يتضمن الإصدار بعضها، عادية في 19.4.3 و19.3.6، وما بعد النشر في 19.4.3. التوقف: على عقدة واحدة هو متوقع لأن الترحيلات يجب أن تنتهي قبل الإقلاع؛ وعلى عدة عقد تُطبَّق إجراءات التحديث دون انقطاع. الإصدارات القديمة: دون 18.11، اتبع مسار الترقية الرسمي محطة بمحطة دون تخطي أي واحدة.\n\nما لا تفقده، بشرط وجود النسخة الاحتياطية: مستودعاتك وتذاكرك والـ runners المسجّلة ورموزك. الخوف من إفساد كل شيء مشروع، لكن الانتظار هو الرهان الأخطر، لأن التفاصيل التقنية للثغرة يُنتظر أن تُنشر علنًا في متتبع المسائل بعد 90 يومًا من صدور الإصلاح. الأفضل أن تحدّث قبل ذلك اليوم.",{"type":136,"title":137,"items":138},"ul","ريثما تُحضَّر النافذة: قلّل التعرض دون أوهام",[139,140,141,142,143],"**لا حل مؤقتًا رسميًا** — لا تسرد نشرة GitLab أي تخفيف: الوحيد هو التحديث.","**قيّد الوصول الشبكي** — حصر النسخة في شبكتك الخاصة الافتراضية أو في قائمة عناوين يقلل المهاجمين المحتملين. ليس إجراءً رسميًا، بل إجراء انتظار فحسب.","**لا تخترع قاعدة ترشيح** — لا يوجد مرشح nginx منشور يغطي هذه الثغرة: كتابة واحد من الذاكرة تعطي شعورًا زائفًا بالحماية.","**راقب من الآن** — طبّق قاعدتي الكشف اللتين نشرتهما GitLab، وهما معروضتان أدناه، لتعرف هل جرّب أحدهم شيئًا.","**حدّد موعدًا نهائيًا** — دوّن تاريخ التحديث لدى الفريق: إجراء الانتظار بلا تاريخ يتحول إلى عادة.",{"type":83,"title":145,"steps":146},"افحص الآثار بعد التحديث",[147,150,153,156,159],{"title":148,"body":149},"طبّق قاعدتي الكشف","تنشر GitLab قاعدتين للنسخ المستضافة ذاتيًا: \"Onigmo native worker crash\" و\"Org mode render error burst\". خذهما من النشرة الرسمية إلى أداة المراقبة أو السجلات لديك.",{"title":151,"body":152},"أعد قراءة سجلات GitLab","`sudo ls -la \u002Fvar\u002Flog\u002Fgitlab` ثم `sudo gitlab-ctl tail`. ابحث عن انهيارات متكررة لعمليات العمل وأخطاء عرض تتركز في فترة قصيرة، حول 21 أكتوبر أو قبله.",{"title":154,"body":155},"افحص الحسابات والرموز","في منطقة الإدارة، راجع المستخدمين الجدد والمسؤولين ورموز الوصول الشخصية ومفاتيح النشر. كل ما ليس له صاحب معروف يستحق تفسيرًا.",{"title":157,"body":158},"افحص الـ runners والمشاريع","اسرد الـ runners المسجّلة والـ webhooks. runner مجهول أو hook أُضيف حديثًا نقطة دخول كلاسيكية بعد السيطرة على النسخة.",{"title":160,"body":161},"احتفظ بالسجلات","انسخ السجلات المفيدة خارج الجهاز قبل تركها تُدوَّر. إن ظهر شك بعد أسبوع، سيكون لديك ما تقارن به.",{"type":36,"title":163,"body":164},"إن بقي الشك: اعتبر النسخة مخترَقة","غياب التنبيه لا يثبت غياب الاختراق: قاعدتا GitLab تكشفان أعراضًا لا كل عمليات التسلل. إن ظهر مؤشر (قاعدة كشف انطلقت، حساب أو runner مجهول، انهيارات متجمعة)، فاعتبر النسخة مخترَقة. وبلا مؤشر، يكفي التعرّض وحده لتبرير التحديث، لا تدوير كل الأسرار. وإن وُجد مؤشر، فجدّد أسرار النسخة ومتغيرات CI\u002FCD ورموز الـ runners ورموز الوصول، وأعد تسجيل الـ runners. أي متغير في خط الإنتاج يحمل مفتاح نشر أو كلمة مرور قاعدة بيانات يجب تغييره عند مصدره، لا في GitLab وحده. الأمر مرهق، وهو ثمن منصة تحتفظ بشيفرتك ومنافذ إنتاجك.",{"type":136,"title":166,"items":167},"استكشاف الأعطال: العقبات الشائعة",[168,169,170,171,172],"**`E: Version '\u003Cversion>-ce.0' for 'gitlab-ce' was not found`** — لا يعرف apt هذا الرقم بعد: أعد تشغيل `sudo apt update`، وتأكد من إعداد مستودع GitLab، ثم راجع كتابة الرقم واللاحقة `-ce.0`.","**تعذّر الصعود مباشرة إلى الإصدار المطلوب** — نسختك تفرض محطات. ثبّتها واحدة واحدة برقمها الدقيق واترك الترحيلات تنتهي بين محطتين.","**صفحة خطأ 502 بعد التحديث مباشرة** — ما زالت الترحيلات جارية. انتظر، وتابع `sudo gitlab-ctl tail`، ولا تعد تشغيل الخدمات يدويًا قبل انتهائها.","**الحاوية تعمل لكنها فارغة** — أُعيد تشغيل `docker run` دون المجلدات الأصلية. أوقفها وأعد إنشاءها بالمسارات نفسها لـ `config` و`logs` و`data`.","**تعذّرت الاستعادة بعد رجوع إلى الخلف** — يجب أن تأتي النسخة الاحتياطية من الإصدار نفسه والنسخة نفسها. استعد بالإصدار الذي أنتجها ثم حدّث من جديد.",{"type":36,"title":174,"body":175},"منصة شيفرة على VPS: ما الذي يتغير","حين تعمل منصتك على VPS تملك فيه صلاحيات root، فأنت تقرر نافذة التحديث وموضع النسخ الاحتياطية ومدة الاحتفاظ بالسجلات. لا أحد يفرض عليك جدولًا، ولا أحد يحدّث نيابة عنك: هذا هو الوجه الآخر للصفقة. خصّص مساحة للأرشيف ونسخة خارج الجهاز ووسيلة لاختبار الاستعادة، كما يصف دليلنا حول النسخ الاحتياطي باستخدام restic. ولتثبيت GitLab، يعطيك دليلنا لتثبيت GitLab CE على VPS نقطة الانطلاق. وإن فضّلت تفويض إدارة الخادم، فخيار إدارة VPS موجود؛ ويُقدَّم هذا الدليل كما هو، دون دعم لنسختك.",{"type":36,"title":177,"body":178},"التوثيق الرسمي","نشرة الإصدار التصحيحي GitLab 19.5.1: https:\u002F\u002Fdocs.gitlab.com\u002Freleases\u002Fpatches\u002Fpatch-release-gitlab-19-5-1-released\u002F\n\nنشرة 12 أكتوبر 2026: https:\u002F\u002Fdocs.gitlab.com\u002Freleases\u002Fpatches\u002Fpatch-release-gitlab-19-4-2-released\u002F\n\nتحديث حزمة Linux: https:\u002F\u002Fdocs.gitlab.com\u002Fupdate\u002Fpackage\u002F\n\nتحديث تثبيت Docker: https:\u002F\u002Fdocs.gitlab.com\u002Finstall\u002Fdocker\u002Fupgrade\u002F\n\nالنسخ الاحتياطي لـ GitLab: https:\u002F\u002Fdocs.gitlab.com\u002Fadministration\u002Fbackup_restore\u002Fbackup_gitlab\u002F\n\nتقرير BleepingComputer: https:\u002F\u002Fwww.bleepingcomputer.com\u002Fnews\u002Fsecurity\u002Fgitlab-warns-of-new-max-severity-code-execution-vulnerability\u002F","منصة شيفرة على خادم يخصّك فعلًا","يتيح لك VPS بصلاحيات root اختيار نافذة التحديث والنسخ الاحتياطية والسجلات. وإن لم ترغب في تولي التحديث بنفسك، فخيار إدارة VPS متاح، ويجيبك support@servorbit.com عن أسئلتك.","اطّلع على حل المطورين","\u002Fsolutions\u002Fdeveloppeurs",[184,203,223],{"id":185,"slug":186,"slugs":187,"title":191,"excerpt":192,"readTime":193,"views":18,"isPinned":19,"publishedAt":194,"updatedAt":195,"category":196,"categories":197,"featuredImage":30,"bgImage":31,"posterImage":199,"relatedSolution":200},365,"cve-2026-85706-gitlab-تصحيح-عاجل-أو-هجرة-إلى-gitea",{"fr":188,"en":189,"ar":186,"es":190},"gitlab-cve-2026-85706-migration-gitea-vps","cve-2026-85706-gitlab-emergency-patch-or-gitea-migration","cve-2026-85706-gitlab-parche-urgente-o-migracion-gitea","CVE-2026-85706 في ‎GitLab‎: تصحيح عاجل أو الهجرة إلى ‎Gitea","CVE-2026-85706 ‎(CVSS 10.0)‎ تكشف ‎secrets.yml‎ ومفاتيح ‎SSH‎ في ‎GitLab‎ 18.7–19.3.1. التحديث إلى 19.3.2 فوراً أو الهجرة إلى ‎Gitea‎ على خادم ‎VPS‎.",9,"2026-09-19T00:00:00+00:00","2026-10-20T23:18:06+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[198],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fgitlab-cve-2026-85706-migration-gitea-vps-poster.svg",{"categorySlug":201,"appSlug":202},"التطوير","gitea",{"id":204,"slug":205,"slugs":206,"title":210,"excerpt":211,"readTime":212,"views":213,"isPinned":19,"publishedAt":214,"updatedAt":215,"category":216,"categories":220,"featuredImage":30,"bgImage":31,"posterImage":222,"relatedSolution":30},235,"تثبيت-gitlab-ce-على-vps-دليل-شامل",{"fr":207,"en":208,"ar":205,"es":209},"installer-gitlab-ce-vps","install-gitlab-ce-on-a-vps-complete-guide","instalar-gitlab-ce-en-un-vps-guia-completa","تثبيت GitLab CE على VPS: دليل شامل","انشر GitLab CE على VPS باستخدام Docker Compose. يغطي CVE-2026-90970 (CVSS 9.9): ثغرة RCE في AI Gateway وإصداراتها وأوامر التحديث.",18,3,"2026-08-07T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":213,"name":217,"slug":218,"color":219,"icon":218},"النشر","deploiement","bg-success\u002F10 text-success",[221],{"id":213,"name":217,"slug":218,"color":219,"icon":218},"\u002Fblog\u002Fcovers\u002Finstaller-gitlab-ce-vps-poster.svg",{"id":224,"slug":225,"slugs":226,"title":230,"excerpt":231,"readTime":17,"views":18,"isPinned":19,"publishedAt":232,"updatedAt":195,"category":233,"categories":234,"featuredImage":30,"bgImage":31,"posterImage":236,"relatedSolution":30},347,"restic-s3-3-2-1-backup-strategy-vps-ar",{"fr":227,"en":228,"ar":225,"es":229},"backup-vps-restic-s3-3-2-1","restic-s3-3-2-1-backup-strategy-vps","estrategia-3-2-1-backup-vps-restic-s3","استراتيجية 3-2-1 لخادم VPS مع Restic وS3","ابنِ استراتيجية 3-2-1 كاملة على خادم VPS: Restic إلى Backblaze B2 أو Cloudflare R2، ومؤقّت systemd، وسياسة احتفاظ، واختبار استعادة مؤتمت.","2026-09-10T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[235],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fbackup-vps-restic-s3-3-2-1-poster.svg",1793251190232]