Hippotenus
منصة للمؤسسات التعليمية
الواجهة البرمجية وتطبيق الويب والموقع التعريفي صور Docker منفصلة، تُبنى في GitHub Actions وتُنشر في بيئتي staging وproduction عبر Coolify.
اعرض المنتججميعها منشورة؛ صفحات المتاجر والتفاصيل في صفحة المنتجات.
منصة للمؤسسات التعليمية
الواجهة البرمجية وتطبيق الويب والموقع التعريفي صور Docker منفصلة، تُبنى في GitHub Actions وتُنشر في بيئتي staging وproduction عبر Coolify.
اعرض المنتجبنك أسئلة وإنشاء اختبارات
الواجهة الخلفية FastAPI والواجهة الأمامية صورتا Docker منفصلتان؛ بعد نجاح الاختبارات تُبنى الصورة وتُنشر عبر Coolify.
اعرض المنتجيحزم Docker التطبيق مع كل ما يحتاجه للعمل (حزم نظام التشغيل وبيئة التشغيل والاعتماديات) في صورة واحدة. تعمل الصورة نفسها بالطريقة نفسها على حاسوب المطوّر وفي بيئة الاختبار وفي بيئة الإنتاج؛ فلا يُثبَّت شيء على الخادم يدوياً، وتختفي مشكلة «كان يعمل على جهازي». أما جزء DevOps فهو جعل هذه الصورة تُختبر وتُبنى وتُنشر تلقائياً لحظة رفع الكود.
يتبع pepechura.com وHippotenus وLogaritim المسار نفسه. في Hippotenus يذهب الفرع الرئيسي إلى production وفرع التطوير إلى بيئة staging. وللتطوير المحلي يشغّل ملف docker-compose واحد قاعدة PostgreSQL وRedis والواجهة البرمجية وتطبيق الويب والموقع التعريفي معاً، وتنتظر الواجهة البرمجية حتى تصبح قاعدة البيانات جاهزة.
| الخطوة | ما يحدث | السبب |
|---|---|---|
| الاختبار | تعمل الاختبارات عند وصول الكود إلى الفرع الرئيسي؛ وفي pepechura.com وLogaritim يتوقف النشر على نجاحها | كي لا تتحول نسخة معطوبة إلى صورة |
| البناء | تُبنى صورة Docker في GitHub Actions لا على الخادم | كي لا ينشغل معالج خادم الإنتاج بالبناء |
| السجل | توسَم الصورة بمعرّف الـ commit وتُرفع إلى GitHub Container Registry | يبقى واضحاً دائماً أي كود يعمل في الإنتاج |
| النشر | يسحب Coolify الصورة الجديدة ويستبدل الحاوية؛ وفي Hippotenus تُطبَّق عمليات الترحيل عند تشغيل الحاوية الجديدة | إذا فشل الترحيل لا تعمل النسخة الجديدة وتستمر القديمة في العمل |
| التحقق | في pepechura.com ينتظر مسار العمل حتى تصبح الحاوية الجديدة منشورة | لا يمر نشر فاشل دون أن يُلاحظ؛ يفشل مسار العمل |
يعمل ملف Dockerfile نفسه على منصة مثل Railway (PaaS) وعلى خادمك الخاص. ما زال إعداد Railway الخاص بـ Hippotenus موجوداً في مستودعه؛ أما اليوم فيعمل Hippotenus وLogaritim وpepechura.com على خادمنا الخاص عبر Coolify. وCoolify لوحة نشر مفتوحة المصدر تُثبَّت على خادمك: تسحب الصورة وتدير شهادات HTTPS وفحوص السلامة.
| منصة (مثل Railway) | خادمك الخاص (مع Coolify) | |
|---|---|---|
| الإعداد | سريع؛ المنصة تدير الخادم | إعداد الخادم وتحديثه مسؤوليتك أو مسؤولية فريق الصيانة |
| مكان البيانات | المناطق التي تتيحها المنصة | الخادم الذي تختاره، في تركيا مثلاً |
| التكلفة | تتغير مع الاستخدام | سعر خادم ثابت في الغالب |
| صورة التطبيق | ملف Dockerfile نفسه | ملف Dockerfile نفسه |
| مثالنا | البيئة السابقة لـ Hippotenus | Hippotenus وLogaritim وpepechura.com |
في أحد مشاريع العملاء يُعدّ ملف Docker Compose واحد النظام كله: قاعدة PostgreSQL دون أي منفذ مفتوح للخارج، وخدمة تعمل مرة واحدة لتحديث قاعدة البيانات قبل بدء التطبيق، والتطبيق نفسه، وعاملاً في الخلفية يعمل من الصورة نفسها، وCaddy الذي يحصل على شهادة HTTPS ويجددها تلقائياً. ويأخذ سكربت نسخة احتياطية من قاعدة البيانات والملفات المرفوعة. وفي مشروع عميل آخر تعمل خدمات .NET وقاعدة PostgreSQL مع إضافة PostGIS داخل Docker، ويراقب Elastic Stack سجلات الحاويات ومقاييس الخادم ونقاط فحص السلامة. أما في Hippotenus فتُنسخ قواعد البيانات احتياطياً كل ليلة، وتُشفَّر النسخ وتُنقل إلى تخزين منفصل في تركيا، وقد جُرّبت الاستعادة.
تشغيل الاختبارات وبناء الصور وإطلاق النشر. نستخدمه لـ pepechura.com وHippotenus وLogaritim.
حيث تُحفظ الصور المبنية بمعرّف الـ commit. نستخدمه في المشاريع الثلاثة نفسها.
لوحة النشر مفتوحة المصدر التي تشغّل الصور على خادمنا. يعمل عليها pepechura.com وHippotenus وLogaritim.
الخادم الأمامي: HTTPS والضغط وحدود الرفع. نستخدمهما للواجهة الأمامية لـ Logaritim وفي مشاريع العملاء.
نسخ احتياطية مشفرة ومتعددة الإصدارات. نستخدمه لنسخ قواعد بيانات Hippotenus وLogaritim.
جمع السجلات ومقاييس الخادم وفحوص التوفر. نستخدمه في أحد مشاريع العملاء.
نتحدث عن مكان تشغيل التطبيق وطريقته اليوم، وكيف يتم النشر، وما الذي يسبب لك أكبر قدر من المتاعب.
نكتب البيئات ومسار النشر واحتياجات النسخ الاحتياطي والمراقبة ومعايير القبول.
كل أسبوع نسلّم جزءاً عاملاً: أولاً بيئة التطوير، ثم مسار الاختبار والبناء، ثم staging.
يختبر مهندس ضمان جودة أول النسخة على staging قبل انتقالها إلى الإنتاج. وعند تغيير الاستضافة نُبقي البيئة القديمة جاهزة للرجوع إليها لفترة.
نصلح مجاناً الأخطاء التي تظهر في هذه الفترة، وبعدها يمكنك المتابعة بصيانة شهرية.
ننشر المدد ونطاقات الميزانية في صفحات الخدمات والأسعار، وكل ما في هذه الصفحة يتبع الأرقام نفسها.
نعم. عندما نقلنا pepechura.com من Vercel إلى خادمنا الخاص، أُعدّ الموقع ليقرأ إعادات التوجيه والترويسات من الملف نفسه على الاستضافتين، وبقيت البيئة القديمة تعمل لفترة كخيار للرجوع. ولتطبيقك نراجع الإعداد الحالي أولاً ثم نخطط للانتقال خطوة بخطوة.
لا. في مشاريعنا حتى الآن كفى Docker Compose أو Coolify على خادم واحد، وكانت صيانته أبسط. وإذا كان حجمك يتطلب Kubernetes فسنقول ذلك بوضوح في المكالمة التعريفية.
لا. في Hippotenus يعمل PostgreSQL وRedis داخل شبكة Docker فقط ولا يُفتحان للخارج، ولا يصل المطورون إلى قاعدة بيانات الإنتاج إلا عبر نفق SSH. كما نشغّل الحاويات التي تحمل كود الخادم الخاص بنا بمستخدم غير root.
بحسب النطاق. نكتب النسخ الاحتياطي، وعند الحاجة جمع السجلات ومراقبة التوفر، كبنود منفصلة في العرض. والأمثلة أعلاه: نسخ احتياطية ليلية مشفرة في Hippotenus، ومراقبة عبر Elastic Stack في أحد مشاريع العملاء.
ترخيص استخدام دائم للبرنامج ووثائق الاستخدام. وإذا أردت نقل الكود المصدري إليك مع ملفات Dockerfile ومسار النشر فذلك ممكن مقابل رسوم إضافية تُذكر بشكل منفصل في العرض.
في مكالمة تعريفية مجانية مدتها 30 دقيقة نحدد معاً أين وكيف يجب أن يعمل تطبيقك، وكيف نجعل نشره آلياً.