القصة
CapRover على Docker Swarm، وكل منتج وكل موقع عميل وكل أداة داخلية خلف Proxy واحد، لكل منها نطاق فرعي وشهادة خاصة. لا يوجد فريق تشغيل منفصل: أنا من اختار مزوّد الخدمة وجهّز كل تطبيق، وأملك النطاقات والشهادات، وكتبت قواعد النشر التي يتبعها فريقي ووكلائي.
العقبات التي تجاوزتها
- ثلاثة أنواع من الأحمال خلف Proxy واحد: خدمات Swarm، وحزمة Supabase مستضافة ذاتيًا تحت systemd، وحاويات شُغّلت يدويًا.
- محرك Docker مثبّت على إصدار، وSwarm لا يعيد سحب الصور العائمة بصمت، فلا يتغير إصدار قاعدة البيانات تحت تطبيق يعمل.
- راجعت 67 تطبيقًا مقابل ما يعمل فعلًا وصححت 16 تعريفًا ليطابق الإعداد المحفوظ الواقع.
- نسخ ليلية مُتحقق منها لقواعد البيانات، وتنظيف أسبوعي للصور حتى لا تملأ 776 عملية بناء لتطبيق واحد القرص.



