البنية المعمارية
الموقع في لوحة الإدارة: هذه صفحة مرجعية. الخدمات الموضحة هنا مرئية باستخدام
sudo nexcmp status؛ ويتم تكوين الاتصالات ضمن Infrastructure وSystem › Settings.
المخطط التوضيحي
شرح المخطط بالتفصيل
- يفتح العميل أو المسؤول
https://cloud.example.com(البوابة) أوhttps://cloud.example.com/admin(لوحة الإدارة) أو يستدعي REST API. يوجّه نظام DNS الاسم إلى خادمك، أو إلى Cloudflare الذي يمرر الطلبات إليه كوكيل. - يستمع nginx على خادم اللوحة إلى المنفذين 80 (لإعادة التوجيه وتجديد الشهادات) و443 (TLS) ويمرر كل طلب إلى اللوحة على
127.0.0.1:3000. بعد معالج الإعداد الأولي، تستمع اللوحة إلى واجهة الاسترجاع (loopback) فقط. - تتولى اللوحة (
nexcmp.service) تقديم بوابة العملاء ولوحة الإدارة وREST API ومعالج الإعداد والملفات القابلة للتنزيل التي تحتاج إليها العقد (ملف binary للعميل، ونص التثبيت البرمجي، وأداة سطر الأوامرcmp). وتتحقق أيضًا من ترخيصك مرة واحدة يوميًا. - يستمع worker (
nexcmp-vmd.service) على127.0.0.1:8112، وهو محلي فقط. ويتولى تشغيل كل ما يستغرق وقتاً أو يجب تنفيذه وفق جدول زمني: مهام التهيئة، والمزامنة مع CloudStack وProxmox VE، ودورات الفوترة، وجمع بيانات استهلاك النطاق الترددي، واتصالات وحدة تحكم المتصفح. - يُجري NexCMP اتصالات صادرة من هاتين العمليتين إلى: CloudStack (management API)، وProxmox VE (واجهة API على المنفذ 8006 مع تثبيت الشهادة certificate pinned)، وDell iDRAC (بروتوكول Redfish عبر HTTPS على شبكة الإدارة)، وCeph RGW (بروتوكول S3 وAdmin Ops عبر HTTPS)، وبوابات الدفع (Stripe وPayPal وUSDT ومزودو التحويلات البنكية، والذين يتصلون أيضاً بعناوين webhook لديك)، وخادم SMTP الخاص بك، ومزود AI بواجهة API متوافقة مع OpenAI، واختيارياً Telegram.
- تُشغّل عُقد VPN
cmp-agent. وتُسجَّل كل عقدة لمرة واحدة برمز يُستخدم لمرة واحدة، ثم ترسل إشارة نبض heartbeat كل 5 ثوانٍ عبر HTTPS إلى لوحة التحكم وتتلقى إعداداتها في الرد. وتُثبَّت عُقد بروكسي IPv6 لمرة واحدة بواسطة لوحة التحكم عبر SSH، ثم تسحب إعداداتها من اللوحة. - يتم حفظ الحالة في قواعد بيانات SQLite وبضعة ملفات في
/var/lib/nexcmp. كما تُخزن بيانات الاعتماد الخاصة بـ CloudStack وProxmox وS3 وiDRAC ومزود AI مشفرة (AES-256-GCM) مع ملفات المفتاح الرئيسي في نفس المكان.
الخدمات والعمليات
| العملية | يعمل بصلاحية | يستمع على | الوظيفة |
|---|---|---|---|
nginx | root (عمال www-data) | 80, 443 | TLS، وإعادة التوجيه، والوكيل (proxy) إلى لوحة التحكم |
nexcmp | nexcmp | 3000 (جميع الواجهات أثناء التثبيت الأول، ثم 127.0.0.1) | البوابة، ولوحة تحكم المشرف، وAPI، ومعالج الإعداد، والتنزيلات |
nexcmp-vmd | nexcmp | 127.0.0.1:8112 | المهام، والمزامنة، والفوترة، والنطاق الترددي، ووحدة التحكم |
nexcmp-update | root | لا يوجد | تطبيق التحديثات التي تطلبها لوحة تحكم المشرف (تنتظر وحدة مسار الطلب) |
cmp-agent (على عُقد VPN) | root | منافذ استماع VPN | إرسال التقارير إلى لوحة التحكم، وتشغيل مستمعي البروكسي على عناوين IPv4 العامة |
تعمل لوحة التحكم والـ worker كمستخدم عادي دون أي قدرات Linux capabilities، مع نظام ملفات للقراءة فقط باستثناء /var/lib/nexcmp و/var/log/nexcmp. ولا يحتاجان إلى صلاحيات root، ولا Docker، ولا قاعدة بيانات منفصلة، ولا Redis.
الملفات ومواقعها
| المسار | المحتوى |
|---|---|
/opt/nexcmp | البرنامج: الإصدارات، وbin/، والملفات المشتركة مثل منشئ القوالب. تعود ملكيته للمستخدم root، وهو للقراءة فقط بالنسبة للخدمة. |
/etc/nexcmp | إعدادات برنامج التثبيت (install.conf)، والمنفذ وربط الواجهات (nexcmp.env). |
/var/lib/nexcmp | قواعد بيانات SQLite، ومواد العلامة التجارية المرفوعة، ومجلد تنزيل العميل agent، وحالة الترخيص، وملفات المفتاح الرئيسي. احرص على نسخ هذا المسار احتياطياً. |
/var/log/nexcmp | سجلات الأحداث. |
راجع النسخ الاحتياطي والاستعادة. يجب نسخ ملفات المفتاح الرئيسي احتياطياً مع قواعد البيانات، وإلا فلن تتمكن قاعدة البيانات المستعادة من فك تشفير بيانات الاعتماد المخزنة فيها.
اتجاهات الاتصال
| الاتجاه | المسار | المنفذ | ملاحظات |
|---|---|---|---|
| من العميل إلى لوحة التحكم | الإنترنت، وDNS، وCloudflare (اختياري)، وnginx | 443 | راجع DNS وCloudflare. |
| من لوحة التحكم إلى خادم الترخيص | nexcmp.com | 443 | التفعيل، والتحقق اليومي، والتحديثات. |
| من لوحة التحكم إلى CloudStack | API | 443 أو 8080 | تستخدم وحدة تحكم الجهاز الافتراضي وميزات النطاق الترددي وKubernetes نقطة النهاية ذاتها. |
| من لوحة التحكم إلى Proxmox VE | واجهة API ووحدة تحكم WebSocket | 8006 | شهادة مثبتة عبر SHA-256. |
| من لوحة التحكم إلى iDRAC | Redfish | 443، VNC 5901 | شبكة الإدارة فقط. |
| من iDRAC إلى خادم ISO | HTTP | المنفذ الخاص بك | يقوم iDRAC بسحب ملف ISO. |
| من اللوحة إلى Ceph RGW | Admin Ops | 443 | |
| من اللوحة إلى SMTP | SMTP | 587 أو 465 | |
| من اللوحة إلى مزود الذكاء الاصطناعي | HTTPS | 443 | فقط عند تفعيل وحدة الذكاء الاصطناعي. |
| من بوابة الدفع إلى اللوحة | Webhook | 443 | استدعاءات الرد من Stripe وPayPal. |
| من العقدة إلى اللوحة | cmp-agent | 443 | التسجيل، نبضات القلب، والترقية. |
| من اللوحة إلى عقدة وكيل IPv6 | SSH | المنفذ الذي تدخله | للتثبيت لمرة واحدة فقط. |
أهمية ذلك
- اللوحة التي يمكن الوصول إليها هي لوحة يمكن مهاجمتها. أبقِ المنفذ 3000 مغلقا بمجرد اكتمال معالج الإعداد. يقوم برنامج التثبيت بذلك بالفعل عند تفعيل TLS.
- يجب أن يكون worker قيد التشغيل لإنشاء أي شيء أو فوترته. يعرض
sudo nexcmp statusكلتا الخدمتين وفحص الحالة. - خطط لجدران الحماية الصادرة. إذا كانت حركة المرور الصادرة من خادم اللوحة تخضع للتصفية، فاسمح بالوجهات الواردة في الجدول أعلاه.
- تظل حركة مرور الإدارة بعيدة عن المسار العام. تنتقل الاتصالات بـ CloudStack وProxmox VE وiDRAC وCeph مباشرة من خادم اللوحة إلى تلك الأنظمة، دون المرور عبر nginx أو Cloudflare إطلاقا.