نشر منصة لخوادم MCP ومواقع مدمجة في الكتالوج
أضاف مؤلف Unyly، وهو كتالوج لخوادم MCP، منصة نشر كاملة إليه، مما يسمح للمستخدمين بنشر مستودعات GitHub كمواقع ويب أو خوادم MCP على نطاق فرعي. يقوم النظام تلقائيًا بإنشاء ملفات Docker، ويشغل الحاويات مع قيود، ويتعامل مع التوجيه والفحوصات الصحية والنشر التلقائي عبر خطافات الويب. يوضح المقال البنية التحتية ويشارك المزالق التي واجهها أثناء التطوير.
المؤلف سبق أن بنى دليلاً لخوادم MCP على Habr، حيث جمع 80 ألف إدخال من تسعة مصادر. طرح المستخدمون سؤالاً حول مكان تشغيل الخوادم، نظراً لأن العديد منها مستودعات GitHub تتطلب إعداداً واستضافة. ولمعالجة ذلك، أضاف المؤلف قسماً للنشر إلى Unyly، مما يتيح للمستخدمين ربط مستودع GitHub والحصول على مشروع مباشر على slug.unyly.org مع إعادة بناء تلقائية عند الدفع. وهو يدعم المواقع الثابتة، وبناء الواجهات الأمامية، وNext.js، وخوادم MCP على Node وPython. تتضمن عملية النشر خطاف ويب من GitHub إلى واجهة برمجة تطبيقات Next.js مع تحقق HMAC، وإدراج المهمة في قاعدة بيانات SQLite، وعامل worker يستنسخ المستودع، ويولّد ملف Dockerfile بناءً على نوع المشروع، ويبني ويشغّل الحاوية مع حدود للموارد، ووكيل عكسي على المنفذ 3900 يوجّه الطلبات حسب حقل Host. يعمل الوكيل والعامل كعمليتين منفصلتين تحت pm2 لتجنب الحظر. يتضمن توليد Dockerfile وصفات لخوادم MCP على Node (ملفوفة في supergateway لنقل HTTP)، وخوادم MCP على Python، والمواقع الثابتة، وبناء الواجهات الأمامية، وNext.js. تعمل الحاويات مع حدود للذاكرة ووحدة المعالجة المركزية وعدد العمليات، ويتم إسقاط الصلاحيات باستثناء مواقع nginx. تتحقق فحوصات الصحة من حالة HTTP للمواقع وتقوم بتهيئة JSON-RPC حقيقية لخوادم MCP. يستخدم التوجيه تعبيراً نمطياً لـ server_name مع نظرة سلبية لاستبعاد النطاقات الفرعية للخدمة. يتضمن النشر التلقائي معاينات لطلبات السحب التي يتم بناؤها وتنظيفها تلقائياً. لوحة الإدارة متاحة على deploy.unyly.org، مع خطة مجانية تسمح بمشروع واحد وخطة Pro بعشرة مشاريع. يشارك المؤلف بعض المزالق: بناء Docker المتزامن يسبب حظر حلقة الأحداث، و printf في Dockerfile يكسر nginx، والنطاق الفرعي الجامح يلتقط النطاقات الفرعية الإدارية، ومشاكل ملفات تعريف الارتباط عبر النطاقات الفرعية تُحل عبر جسر SSO، وضرورة تغليف خوادم stdio لأنها لا يمكن الوصول إليها عبر HTTP بدون ذلك.
المصدر: Habr — хаб ИИ —
الأصلي
