دليل عملي

النشر

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

‏Easypanel هو لوحة تحكم حديثة تحوّل خادم VPS الخاص بك إلى منصة نشر أنيقة. بواجهته المصقولة، وbuildpacks الخاصة بـ Nixpacks، وشهادات SSL التلقائية، ينافس حلول PaaS التجارية مع بقائه مستضافًا ذاتيًا (self-hosted). يرافقك هذا الدليل من التثبيت حتى الإنتاج: متطلبات مفصّلة، إعداد ما بعد التثبيت، نسخ احتياطية، وحلول للأخطاء الأكثر شيوعًا.

10 دقائق للقراءةعدد الخطوات: 5
المحتويات· لماذا تنشر Easypanel على خادم VPS الخاص بك1/8
  1. 01لماذا تنشر Easypanel على خادم VPS الخاص بك
  2. 02الفوائد الملموسة لـ Easypanel
  3. 03متطلبات Easypanel المفصّلة
  4. 04ثبّت Easypanel وانشر تطبيقًا
  5. 05الإعداد بعد التثبيت: Traefik وTLS المتقدم
  6. 06التحديثات والنسخ الاحتياطية في Easypanel
  7. 07استكشاف الأخطاء وإصلاحها: الأخطاء الأكثر شيوعًا
  8. 08Easypanel أم Coolify أم Dokploy: أيهما تختار؟

لماذا تنشر Easypanel على خادم VPS الخاص بك

‏يضع Easypanel نفسه كبديل حديث وبصري لـ CapRover أو Dokku. يعتمد على Docker وNixpacks لبناء تطبيقاتك تلقائيًا من مستودع Git، دون أن تضطر إلى كتابة Dockerfile. تتيح لك واجهته، الأحدث والأكثر ملاءمة من معظم اللوحات مفتوحة المصدر، إدارة التطبيقات وقواعد البيانات والشهادات والنطاقات ببضع نقرات. يدمج Easypanel بشكل أصيل Traefik كوكيل عكسي: يحصل كل تطبيق منشور تلقائيًا على شهادة Let's Encrypt الخاصة به وعلى توجيهه. إنه حل وسط ممتاز بين بساطة منصة PaaS تجارية والتحكم في خادم تملكه، مناسب بشكل خاص للوكالات التي تنشر مشاريع العملاء بانتظام.

الفوائد الملموسة لـ Easypanel

  • ‏عمليات بناء تلقائية عبر Nixpacks: انشر Node أو Python أو PHP أو Go دون كتابة Dockerfile.
  • واجهة حديثة وبديهية لإدارة التطبيقات والنطاقات وقواعد البيانات.
  • ‏Traefik مدمج: وكيل عكسي وشهادات SSL من Let's Encrypt تُهيَّأ تلقائيًا.
  • ‏قواعد بيانات بنقرة واحدة: PostgreSQL وMySQL وMongoDB وRedis جاهزة للاستخدام.
  • ‏النشر من GitHub مع إعادة بناء تلقائية عند كل دفعة (push).
  • ‏قوالب لتطبيقات شائعة (WordPress وn8n وGhost…) قابلة للنشر فورًا.
  • عزل بالمشاريع: كل عميل أو تطبيق في شبكة Docker خاصة به.

متطلبات Easypanel المفصّلة

‏يضمّ Easypanel Traefik وأداة بناء Nixpacks، ما يتطلب ذاكرة أكثر قليلًا من Portainer.

ذاكرة RAM: 2 غيغابايت كحد أدنى، وهو الشرط الذي يعلنه الناشر. بمجرد استضافة عدة تطبيقات مع قواعد بياناتها، استهدف 4 غيغابايت: تستهلك عمليات بناء Nixpacks الكثير من الذاكرة مؤقتًا وقد يقتل خادم صغير عملية التجميع في منتصفها.

‏CPU: معالج vCPU واحد يكفي للبداية، ومعالجا vCPU موصى بهما بمجرد تشغيل بنيات متكررة أو قواعد بيانات مكثفة.

القرص: احرص على 30 غيغابايت SSD على الأقل. خطّط لمزيد إذا كنت تستضيف قواعد بيانات كبيرة أو صور Docker ثقيلة (Node، Java).

نظام التشغيل: Ubuntu 22.04 LTS أو Ubuntu 24.04 LTS نظيف مع وصول root. السكربت الرسمي مُعدّ لـ Ubuntu: إن لم يكن Docker موجودًا، يثبّته من مستودع Docker الخاص بـ Ubuntu. يُثبَّت Docker تلقائيًا بواسطة سكربت Easypanel.

