لماذا تثبّت CapRover على خادم VPS الخاص بك
نشر تطبيق على خادم VPS خام يعني إدارة Nginx والشهادات وحاويات Docker وعمليات إعادة التشغيل يدويًا. يغلّف CapRover كل ذلك خلف واجهة ويب وواجهة سطر أوامر (CLI): فهو يعتمد على Docker Swarm لتنسيق حاوياتك، ويولّد تلقائيًا شهادات Let's Encrypt، ويوفّر نظام نشر عبر git push أو عبر صورة Docker. يتيح لك كتالوجه «One-Click Apps» تثبيت WordPress أو PostgreSQL أو Redis أو MongoDB أو Ghost ببضع نقرات، وكلٌ منها يُنشر في حاويته الخاصة. إنه الخيار المثالي للمطورين والوكالات الذين يريدون تجربة Heroku دون فاتورتها، مع الاحتفاظ بالتحكم الكامل في خادمهم.
الفوائد الملموسة لـ CapRover
- النشر عبر
git pushأو عبر واجهة سطر الأوامرcaprover deploy، دون تهيئة الخادم عند كل إصدار. - شهادات SSL من Let's Encrypt تلقائية ومُجدّدة لكل نطاق ونطاق فرعي.
- كتالوج One-Click لتثبيت قواعد البيانات والخدمات الشائعة في ثوانٍ.
- توسّع أفقي أصيل بفضل Docker Swarm: أضِف عُقد worker أثناء التشغيل.
- واجهة ويب واضحة مع سجلّات مباشرة، ومتغيرات بيئة، وحفظ دائم للبيانات.
- خطافات ويب (webhooks) للنشر قابلة للدمج مع GitHub أو GitLab أو Bitbucket من أجل CI/CD خفيف.
متطلبات CapRover
CapRover معقول في استهلاك الموارد لكنه يحجز ذاكرة لـ Docker Swarm وأداة البناء (builder). خادم VPS بذاكرة 2 غيغابايت من RAM ومعالج vCPU واحد يكفي للمشاريع الشخصية وبضعة تطبيقات صغيرة؛ انتقل إلى 4 غيغابايت من RAM ومعالجَي vCPU بمجرد أن تستضيف عدة تطبيقات مع قواعد بياناتها. خصّص 30 غيغابايت من قرص SSD، لأن كل عملية بناء Docker تستهلك مساحة مؤقتة. أما من ناحية الشبكة: يُنصح بشدة باستخدام اسم نطاق wildcard (*.apps.mydomain.com) حتى يولّد CapRover نطاقات فرعية أثناء التشغيل لكل تطبيق. يجب أن تكون المنافذ 80 و443 و3000 (لوحة الإدارة) مفتوحة. يُثبّت Docker تلقائيًا بواسطة سكربت CapRover، لذا كل ما عليك توفيره هو خادم VPS يعمل بنظام Ubuntu نظيف.
ثبّت CapRover وانشر تطبيقًا
ابدأ التثبيت بأمر واحد
على نظام Ubuntu نظيف، نفّذ docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover. يهيّئ CapRover نظام Docker Swarm ويبدأ لوحة الإدارة الخاصة به على المنفذ 3000.
هيّئ النطاق الجذر
وجّه سجل DNS من نوع wildcard *.apps.mydomain.com إلى عنوان IP الخاص بخادم VPS. في اللوحة، أدخِل هذا النطاق الجذر: سيستخدمه CapRover كلاحقة لجميع تطبيقاتك وسيفعّل HTTPS عبر Let's Encrypt بنقرة واحدة.
ثبّت واجهة سطر الأوامر وسجّل الدخول
على جهازك: npm install -g caprover ثم caprover login. أدخِل الرابط https://captain.apps.mydomain.com وكلمة المرور المحددة في الخطوة السابقة. تحتفظ واجهة سطر الأوامر بالاتصال لعمليات النشر اللاحقة.
أنشئ تطبيقًا وانشره
في اللوحة، أنشئ تطبيقًا باسم mon-api. أضِف ملف captain-definition في جذر مشروعك يشير إلى ملف Dockerfile الخاص بك، ثم نفّذ caprover deploy. يبني CapRover الصورة ويضع التطبيق على الإنترنت على https://mon-api.apps.mydomain.com.
أضِف قاعدة بيانات واحفظ البيانات بشكل دائم
من علامة تبويب One-Click Apps، ثبّت PostgreSQL. اربط تطبيقك عبر متغيرات البيئة المولّدة، ثم فعّل حجمًا (volume) دائمًا في علامة تبويب «Persistent Directories» للحفاظ على البيانات بين عمليات إعادة النشر.
فعّل المصادقة الثنائية على اللوحة وقيّد الوصول إلى المنفذ 3000 بجدار حماية (ufw allow from VOTRE_IP to any port 3000). من أجل CI/CD، استخدم خطافات ويب الخاصة بالبناء في CapRover: كل دفعة (push) إلى فرع main تُطلق تلقائيًا عملية نشر جديدة دون تدخّل يدوي. فكّر في زيادة ذاكرة swap إذا كانت عمليات بناء Docker لديك ثقيلة، لأن أداة البناء قد تُشبع خادم VPS صغيرًا أثناء الترجمة.