كل شيء يبقى داخل النطاق: الكود واللوحة والنتائج.
للقطاعات المنظمة والشبكات المغلقة: اللوحة والتحليل وقاعدة البيانات تعمل على خوادمك. بابان فقط يفتحان للخارج - مستودع الصور وملف الرخصة؛ وفي التثبيت المعزول يمكن نقل كليهما إلى الداخل.
منتج واحد وخط إصدارات واحد
كل تثبيت يشغّل الصور نفسها بوسم إصدار واحد. لا تفرّع ولا إصدار متأخر.
كل الوحدات مشمولة
كل الوحدات، من ArchPilot إلى Archito، تعمل على خوادمك. وتصل كل ميزة إلى كل تثبيت في الصور نفسها.
وحدة الإدارة مشمولة
للتثبيت منطقة إدارة خاصة: الرخصة والمستخدمون والبريد في مكان واحد، مع معالج يرافقك عند أول تشغيل.
الهوية والذكاء الاصطناعي
لا تسجيل دخول عبر Google أو GitHub: تبقى الهوية داخل محيطك، بالبريد وكلمة المرور أو LDAP / Active Directory. ميزات الذكاء الاصطناعي اختيارية ووحدها تحتاج إلى الإنترنت، نحو المزوّد الذي يختاره المشغّل.
ما الذي يعمل في التثبيت؟
التثبيت المرجعي أربع حاويات على خادم واحد. أما التحليل فلا يعمل على ذلك الخادم بل داخل مهام CI لديك.
| المكوّن | دوره | من يصل إليه |
|---|---|---|
| اللوحة (app-ui) | واجهة الويب التي يفتحها مستخدموك. تمرّر كل طلب إلى الـ API بهوية المستخدم نفسه. | المتصفحات؛ المنفذ الافتراضي 8080 |
| API (api) | تستقبل تقارير التحليل وتحسب الدرجات وتشغّل المهام المجدولة مثل مزامنة Git والتقارير. وهي المكوّن الوحيد الذي يتصل بقاعدة البيانات. | اللوحة ومشغّلات CI لديك؛ المنفذ الافتراضي 5000 |
| PostgreSQL 16 | النتائج والتقارير والمستخدمون وإعدادات الإدارة. | الـ API فقط |
| Redis 7 | الجلسات وذاكرة التخزين المؤقت ومفاتيح الجلسات التي تتشاركها النسخ. | اللوحة والـ API |
| صور التحليل (collectors) | تفحص الشيفرة داخل مهمة CI وترسل التقرير إلى الـ API الخاص بك. صورة لكل لغة من اللغات التسع. | مهام CI لديك؛ لا شيء يعمل على الخادم بشكل دائم |
يوفّر TLS الوكيلُ العكسي (nginx أو traefik) أو الـ ingress الموجود أمامه. تحتاج المتصفحات إلى منفذ اللوحة فقط، ومشغّلات CI إلى منفذ الـ API فقط.
التثبيت ثلاث خطوات
لا يلزم Kubernetes؛ يكفي docker compose. الدليل مع لقطات الشاشة على docs.apparch.io.
- 01
الرخصة + مفتاح التثبيت
يرسل فريق المبيعات معرّف التثبيت ومفتاحه، ويُرسل المفتاح مرة واحدة فقط. عند أول تشغيل تجلب المنشأة رخصتها عبر الإنترنت. في البيئة المعزولة ترسل رمز التثبيت الذي يعرضه معالج الإعداد وتستلم ملف .lic مرتبطًا به.
- 02
اسحب الصور
docker login hub.apparch.io - معرّف التثبيت هو اسم المستخدم والمفتاح كلمة المرور. في الشبكة المعزولة تُسحب الصور مرة في الخارج وتُنقل للداخل.
- 03
compose up + المعالج
يُشغّل ملف compose اللوحةَ والتحليل وترحيلات القاعدة؛ وعند أول تشغيل يربط المعالج حسابَ المدير والرخصة.
المتطلب: Docker Engine 24+ مع ملحق compose. هذا كل شيء.
التثبيت في شبكة معزولة
لا يحتاج التثبيت ولا التشغيل إلى اتصال خارج شبكتك. التبادل الوحيد مع الخارج ملفان يُنقلان يدويًا.
- 01
أدخِل الصور
تُسلَّم صور اللوحة والـ API في ملف أرشيف واحد؛ تنقله إلى الخادم وتحمّله بالأمر docker load. وتضع صور التحليل في سجلك الداخلي لتسحبها منه مهام CI.
- 02
ولّد الأسرار على الخادم
يُنشئ gen-secrets.sh عشوائيًا، على الخادم نفسه، كلمات مرور قاعدة البيانات وRedis ومفتاح توقيع الجلسات ومفتاح التشفير الرئيسي. لا يصلنا أيٌّ منها، ولا يوجد أيٌّ منها في الصور.
- 03
أرسل رمز التثبيت
شغّل الخدمات وأرسل إلى AppArch رمز التثبيت الظاهر في خطوة الترخيص في معالج الإعداد. ملف .lic الذي تستلمه مرتبط بهذا التثبيت فقط؛ ضعه في ./license/apparch.lic أو الصقه في المعالج.
- 04
لا يخرج أي طلب
اترك عنواني المورّد والتحديثات فارغين: يُتحقق من الترخيص محليًا، ولا يُجرى فحص للإصدارات، ولا يغادر أي طلب الشبكة. والإصدارات الجديدة تصل كملفات أيضًا.
سهل التشغيل وواضح المراقبة
ما يحتاج فريقك إلى معرفته بعد التثبيت، في أربعة عناوين.
نقاط الصحة
تُبيّن /health/live أن العملية تعمل، و/health/ready أن قاعدة البيانات وRedis تستجيبان (وفي اللوحة: الـ API). يستخدمها Compose كفحوص صحة للحاويات، وفي Kubernetes تغذّي مجسّات liveness وreadiness.
الترقية
غيّر إصدار الصورة في .env ثم شغّل docker compose pull وup. تُطبَّق ترحيلات قاعدة البيانات المعلّقة عند البدء بالترتيب مهما كان عدد الإصدارات المتخطاة. الترحيلات تتقدم فقط، فخذ نسخة احتياطية بـ pg_dump أولًا.
إقلاع يشرح نفسه
يسجّل الـ API إقلاعه خطوة بخطوة: قاعدة البيانات، الترحيلات، البيانات المرجعية، الترخيص. إذا فشلت خطوة يذكر سطر الخطأ الخطوة التي توقف عندها؛ وعند فشل الاتصال يظهر المضيف والمنفذ، لا بيانات الاعتماد أبدًا.
أكثر من نسخة
النسخ التي تتشارك PostgreSQL وRedis نفسيهما تثبيت واحد: تعمل الترحيلات مرة واحدة تحت قفل قاعدة البيانات، وتُطلق المهام المجدولة على نسخة واحدة عبر مُجدول عنقودي، وتُتشارك الجلسات عبر Redis.
آمن افتراضيًا
تدابير تأتي مع التثبيت ولا تحتاج إلى إعداد إضافي.
- أسرارك تبقى لديك. تُولَّد كلمات المرور والمفاتيح على خادمك أثناء التثبيت؛ ولا تحمل الصور سوى قيم افتراضية غير سرية.
- بيانات اعتماد Git مشفّرة. تُشفَّر رموز الوصول الخاصة بالمزوّدين الذين تربطهم في قاعدة البيانات باستخدام AES-GCM بالمفتاح الرئيسي لتثبيتك.
- صور بلا shell وبلا root. لا تحمل الحاويات سوى بيئة تشغيل .NET، ولا تتضمن shell، وتعمل بمستخدم غير مميّز.
- ترخيص لا يمكن تعديله. يُتحقق من الترخيص بمفتاح توقيع AppArch الموجود داخل الصور؛ وتعديل الملف يدويًا يكسر التوقيع.
- تسجيل الدخول يبقى داخل شبكتك. البريد وكلمة المرور (مع مصادقة ثنائية اختيارية) أو LDAP / Active Directory. لا يوجد تسجيل دخول عبر Google أو GitHub.
كيف تتصرف الرخصة؟
لا إيقاف مفاجئ: الحدود واضحة وكذلك ما يحدث بعد تجاوزها.
ملف موقّع يُتحقق منه دون اتصال
الرخصة ملف .lic موقّع بـ RS256 وتتحقق منه المنشأة محليًا، والرخصة الواحدة تعمل على تثبيت واحد فقط. لا تتصل بخادم رخص لتستمر بالعمل. عدة pods تتشارك قاعدة بيانات واحدة تُعدّ تثبيتًا واحدًا.
عدّادات بالشهر التقويمي
تُحسب حدود الاستخدام بالشهر التقويمي وتُصفَّر مطلع كل شهر - لا مفاجآت النافذة المنزلقة.
حد مرن أولًا ثم صارم
تجاوز الحد لا يوقف العمل: يُتسامح بسبعة أيام و10% بينما تحذّرك اللوحة. ولا يأتي الإيقاف الصارم إلا بعد استهلاك هذا الهامش.
الأسئلة الشائعة
كيف أحصل على التحديثات؟
ما خيارات المصادقة المتاحة؟
في العزل التام ماذا يعمل وماذا لا؟
من يرى البيانات؟
كيف يعمل التسعير؟
هل يعمل على Kubernetes؟
ماذا يجب أن أنسخ احتياطيًا؟
ماذا يحدث للترخيص إذا غيّرت الخادم؟
جرّبه داخل نطاقك
اطلب معرّف التثبيت؛ ومع ملف compose تكون جاهزًا في فترة بعد الظهر.