[{"data":1,"prerenderedAt":220},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-komodo-على-vps-تنسيق-docker-وgitops-للخوادم-ma-ar":6,"promo-bar-likely":219},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-استضافة-komodo-على-vps-تنسيق-docker-وgitops-للخوادم-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":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":148,"ctaBody":149,"ctaButton":150,"ctaUrl":151,"relatedPosts":152},191,"استضافة-komodo-على-vps-تنسيق-docker-وgitops-للخوادم",{"fr":12,"en":13,"ar":10,"es":14},"self-host-komodo-vps","self-host-komodo-on-a-vps-multi-server-docker-and-gitops","alojar-komodo-en-un-vps","استضافة Komodo على VPS: تنسيق Docker وGitOps للخوادم","انشر ‌Komodo على ‌VPS من ‌ServOrbit لإدارة حزم ‌Docker وخطوط ‌GitOps عبر خوادم متعددة من لوحة تحكم واحدة — ثنائي ‌Rust، مفتوح المصدر.",9,2,false,"2026-07-25T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"النشر","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-komodo-vps-poster.svg",{"categorySlug":33,"appSlug":34},"نشر-التطبيقات-وdevops","komodo","إدارة ‌Docker على خادم واحد أمر بسيط. على عشرة خوادم، سرعان ما يتحول الأمر إلى فوضى: عشر جلسات ‌SSH، وعشرة ملفات ‌compose، ولا سجل مركزي. يحل ‌Komodo (‌GPL-3.0، أكثر من 12,000 نجمة على ‌GitHub، الإصدار ‌v2.x) هذه المشكلة ببنية ‌Core\u002FPeriphery: لوحة تحكم واحدة لتنسيق جميع خوادمك، وإطلاق عمليات النشر من ‌Git، وتتبع كل إجراء في سجل مراجعة. مكتوب بلغة ‌Rust، يستهلك ‌Core أقل من 256 ‌MB في حالة الخمول — يعمل بسهولة على أصغر ‌VPS من ‌ServOrbit.",[37,41,51,54,82,85,103,141,144],{"type":38,"title":39,"body":40},"h2","لماذا Komodo بدلاً من Portainer أو Dockge؟","‌Portainer و‌Dockge واجهتا إدارة لخادم واحد: تقرآن ‌socket ‌Docker المحلي وتعرضان ما يعمل على تلك الآلة فقط. بمجرد امتلاكك خادمين أو أكثر، تحتاج إلى تبويبين، وأن تتذكر أي خدمة تعمل أين، وتكرار كل تغيير يدوياً. يكسر ‌Komodo هذا الحاجز ببنية ‌Core\u002FPeriphery: ‌Core مركزي يُشغّل وكلاء ‌Periphery خفيفة على كل آلة. تنشر وتعيد التشغيل وتحدّث أي حزمة من واجهة واحدة، مع سجل كامل بمن فعل ماذا ومتى.",{"type":42,"title":43,"items":44},"ul","ما يضيفه Komodo فوق إدارة الحاويات",[45,46,47,48,49,50],"‌GitOps أصلي — اربط مستودع ‌Git، عرّف ‌Procedure نشر، وشغّلها تلقائياً عند كل ‌`git push` عبر ‌webhook ‌HMAC.","‌Procedures قابلة لإعادة الاستخدام — سلسل سحب الصورة وترحيل قاعدة البيانات وإعادة تشغيل الحزمة وإشعار ‌Slack في ‌workflow واحد قابل للإصدار.","‌Docker Swarm — أدِر خدمات ‌Swarm والنسخ والتحديثات المتدحرجة من نفس واجهة حزم ‌Compose.","تنبيهات ‌Slack\u002FDiscord أصلية — أعدّ قنوات تنبيه لإخفاقات النشر والحاويات الموقوفة والموارد الحرجة.","‌RBAC متعدد المستخدمين — امنح صلاحيات دقيقة حسب الدور (‌viewer, ‌builder, ‌deployer) دون مشاركة حساب المسؤول.","‌API REST كاملة — أتمتة النشر من خط ‌CI\u002FCD الخاص بك (‌GitHub Actions, ‌Woodpecker, ‌Forgejo) دون المرور بالواجهة الرسومية.",{"type":38,"title":52,"body":53},"بنية Core\u002FPeriphery في الممارسة","‌Core هو العقل: يخزّن الإعدادات في ‌FerretDB (طبقة متوافقة مع ‌MongoDB)، ويعرض واجهة الويب على المنفذ ‌9120 ويستقبل الـ ‌webhooks. وكلاء ‌Periphery هم الأذرع: كل منها يعمل على خادم هدف، ويُوكّل ‌socket ‌Docker للآلة إلى ‌Core عبر قناة مشفّرة وينفّذ الأوامر التي يرسلها ‌Core. يضمن زوج المفاتيح غير المتماثل المولَّد عند التهيئة أن ‌Core الخاص بك فقط يستطيع التحكم بوكلائك — لا أسرار إضافية تحتاج لإدارتها.",{"type":55,"title":56,"steps":57},"steps","نشر Komodo على خادم VPS ServOrbit",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"طلب الخادم الافتراضي","خادم افتراضي بـ ‌1 vCPU \u002F 1 GB RAM على ‌Ubuntu 24.04 LTS كافٍ لمستوى التحكم في ‌Komodo. يستهلك ‌Core Rust أقل من ‌256 MB في حالة الخمول. إذا كنت تخطط لتشغيل خدمات أخرى على نفس الخادم، فيُنصح بـ ‌2 GB RAM.",{"title":62,"body":63},"النشر من marketplace ServOrbit","في ‌espace client ‌ServOrbit، اذهب إلى ‌Marketplace ← نشر التطبيقات وـ‌DevOps ← ‌Komodo وانقر ‌Deploy. أدخل نطاقك أو نطاقاً فرعياً — مطلوب لـ ‌`KOMODO_HOST`. يولّد ‌playbook تلقائياً أسرار ‌JWT وزوج مفاتيح ‌Core\u002FPeriphery وكلمة مرور المسؤول، ثم يشغّل الخدمات.",{"title":65,"body":66},"تسجيل الدخول والتحقق من الوكيل المحلي","افتح ‌`https:\u002F\u002Fyour-domain.com:9120` وسجّل الدخول بـ ‌`admin` وكلمة المرور المعروضة في ‌espace client. في قائمة ‌Servers يجب أن ترى خادم ‌'Local' مسجّلاً بالفعل — هذا هو وكيل ‌Periphery على خادم الاستضافة. غيّر كلمة مرورك من إعدادات الحساب في أول جلسة.",{"title":68,"body":69},"ربط خادم بعيد عبر Periphery","على كل خادم افتراضي إضافي لإدارته، ثبّت وكيل ‌Periphery: ‌`docker run -d --restart=unless-stopped --network host -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock ghcr.io\u002Fmoghtech\u002Fkomodo-periphery:latest`. ثم في ‌Komodo، اذهب إلى ‌Servers ← ‌Add Server، أدخل عنوان ‌IP والمنفذ ‌8120. يظهر أسطول خوادمك فوراً في لوحة التحكم.",{"title":71,"body":72},"إنشاء أول حزمة من marketplace","في ‌Komodo، اذهب إلى ‌Stacks ← ‌New Stack. اختر الخادم الهدف، والصق ‌YAML لـ ‌Docker Compose أو أشر إلى مسار مستودع ‌Git، وانقر ‌Deploy. يكتب ‌Komodo الملف على الخادم البعيد، يشغّل ‌`docker compose up -d` ويعرض السجلات في الوقت الفعلي.",{"title":74,"body":75},"إعداد تنبيهات Slack أو البريد الإلكتروني","في ‌Komodo، اذهب إلى ‌Alerters ← ‌New Alerter. اختر النوع (‌Slack أو ‌Discord أو بريد إلكتروني) والصق رابط ‌webhook أو عنوان الوجهة. ثم اربط المنبّه بمواردك عبر قسم ‌Alerts في كل مورد. تصل الإشعارات فور حدوث إخفاق في النشر أو إيقاف حاوية.",{"title":77,"body":78},"إعداد خط أنابيب GitOps","أضف ‌webhook في مستودع ‌GitHub يشير إلى ‌`https:\u002F\u002Fyour-domain.com\u002Fapi\u002Fwebhook\u002Fkomodo` مع سر ‌HMAC المعرّف في ‌Komodo. أنشئ ‌Procedure مع خطوات النشر. سيُشغّل كل ‌`git push` خط الأنابيب تلقائياً بعد التحقق من التوقيع.",{"title":80,"body":81},"دمج CI\u002FCD عبر API REST","يعرض ‌Komodo ‌API REST كاملة على ‌`\u002Fapi`. من ‌GitHub Actions، أطلق النشر باستدعاء ‌`POST \u002Fapi\u002Fexecute\u002Fprocedure\u002F\u003Cname>` ورمز ‌API الخاص بحساب الخدمة. يتيح لك هذا الدمج تسلسل الاختبارات وبناء الصور والنشر في ‌workflow واحد.",{"type":38,"title":83,"body":84},"GitOps مع webhooks: النشر عند كل push","تقوم دورة ‌GitOps في ‌Komodo على ثلاثة مكوّنات: مستودع ‌Git، و‌webhook ‌HTTP، و‌Procedure. في ‌GitHub، أنشئ ‌webhook في ‌Settings ← ‌Webhooks، وأشر إلى ‌`https:\u002F\u002Fyour-domain.com\u002Fapi\u002Fwebhook\u002Fkomodo`، واختر نوع المحتوى ‌`application\u002Fjson` وعرّف سراً. في ‌Komodo، في قسم ‌Webhooks لـ ‌Stack أو ‌Procedure، الصق هذا السر ذاته — يحسب ‌Komodo ‌HMAC SHA-256 لكل حمولة واردة ويرفض الطلبات التي لا تتطابق توقيعاتها.\n\nتسلسل ‌Procedure النشر النموذجي ثلاثة إجراءات: ‌`PullImage` (تحميل أحدث صورة)، ‌`DeployStack` (إعادة إنشاء الحاويات)، ثم ‌`SendAlert` (إخطار قناة ‌Slack). إذا فشلت أي خطوة، يوقف ‌Komodo ‌Procedure ويرسل الخطأ كاملاً إلى منبّهك.\n\nتفصيل مهم: يتحقق ‌Komodo من الفرع المدفوع مقابل الفرع المُعدّ في ‌Stack قبل الإطلاق. ‌push على فرع ميزة لن يُطلق نشر إنتاج، حتى لو كان ‌webhook يستهدف نفس ‌URL. أعدّ ‌Stack لكل بيئة (‌staging على ‌`dev`، الإنتاج على ‌`main`) وستحصل على خط ترقية آلي كامل.",{"type":55,"title":86,"steps":87},"إنشاء Procedure في Komodo: سحب، ترحيل، إعادة تشغيل",[88,91,94,97,100],{"title":89,"body":90},"إنشاء Procedure","في ‌Komodo، اذهب إلى ‌Procedures ← ‌New Procedure. أعطها اسماً (‌`deploy-app`) واختر الخادم الهدف. ‌Procedure هي قائمة مرتبة من الخطوات — لكل خطوة نوع (‌PullImage, ‌DeployStack, ‌RunCommand, ‌SendAlert) ومعاملات.",{"title":92,"body":93},"إضافة خطوة PullImage","انقر ‌Add Step ← ‌PullImage. أدخل اسم الصورة (مثلاً ‌`ghcr.io\u002Fmyorg\u002Fmyapp:latest`) والخادم الذي ستُسحب عليه. إذا كانت صورتك في ‌registry خاص، أضف بيانات الاعتماد في ‌Settings ← ‌Registries قبل هذه الخطوة.",{"title":95,"body":96},"إضافة أمر الترحيل","انقر ‌Add Step ← ‌RunCommand. في حقل ‌Command، أدخل أمر الترحيل لتشغيله داخل الحاوية. فعّل خيار ‌'Stop on error': إذا فشل الترحيل، تتوقف ‌Procedure قبل إعادة تشغيل الخدمة، مما يمنع ترك تطبيق بمخطط بيانات غير متسق.",{"title":98,"body":99},"إضافة إعادة تشغيل الحزمة","انقر ‌Add Step ← ‌DeployStack واختر ‌Stack المستهدفة. يشغّل ‌Komodo ‌`docker compose up -d --pull never` ويعيد إنشاء الحاويات المعدّلة. متغيرات البيئة المعرّفة في ‌Stack تُمرَّر تلقائياً.",{"title":101,"body":102},"إضافة إشعار الانتهاء","انقر ‌Add Step ← ‌SendAlert واختر منبّه ‌Slack أو ‌Discord الخاص بك. يمكنك تضمين متغيرات السياق في الرسالة (‌`{{ procedure.name }}`، ‌`{{ server.name }}`) لتحديد أي ‌Procedure على أي خادم أُنجزت للتو.",{"type":104,"title":105,"headers":106,"rows":111},"comparison","Komodo مقابل Portainer مقابل Dockge",[107,108,109,110],"الميزة","Komodo","Portainer CE","Dockge",[112,117,121,126,129,133,136],[113,114,115,116],"خوادم متعددة أصلياً","✅ Core\u002FPeriphery غير محدودة","⚠️ وكلاء Edge (مدفوع)","❌ مضيف واحد فقط",[118,119,120,120],"GitOps \u002F webhooks","✅ أصلي، HMAC محقَّق","❌ غير أصلي",[122,123,124,125],"Procedures \u002F أتمتة","✅ محرك مدمج","⚠️ محدود CE","❌ لا",[127,128,128,125],"API REST","✅ كاملة",[130,131,132,125],"تنبيهات أصلية","✅ Slack وDiscord والبريد","⚠️ جزئي CE",[134,135,132,125],"سجل المراجعة","✅ جميع العمليات",[137,138,139,140],"الرخصة \u002F السعر","GPL-3.0، مجاني","Zlib (CE مجاني) \u002F Business مدفوع","MIT، مجاني",{"type":38,"title":142,"body":143},"استكشاف الأخطاء: المشكلات الشائعة وحلولها","**وكيل Periphery غير متاح.** الخطأ الأكثر شيوعاً عند إضافة خادم جديد. تحقق أولاً من أن جدار الحماية على الخادم البعيد يسمح بالاتصالات الواردة على المنفذ ‌8120 من ‌IP الخاص بـ ‌Core. ثم تحقق من أن قيمة ‌`KOMODO_HOST` لوكيل ‌Periphery تتطابق مع ‌IP أو النطاق الذي يستخدمه ‌Core للوصول إليه.\n\n**فشل سحب الصورة.** يُرجع ‌Komodo هذا الخطأ عندما لا يكون ‌registry الخاص متاحاً أو تكون بيانات الاعتماد مفقودة. أضف بياناتك في ‌Settings ← ‌Registries قبل إطلاق السحب. إذا كانت الصورة عامة وظل الخطأ قائماً، تحقق من وصول الخادم الهدف إلى الإنترنت على المنفذ ‌443.\n\n**Webhook لا يُطلَق.** سببان رئيسيان: السر ‌HMAC المعدّ في ‌Komodo لا يطابق ذلك المُدخَل في ‌GitHub، أو أن ‌URL الخاص بـ ‌Core غير متاح من خوادم ‌GitHub. تحقق من علامة التبويب ‌'Recent Deliveries' في ‌GitHub لرؤية كود ‌HTTP المُعاد — يشير ‌`401` إلى سر خاطئ، بينما يشير ‌`timeout` إلى مشكلة شبكة. تحقق أيضاً من أن فرع الـ ‌push يطابق الفرع المُعدّ في ‌Stack أو ‌Procedure.\n\n**بطء الإقلاع الأول (FerretDB).** يُجري ‌FerretDB تهيئة داخلية لقاعدة البيانات عند الإطلاق الأول، مما قد يستغرق 30 إلى 60 ثانية قبل أن تستجيب واجهة ‌Komodo. إذا رأيت خطأ اتصال مباشرة بعد النشر، انتظر دقيقة وأعد تحميل الصفحة قبل تشخيص مشكلة تثبيت.",{"type":145,"title":146,"body":147},"tip","Komodo + Dockge: الأفضل من العالمين","‌Komodo و‌Dockge لا يتعارضان. ‌Dockge رائع لتحرير ملفات ‌Compose بشكل تفاعلي على آلة واحدة (واجهة ‌YAML مع تلوين الصياغة). ‌Komodo يتولى التنسيق متعدد الخوادم ونشر ‌Git والـ ‌workflows. انشر ‌Dockge عبر ‌Komodo على آلات التطوير، واستخدم ‌Komodo لتنسيق نشر الإنتاج.","خوادمك تحت إشراف GitOps","انشر Komodo على خادم VPS من ServOrbit وأدِر أسطول Docker بأكمله من لوحة تحكم موحّدة — GitOps، webhooks، سجل مراجعة.","نشر Komodo","\u002Fapplications\u002Fنشر-التطبيقات-وdevops\u002Fkomodo",[153,177,195],{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":162,"views":163,"isPinned":19,"noindex":19,"publishedAt":164,"updatedAt":165,"category":166,"categories":172,"featuredImage":29,"bgImage":30,"posterImage":174,"relatedSolution":175},161,"استضافة-dockge-على-vps-مدير-مرئي-لـ-docker-compose",{"fr":157,"en":158,"ar":155,"es":159},"self-host-dockge-vps","how-to-self-host-dockge-on-a-vps-visual-docker-compose-manager","alojar-dockge-en-un-vps","استضافة Dockge على VPS: مدير مرئي لـ Docker Compose","انشر Dockge على خادم VPS الخاص بك — مدير مرئي خفيف ومفتوح المصدر لحُزم Docker Compose. أنشئ تطبيقات متعددة الحاويات وحرّرها وراقبها من واجهة ويب أنيقة، دون سطر الأوامر.",4,1,"2026-07-03T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":167,"name":168,"slug":169,"color":170,"icon":171},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[173],{"id":167,"name":168,"slug":169,"color":170,"icon":171},"\u002Fblog\u002Fcovers\u002Fself-host-dockge-vps-poster.svg",{"categorySlug":33,"appSlug":176},"dockge",{"id":178,"slug":179,"slugs":180,"title":184,"excerpt":185,"readTime":186,"views":18,"isPinned":19,"noindex":19,"publishedAt":187,"updatedAt":188,"category":189,"categories":190,"featuredImage":29,"bgImage":30,"posterImage":192,"relatedSolution":193},41,"نشر-تطبيقاتك-باستخدام-coolify-على-vps",{"fr":181,"en":182,"ar":179,"es":183},"deployer-avec-coolify","deploy-your-applications-with-coolify-on-a-vps","desplegar-aplicaciones-con-coolify-en-un-vps","نشر تطبيقاتك باستخدام ‏Coolify على خادم ‏VPS","دليل شامل لنشر ‏Coolify على خادم ‏VPS: التثبيت، وإعداد ‏HTTPS، وربط ‏Git، ونشر أول تطبيق، وقواعد البيانات، والنسخ الاحتياطية، واستكشاف الأخطاء.",12,"2026-05-10T00:00:00+00:00","2026-10-31T01:54:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[191],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-coolify-poster.svg",{"categorySlug":33,"appSlug":194},"coolify",{"id":196,"slug":197,"slugs":198,"title":202,"excerpt":203,"readTime":204,"views":18,"isPinned":19,"noindex":19,"publishedAt":205,"updatedAt":206,"category":207,"categories":213,"featuredImage":29,"bgImage":30,"posterImage":215,"relatedSolution":216},164,"استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك",{"fr":199,"en":200,"ar":197,"es":201},"self-host-headscale-tailscale-vps","self-host-headscale-on-a-vps-your-own-tailscale-control-server","auto-alojar-headscale-en-un-vps-servidor-tailscale","استضافة Headscale على VPS: خادم تحكّم Tailscale خاص بك","استبدل خادم التحكم السحابي لـ Tailscale بـ Headscale على خادم VPS الخاص بك — مستخدمون غير محدودين، وشبكة WireGuard متشابكة كاملة، وmagic DNS وقوائم ACL، دون أي اعتماد على SaaS.",19,"2026-07-05T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":208,"name":209,"slug":210,"color":211,"icon":212},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[214],{"id":208,"name":209,"slug":210,"color":211,"icon":212},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":217,"appSlug":218},"الشبكات-وvpn","headscale",true,1794270224649]