الشبكة / DNS: هيّئ سجل A لنطاق اللوحة (panel.mydomain.com) يشير إلى IP خادمك. يُنصح بسجل wildcard *.mydomain.com لتجنب إضافة كل نطاق فرعي يدويًا. يجب أن يكون المنفذان 80 و443 غير مشغولين (يتوقف السكربت إذا كانت خدمة تستخدمهما) ومفتوحين في جدار الحماية. تستمع اللوحة على المنفذ 3000 للوصول الأول؛ بعد تهيئة نطاقها، عطّل الوصول عبر IP بدل الاعتماد على ufw، الذي لا يُرشّح المنافذ التي ينشرها Docker.

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

  1. ابدأ التثبيت الآلي

    ‏على نظام Ubuntu نظيف، نفّذ السكربت الرسمي بصلاحيات root:

    curl -sSL https://get.easypanel.io | sh

    ‏يُثبّت السكربت Docker (إن لم يكن موجودًا)، ويهيّئ Docker Swarm، ويشغّل Easypanel الذي ينشر Traefik، في غضون بضع دقائق. تصبح اللوحة بعد ذلك متاحة على المنفذ 3000 للخادم: http://IP_VPS:3000. تحقق من أن Docker يعمل بشكل صحيح عبر docker ps قبل الانتقال إلى الخطوة التالية.

  2. أنشئ حساب المسؤول

    ‏افتح http://IP_VPS:3000 في متصفحك. أنشئ حساب المسؤول بعنوان بريد إلكتروني وكلمة مرور قوية (16 محرفًا على الأقل). افتح بعد ذلك إعدادات الخادم (Settings) وأدخل النطاق المخصص للوحة (panel.mydomaine.com): سيطلب Easypanel فورًا شهادة Let's Encrypt عبر Traefik. بمجرد الحصول على الشهادة، يصبح الوصول إلى اللوحة عبر HTTPS: عطّل حينها الوصول عبر IP من الإعداد نفسه. لا تعتمد على ufw لإغلاق المنفذ 3000: ينشر Docker منافذه قبل أن تُطبَّق قواعد ufw.

  3. أنشئ مشروعًا وتطبيقًا

    ‏في الواجهة، انقر على New Project: يجمع المشروع خدماتك (تطبيق + قاعدة بيانات + ذاكرة تخزين مؤقت) في شبكة Docker معزولة. داخل المشروع، انقر على New Service → App. حدد مستودع GitHub (يلزم رمز GitHub مُهيّأ على الخادم لمستودع خاص)، وفرع الإنتاج، ومسار البناء عند الحاجة. يستخدم Easypanel ملف Dockerfile إن وُجد، وإلا يكتشف Nixpacks المكدّس — Node وPython وPHP وRuby وGo. ويوصي الناشر بـ Railpack، خليفته، لأي تطبيق جديد، ويُختار من علامة تبويب Build.

  4. أضِف قاعدة بيانات ومتغيرات البيئة

    ‏في المشروع ذاته، انقر على New Service واختر Postgres أو MySQL أو MariaDB أو Mongo أو Redis. يولّد Easypanel اسم مضيف داخليًا مشتقًا من اسمَي المشروع والخدمة، ومستخدمًا (postgres افتراضيًا لـ PostgreSQL) وكلمة مرور عشوائية. انسخ رابط الاتصال الداخلي من علامة تبويب Credentials، ثم احقنها في تطبيقك عبر علامة تبويب Environment لخدمة التطبيق. تتواصل خدمات المشروع نفسه عبر اسم الخدمة على شبكة Docker الداخلية — لا حاجة لكشف قاعدة البيانات على الإنترنت.

  5. هيّئ النطاق وانشر

    ‏في علامة تبويب Domains الخاصة بالتطبيق، أضِف mon-app.mydomaine.com: يهيّئ Easypanel Traefik ويحصل على شهادة SSL تلقائيًا. انقر على Deploy: يبني Nixpacks الصورة ويضع التطبيق على الإنترنت. تصفّح سجلات البناء في الوقت الفعلي من علامة تبويب Deployments لمتابعة التقدم والكشف عن أي أخطاء محتملة.

الإعداد بعد التثبيت: Traefik وTLS المتقدم

‏يُكشف Traefik عبر Easypanel بنقطتَي دخول: لوحة Traefik (معطّلة بشكل افتراضي لأسباب أمنية) وواجهة برمجة التطبيقات الداخلية للتوجيه التي تديرها اللوحة تلقائيًا. لا تحتاج عادةً إلى لمس إعدادات Traefik مباشرةً.

