لماذا تنشر 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: 1 غيغابايت كحد أدنى لتثبيت بدون بناء نشط، و2 غيغابايت موصى به للاستخدام المعتاد. بمجرد استضافة عدة تطبيقات مع قواعد بياناتها، استهدف 4 غيغابايت: تستهلك عمليات بناء Nixpacks الكثير من الذاكرة مؤقتًا وقد يقتل خادم بـ 1 غيغابايت عملية التجميع في منتصفها.
CPU: معالج vCPU واحد يكفي للبداية، ومعالجا vCPU موصى بهما بمجرد تشغيل بنيات متكررة أو قواعد بيانات مكثفة.
القرص: 30 غيغابايت SSD كحد أدنى. خطّط لمزيد إذا كنت تستضيف قواعد بيانات كبيرة أو صور Docker ثقيلة (Node، Java).
نظام التشغيل: Ubuntu 22.04 LTS أو Ubuntu 24.04 LTS نظيف مع وصول root. يعمل Debian 12 أيضًا. يُثبَّت Docker تلقائيًا بواسطة سكربت Easypanel.
الشبكة / DNS: هيّئ سجل A لنطاق اللوحة (panel.mydomain.com) يشير إلى IP خادمك. يُنصح بسجل wildcard *.mydomain.com لتجنب إضافة كل نطاق فرعي يدويًا. يجب أن تكون المنافذ 80 و443 و3000 مفتوحة في جدار الحماية للتثبيت الأولي.
ثبّت Easypanel وانشر تطبيقًا
ابدأ التثبيت الآلي
على نظام Ubuntu نظيف، نفّذ السكربت الرسمي بصلاحيات root:
curl -sSL https://get.easypanel.io | shيُثبّت السكربت Docker (إن لم يكن موجودًا) وTraefik وEasypanel في غضون بضع دقائق. في النهاية، يعرض رابط الوصول إلى اللوحة:
http://IP_VPS:3000. تحقق من أن Docker يعمل بشكل صحيح عبرdocker psقبل الانتقال إلى الخطوة التالية.أنشئ حساب المسؤول
افتح
http://IP_VPS:3000في متصفحك. أنشئ حساب المسؤول بعنوان بريد إلكتروني وكلمة مرور قوية (16 محرفًا على الأقل). انتقل بعد ذلك إلى Settings → General وأدخل نطاق اللوحة (panel.mydomaine.com): سيطلب Easypanel فورًا شهادة Let's Encrypt عبر Traefik. بمجرد الحصول على الشهادة، يصبح الوصول إلى اللوحة عبر HTTPS ويمكن إغلاق المنفذ 3000 في جدار الحماية.أنشئ مشروعًا وتطبيقًا
في الواجهة، انقر على New Project: يجمع المشروع خدماتك (تطبيق + قاعدة بيانات + ذاكرة تخزين مؤقت) في شبكة Docker معزولة. داخل المشروع، انقر على Create Service → App. حدد مستودع GitHub (عبر OAuth أو رمز وصول)، وفرع الإنتاج، والمجلد الجذر عند الحاجة. يكتشف Easypanel تلقائيًا المكدّس عبر Nixpacks — Node وPython وPHP وRuby وGo أو Dockerfile إن وُجد.
أضِف قاعدة بيانات ومتغيرات البيئة
في المشروع ذاته، انقر على Create Service → Database واختر PostgreSQL أو MySQL أو MongoDB أو Redis. يولّد Easypanel اسم مضيف داخليًا (
postgresبشكل افتراضي)، ومستخدمًا وكلمة مرور عشوائية. انسخ سلسلة الاتصال المقترحة، ثم احقنها في تطبيقك عبر علامة تبويب Environment لخدمة التطبيق. تتواصل خدمات المشروع نفسه عبر اسم الخدمة على شبكة Docker الداخلية — لا حاجة لكشف قاعدة البيانات على الإنترنت.هيّئ النطاق وانشر
في علامة تبويب Domains الخاصة بالتطبيق، أضِف
mon-app.mydomaine.com: يهيّئ Easypanel Traefik ويحصل على شهادة SSL تلقائيًا. انقر على Deploy: يبني Nixpacks الصورة ويضع التطبيق على الإنترنت. تصفّح سجلات البناء في الوقت الفعلي من علامة تبويب Deployments لمتابعة التقدم والكشف عن أي أخطاء محتملة.
الإعداد بعد التثبيت: Traefik وTLS المتقدم
يُكشف Traefik عبر Easypanel بنقطتَي دخول: لوحة Traefik (معطّلة بشكل افتراضي لأسباب أمنية) وواجهة برمجة التطبيقات الداخلية للتوجيه التي تديرها اللوحة تلقائيًا. لا تحتاج عادةً إلى لمس إعدادات Traefik مباشرةً.
TLS التلقائي. لكل نطاق يُضاف في علامة تبويب Domains لخدمة ما، يهيّئ Easypanel محلل ACME من Let's Encrypt (HTTP-01 على المنفذ 80). تُجدَّد الشهادة تلقائيًا قبل انتهاء صلاحيتها. إذا كان نطاقك خلف Cloudflare، تأكد من أن وضع SSL/TLS مضبوط على Full (strict) — سيتسبب وضع «Flexible» في حلقة إعادة توجيه لا نهاية لها، إذ يُعيد Traefik توجيه HTTP إلى HTTPS أصلاً.
إعدادات متقدمة. عبر علامة تبويب Advanced لكل خدمة، يمكنك:
- حقن تسميات Traefik مخصصة (تحديد معدل الطلبات، middlewares المصادقة)؛
- تركيب أحجام Docker دائمة (مفيدة لبيانات التطبيقات التي لا تستخدم قاعدة بيانات مخصصة)؛
- تعريف healthcheck لـ Docker بحيث لا يُوجّه Traefik الزيارات إلا إلى النسخ السليمة.
المنفذ الداخلي. يكتشف Easypanel المنفذ المكشوف عبر Nixpacks أو تعليمة EXPOSE في Dockerfile. إذا كان تطبيقك يستمع على منفذ غير معياري، صرّح به صراحةً في حقل Port للخدمة حتى يعرف Traefik أين يُوجّه الطلبات.
التحديثات والنسخ الاحتياطية في Easypanel
تحديث Easypanel. يتم التحديث عبر الواجهة: Settings → General → Update. من سطر الأوامر، أعِد تشغيل سكربت التثبيت ببساطة — يكتشف التثبيت القائم ويحدّث الحاويات دون إعادة تهيئة بيئتك:
curl -sSL https://get.easypanel.io | shنسخ أحجام Docker احتياطيًا. يخزّن Easypanel بياناته (الإعدادات والشهادات وحالة Traefik) في أحجام Docker. لنسخ حالة اللوحة بالكامل:
# سرد أحجام Easypanel
docker volume ls | grep easypanel
# نسخ حجم في ملف tar
docker run --rm -v easypanel_data:/data -v $(pwd):/backup \
alpine tar czf /backup/easypanel-backup-$(date +%Y%m%d).tar.gz /dataنسخ قواعد البيانات التطبيقية احتياطيًا. يوفر Easypanel منذ 2023 وظيفة النسخ الاحتياطي المجدول لـ PostgreSQL وMySQL/MariaDB وMongoDB، مع تصدير إلى حاوية S3 متوافقة. هيّئها من علامة تبويب Backups لكل خدمة قاعدة بيانات: اختر التكرار (كل ساعة أو يوميًا أو أسبوعيًا) ومعلومات الوصول إلى حاوية S3 أو Backblaze B2 الخاصة بك.
الاستعادة. لاستعادة حجم Docker مُنسوخ احتياطيًا:
docker run --rm -v easypanel_data:/data -v $(pwd):/backup \
alpine tar xzf /backup/easypanel-backup-20261001.tar.gz -C /استكشاف الأخطاء وإصلاحها: الأخطاء الأكثر شيوعًا
المنفذ 80 أو 443 مشغول بالفعل. إذا لم يبدأ Traefik عند الإطلاق الأول، تحقق من عدم وجود خدمة أخرى تستمع على هذين المنفذين: ss -tlnp | grep -E ':(80|443)'. قد يكون nginx أو Apache مُثبّتًا مسبقًا على الخادم ويحجب بدء التشغيل. أوقف الخدمة المتعارضة (systemctl stop nginx) ثم أعِد تشغيل الحاويات بـ docker compose up -d في مجلد Easypanel.
Docker غير مُثبَّت أو الإصدار قديم. يتعامل سكربت التثبيت مع هذه الحالة، لكن إذا شغّلته على نظام يحتوي إصدارًا قديمًا من Docker، قد تظهر أخطاء توافق. تحقق من الإصدار: docker --version (يُنصح بـ Docker 24 أو أحدث). عند الحاجة، أزل الإصدار القديم وأعِد تشغيل السكربت.
DNS لم ينتشر — شهادة SSL غير موجودة. إذا تعذّر على Let's Encrypt التحقق من النطاق (سجل DNS لم ينتشر بعد أو TTL طويل)، سيعرض Traefik خطأ في الشهادة. تحقق من الانتشار من طرفك: dig +short panel.mydomaine.com يجب أن يُرجع IP خادم VPS الخاص بك. قد يستغرق انتشار DNS من بضع دقائق إلى عدة ساعات حسب المسجِّل وقيمة TTL.
خطأ في الشهادة بعد تغيير IP. إذا نقلت VPS الخاص بك إلى IP جديدة دون تحديث DNS، يفشل تحدي ACME. حدّث سجل A الخاص بك، انتظر الانتشار، ثم أجبر تجديد الشهادة من Settings → Certificates → Renew.
فشل بناء Nixpacks بسبب نقص الذاكرة. على خادم VPS بـ 1 غيغابايت 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: أيهما تختار؟
مرّر الجدول أفقيًا
| المعيار | Easypanel | Coolify | Dokploy |
|---|---|---|---|
| الرخصة | مملوكة (خطة مجانية سخية) | مفتوحة المصدر (Apache 2.0) | مفتوحة المصدر (MIT) |
| الحد الأدنى الموصى به من RAM | 2 غيغابايت | 2 غيغابايت | 1 غيغابايت |
| قاعدة البيانات الداخلية | SQLite (مدمجة) | SQLite / PostgreSQL | PostgreSQL (مطلوبة) |
| Buildpacks | Nixpacks + Dockerfile + صورة Docker | Nixpacks + Dockerfile + Heroku | Nixpacks + Dockerfile + صورة Docker |
| قوالب التطبيقات | 100+ (WordPress وn8n وGhost وPlausible…) | 80+ (Appwrite وSupabase وn8n…) | 50+ (WordPress وn8n وDirectus…) |
| تعدد الخوادم | نعم (تجريبية، عُقَد Swarm) | نعم (مستقر، Swarm + SSH) | نعم (مستقر، متعدد العُقَد) |
| الخطة المجانية / الاستضافة الذاتية | استضافة ذاتية مجانية، خطة سحابية مدفوعة | استضافة ذاتية مجانية 100% | استضافة ذاتية مجانية 100% |
فعّل النشر التلقائي بربط خطاف ويب (webhook) من GitHub: كل دفعة (push) إلى فرع الإنتاج لديك تُطلق إعادة بناء بـ Nixpacks دون تدخل. لمشاريع العملاء، أنشئ «Project» منفصلًا لكل عميل بهدف عزل الشبكات وقواعد البيانات. على خادم VPS محدود الذاكرة، راقب RAM أثناء عمليات بناء Nixpacks وأضِف swap: قد تُشبع عمليات ترجمة Node أو الصور الثقيلة خادمًا صغيرًا وتتسبب في فشل النشر.