دليل النشر

انشر تطبيقاتك باستخدام Dokku على خادم VPS

انشر على VPS Cloud →

النشر7 دقيقة قراءة

انشر تطبيقاتك باستخدام Dokku على خادم VPS

يقدّم Dokku نفسه بوصفه «أصغر منصة PaaS في العالم». مبنيٌ حول Docker وbuildpacks الخاصة بـ Heroku، وهو يوفّر تجربة نشر عبر `git push` على خادم VPS متواضع، دون واجهة ثقيلة. إليك كيفية تثبيته ووضع تطبيقك الأول على الإنترنت.

لماذا تختار Dokku لخادم VPS الخاص بك

حيث تُضمّن حلول PaaS الأخرى واجهة ويب ومنسّقًا كاملًا، يبقى Dokku بسيطًا عن قصد: فهو مجموعة من سكربتات shell تقود Docker. تدفع شفرتك بـ git push dokku main، فيكتشف Dokku اللغة عبر buildpacks الخاصة بـ Heroku أو عبر Dockerfile، ويبني الصورة ويضع التطبيق على الإنترنت. تُدار كل الأمور من سطر الأوامر، ما يجعله خفيفًا للغاية وقابلًا للتنبؤ. إنه الخيار المثالي للمطورين الذين يريدون سير عمل شبيهًا بـ Heroku على خادم VPS صغير، دون دفع تكلفة طبقة إضافية ودون استهلاك RAM من أجل لوحة تحكم. تغطي منظومة إضافاته (PostgreSQL وRedis وLet's Encrypt) الاحتياجات الأساسية.

نقاط قوة Dokku الملموسة

  • بصمة ذاكرة ضئيلة: يعمل بأريحية على خادم VPS بذاكرة 1 غيغابايت من RAM.
  • النشر عبر git push، تمامًا كما في Heroku، مع اكتشاف تلقائي للغة.
  • دعم أصيل لـ buildpacks الخاصة بـ Heroku ولملفات Dockerfile، حسب اختيارك ومشروعك.
  • إضافات رسمية لـ PostgreSQL وMySQL وRedis وMongoDB، تُدار عبر واجهة سطر الأوامر.
  • إضافة Let's Encrypt لتفعيل HTTPS تلقائيًا وتجديده.
  • عمليات نشر بلا توقف (zero-downtime) بفضل فحوصات السلامة قبل تبديل الحاوية.

متطلبات Dokku

Dokku هو أكثر منصات PaaS اقتصادًا في الموارد ضمن هذه السلسلة. خادم VPS بذاكرة 1 غيغابايت من RAM ومعالج vCPU واحد يكفي للتطبيقات الخفيفة، لكن خصّص 2 غيغابايت من RAM بمجرد أن تستخدم عمليات البناء لديك buildpacks (تُترجَم Node وRuby وPython في الذاكرة) أو أن تستضيف قاعدة بيانات إلى جانبها. احسب 25 غيغابايت من قرص SSD. النظام الموصى به هو Ubuntu LTS مثبَّت حديثًا، دون Docker مثبَّت مسبقًا (سكربت Dokku يثبّته بنفسه). أما من ناحية DNS: هيّئ إما نطاقًا لكل تطبيق، أو نطاق wildcard *.mydomain.com للنشر عبر النطاقات الفرعية. يجب أن تكون المنافذ 22 (SSH، لا غنى عنه لـ git push) و80 و443 مفتوحة. أضِف مفتاح SSH العام الخاص بك للسماح بعمليات النشر.

ثبّت Dokku وانشر تطبيقًا

01

ثبّت Dokku عبر السكربت الرسمي

على نظام Ubuntu نظيف: wget -NP . https://dokku.com/install/v0.34.0/bootstrap.sh ثم sudo DOKKU_TAG=v0.34.0 bash bootstrap.sh. يثبّت السكربت Docker وNginx وDokku في بضع دقائق.

02

أكمِل التهيئة وأضِف مفتاح SSH الخاص بك

أنهِ التثبيت بزيارة عنوان IP الخاص بخادم VPS في متصفح أو عبر واجهة سطر الأوامر. أضِف مفتاحك العام بـ dokku ssh-keys:add admin < ~/.ssh/id_rsa.pub وحدّد النطاق العام: dokku domains:set-global mydomain.com.

03

أنشئ تطبيقًا ومستودعه البعيد (Git remote)

على الخادم: dokku apps:create mon-app. على جهازك، أضِف المستودع البعيد: git remote add dokku [email protected]:mon-app. سينشئ Dokku تلقائيًا النطاق الفرعي mon-app.mydomain.com.

04

هيّئ قاعدة بيانات

ثبّت الإضافة: dokku plugin:install https://github.com/dokku/dokku-postgres.git. أنشئ قاعدة بيانات بـ dokku postgres:create ma-base ثم اربطها بالتطبيق: dokku postgres:link ma-base mon-app. يُحقَن المتغير DATABASE_URL تلقائيًا.

05

انشر وفعّل HTTPS

ادفع شفرتك بـ git push dokku main: يبني Dokku وينشر. ثم ثبّت إضافة Let's Encrypt ونفّذ dokku letsencrypt:enable mon-app للحصول على شهادة SSL تلقائية وتهيئة تجديدها.

فعّل التجديد التلقائي للشهادات بـ dokku letsencrypt:cron-job --add، وإلا فستنتهي صلاحية شهاداتك بعد 90 يومًا. من أجل عمليات نشر بلا انقطاع، هيّئ ملف CHECKS في جذر مشروعك: يتحقق Dokku من أن النسخة الجديدة تستجيب قبل تبديل حركة المرور، ما يضمن نشرًا بلا توقف (zero-downtime deploy). على خادم VPS بذاكرة RAM منخفضة، أضِف 2 غيغابايت من swap لتفادي أن يقتل النظام عمليات بناء buildpack (OOM killer).

ضع Dokku في الإنتاج على خادم VPS الخاص بك

خادم VPS Cloud من ServOrbit يعمل بنظام Ubuntu LTS، خفيف وبأسعار معقولة، هو الأرضية المثالية لـ Dokku وسير عمل النشر لديه عبر git push.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو راسل فريقنا — الدعم بـ العربية والفرنسية والإنجليزية.