‏TLS التلقائي. لكل نطاق يُضاف في علامة تبويب Domains لخدمة ما، يهيّئ Easypanel محلل ACME من Let's Encrypt. تُجدَّد الشهادة تلقائيًا قبل انتهاء صلاحيتها. إذا كان نطاقك خلف Cloudflare، تأكد من أن وضع SSL/TLS مضبوط على Full (strict) — سيتسبب وضع «Flexible» في حلقة إعادة توجيه لا نهاية لها، إذ يُعيد Traefik توجيه HTTP إلى HTTPS أصلاً.

‏إعدادات متقدمة. عبر علامات تبويب كل خدمة، يمكنك:
- إضافة middlewares لـ Traefik إلى نطاق (علامة تبويب Domains) أو مصادقة HTTP Basic (علامة تبويب Security)؛
- تركيب أحجام دائمة (علامة تبويب Storage، مفيدة لبيانات التطبيقات التي لا تستخدم قاعدة بيانات مخصصة)؛
- ضبط عدد النسخ (replicas) والنشر دون انقطاع (علامة تبويب Advanced).

‏المنفذ الداخلي. يوجّه كل نطاق الطلبات إلى منفذ هدف، يجب أن يكون المنفذ الذي يستمع عليه التطبيق داخل الحاوية (عادةً على 0.0.0.0). إذا كان تطبيقك يستمع على منفذ غير معياري، أدخله كمنفذ هدف للنطاق (علامة تبويب Domains) حتى يعرف Traefik أين يُوجّه الطلبات.

التحديثات والنسخ الاحتياطية في Easypanel

‏تحديث Easypanel. تتحقق اللوحة بنفسها من التحديثات: عند توفر إصدار جديد، يظهر زر في شريط التنقل. من سطر الأوامر، التحديث اليدوي الذي يوثّقه الناشر (القناة المستقرة) هو:

docker image pull easypanel/easypanel && docker service update easypanel --force

‏لا تُعِد تشغيل سكربت التثبيت للتحديث: فهو مُعدّ لخادم جديد، ويتوقف إذا كان المنفذان 80 و443 مشغولين، وينفّذ docker swarm leave --force.

‏نسخ حالة اللوحة احتياطيًا. يخزّن Easypanel إعداداته وإعدادات Traefik (بما فيها الشهادات) وبيانات الخدمات في المجلد /etc/easypanel على الخادم، المُركَّب داخل حاوياته. لنسخ كل ذلك احتياطيًا:

# قياس مجلد حالة Easypanel
du -sh /etc/easypanel

# أرشفته (يحتوي الأرشيف على أسرار: احمِه)
tar czf /root/easypanel-backup-$(date +%Y%m%d).tar.gz -C / etc/easypanel \
  && chmod 600 /root/easypanel-backup-*.tar.gz

‏انسخ الأرشيف بعد ذلك خارج الخادم. قد تكون ملفات قاعدة بيانات قيد الكتابة غير متسقة فيه: بالنسبة لقواعد البيانات، اعتمد على نسخها الاحتياطية المنطقية.

‏نسخ قواعد البيانات التطبيقية احتياطيًا. يوفر Easypanel نسخًا احتياطيًا منطقيًا مجدولًا لـ PostgreSQL وMySQL وMariaDB وMongoDB (وليس لـ Redis). أعلِن أولًا عن وجهة في Settings → Server → Storage Providers: حاوية S3 أو متوافقة معها (Cloudflare R2 وBackblaze B2 وWasabi…)، أو SFTP، أو Dropbox، أو Google Drive. ثم هيّئ النسخ الاحتياطي من علامة تبويب Backups لكل خدمة قاعدة بيانات: جدولة cron، وعدد النسخ المحفوظة، ومسار الوجهة. شغّل نسخة أولى يدويًا واختبر استعادتها.

‏الاستعادة. لاستعادة أرشيف مجلد الحالة على الخادم:

tar xzf /root/easypanel-backup-20261001.tar.gz -C /

استكشاف الأخطاء وإصلاحها: الأخطاء الأكثر شيوعًا

‏المنفذ 80 أو 443 مشغول بالفعل. إذا توقف سكربت التثبيت عند الرسالة «something is already running on port 80» (أو 443)، تحقق من الخدمة التي تستمع على هذين المنفذين: ss -tlnp | grep -E ':(80|443)'. قد يكون nginx أو Apache مُثبّتًا مسبقًا على الخادم ويحجب التثبيت. أوقف الخدمة المتعارضة وعطّلها (systemctl disable --now nginx) ثم أعِد تشغيل سكربت التثبيت.

‏Docker غير مُثبَّت أو الإصدار قديم. لا يثبّت السكربت Docker إلا إذا كان غائبًا: على نظام يحتوي إصدارًا قديمًا من Docker، يُبقيه كما هو وقد تظهر أخطاء توافق. تحقق من الإصدار: docker --version، وقارنه بآخر إصدار مستقر من Docker Engine. عند الحاجة، أزل الإصدار القديم وأعِد تشغيل السكربت.

‏DNS لم ينتشر — شهادة SSL غير موجودة. إذا تعذّر على Let's Encrypt التحقق من النطاق (سجل DNS لم ينتشر بعد أو TTL طويل)، سيعرض Traefik خطأ في الشهادة. تحقق من الانتشار من طرفك: dig +short panel.mydomaine.com يجب أن يُرجع IP خادم VPS الخاص بك. قد يستغرق انتشار DNS من بضع دقائق إلى عدة ساعات حسب المسجِّل وقيمة TTL.

‏خطأ في الشهادة بعد تغيير IP. إذا نقلت VPS الخاص بك إلى IP جديدة دون تحديث DNS، يفشل تحدي ACME. حدّث سجل A الخاص بك، انتظر الانتشار، ثم شغّل من إعدادات الخادم تحديث عنوان IP، الذي يحدّث عنوان IP المسجَّل والنطاق المولَّد والشهادات.

‏فشل بناء Nixpacks بسبب نقص الذاكرة. على خادم VPS صغير (2 غيغابايت RAM)، قد تفشل عمليات بناء Node.js أو الصور متعددة المراحل بصمت. أضِف مبادلة (swap) لامتصاص الذروات: fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile. اجعل الـ swap دائمًا بإضافة /swapfile none swap sw 0 0 في /etc/fstab.

Easypanel أم Coolify أم Dokploy: أيهما تختار؟

مرّر الجدول أفقيًا

المعيارEasypanelCoolifyDokploy
الرخصةمملوكة (خطة مجانية محدودة بـ 3 مشاريع)مفتوحة المصدر (Apache 2.0)مفتوحة المصدر (Apache 2.0، باستثناء مجلد مملوك)
‏الحد الأدنى الموصى به من RAM‏2 غيغابايت‏2 غيغابايت‏2 غيغابايت
قاعدة البيانات الداخليةغير موثّقة‏PostgreSQL (+ Redis)‏PostgreSQL (مطلوبة)
‏Buildpacks‏Railpack وNixpacks وBuildpacks وDockerfile وصورة Docker‏Nixpacks وRailpack (تجريبي) وDockerfile وDocker Compose ومواقع ثابتة‏Nixpacks وRailpack وDockerfile وHeroku وPaketo ومواقع ثابتة
‏قوالب التطبيقات‏800+ (WordPress وn8n وGhost وPlausible…)‏300+ (Appwrite وSupabase وn8n…)‏500+ (WordPress وn8n وDirectus…)
تعدد الخوادمنعم (عُقَد عاملة في Docker Swarm)نعم (خوادم بعيدة عبر SSH)نعم (خوادم بعيدة، عُقَد Swarm)
الخطة المجانية / الاستضافة الذاتيةمجانية حتى 3 مشاريع، تراخيص مدفوعة لكل خادماستضافة ذاتية مجانية 100%استضافة ذاتية مجانية 100%

‏فعّل النشر التلقائي بربط خطاف ويب (webhook) من GitHub: كل دفعة (push) إلى فرع الإنتاج لديك تُطلق إعادة بناء بـ Nixpacks دون تدخل. لمشاريع العملاء، أنشئ «Project» منفصلًا لكل عميل بهدف عزل الشبكات وقواعد البيانات. على خادم VPS محدود الذاكرة، راقب RAM أثناء عمليات بناء Nixpacks وأضِف swap: قد تُشبع عمليات ترجمة Node أو الصور الثقيلة خادمًا صغيرًا وتتسبب في فشل النشر.

انشر مشاريعك مع Easypanel

‏خادم VPS Cloud من ServOrbit يعمل بنظام Ubuntu، مع الموارد المناسبة ونطاق wildcard، يتيح لك تثبيت Easypanel ووضع تطبيقاتك على الإنترنت ببضع نقرات.