تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
جدول المحتويات
تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
Coolify هو بديل مفتوح المصدر ومستضاف ذاتياً لمنصات السحابة مثل Heroku وNetlify وVercel. مع Coolify على خادمك الخاص، يمكنك إدارة تطبيقاتك وقواعد بياناتك وخدماتك بسهولة. تدعم هذه المنصة المبنية على Docker النشر التلقائي عند دفع الكود عبر تكامل Git.
ما هو Coolify؟
Coolify هو حل PaaS حديث يتيح لك إدارة خوادم وتطبيقات متعددة من واجهة واحدة. الميزات الرئيسية:
- SSL تلقائي: شهادات SSL مجانية عبر Let's Encrypt
- تكامل Git: دعم GitHub وGitLab وBitbucket
- متعدد الخوادم: إدارة خوادم متعددة من لوحة واحدة
- خدمات قواعد البيانات: PostgreSQL وMySQL وRedis وMongoDB
- Docker Compose: نشر ملفات compose الموجودة مباشرة
- Webhooks: محفزات النشر التلقائي
متطلبات النظام
- Ubuntu 20.04/22.04 أو Debian 11/12
- ذاكرة RAM لا تقل عن 2 جيجابايت (يُنصح بـ 4 جيجابايت)
- مساحة قرص لا تقل عن 30 جيجابايت
- يجب ألا يكون Docker مثبتاً (Coolify يثبت Docker الخاص به)
التثبيت
يتم تثبيت Coolify بأمر curl واحد:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
يقوم سكريبت التثبيت تلقائياً بـ:
- تثبيت Docker وDocker Compose
- تنزيل وتشغيل حاويات Coolify
- تهيئة الشبكات والأحجام المطلوبة
- قواعد جدار الحماية (المنفذ 8000)
بعد التثبيت، افتح المتصفح:
http://IP_الخادم:8000
عند الإعداد الأول، سيُطلب منك إنشاء حساب مسؤول. قم بتعيين كلمة مرور قوية.
الإعداد الأولي
إنشاء حساب المسؤول
عند تسجيل الدخول الأول، قم بتعيين البريد الإلكتروني وكلمة المرور. يتم تخزين هذه البيانات في قاعدة بيانات Coolify.
إضافة خادم
يضيف Coolify تلقائياً الخادم الذي تم تثبيته عليه (localhost). لإضافة خوادم إضافية:
- Servers → Add Server
- أدخل تفاصيل اتصال SSH (IP، المنفذ، اسم المستخدم)
- أضف SSH private key
- اختبر الاتصال بـ Validate & Save
# إنشاء مفتاح SSH لاتصال Coolify بالخوادم البعيدة
ssh-keygen -t ed25519 -C "coolify@myserver"
# إضافة المفتاح العام إلى الخادم البعيد
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server
إضافة مصادر Git
تكامل GitHub
- Sources → Add Source → GitHub App
- أنشئ OAuth App أو GitHub App على GitHub
- أدخل Client ID وClient Secret
- Callback URL:
http://IP_الخادم:8000/auth/github
تكامل GitLab
# أنشئ Personal Access Token على GitLab
# النطاقات المطلوبة: api, read_user, read_repository
- Sources → Add Source → GitLab
- أدخل URL GitLab وAccess Token
- اختبر الاتصال
نشر التطبيقات
إنشاء مشروع جديد
- Projects → New Project
- أدخل اسم المشروع والوصف
- اختر Environment (production، staging، إلخ)
إضافة تطبيق
- داخل المشروع New Resource → Application
- اختر مصدر Git
- اختر المستودع والفرع
- اختر build pack:
- Nixpacks: الكشف التلقائي (Node.js، Python، PHP، Ruby، إلخ)
- Dockerfile: استخدم Dockerfile الخاص بك
- Docker Compose: ملف compose.yml
- Static: HTML/CSS/JS ثابت
# مثال: Dockerfile لتطبيق Node.js
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
متغيرات البيئة
انتقل إلى تبويب Environment Variables في إعدادات التطبيق:
# أمثلة على متغيرات البيئة
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/myapp
REDIS_URL=redis://redis:6379
SECRET_KEY=مفتاحك-السري-هنا
PORT=3000
أضف المعلومات الحساسة (مفاتيح API، كلمات المرور) كمتغيرات بيئة. لا تكتبها أبداً في الكود المصدري.
تهيئة النطاق وSSL
- تبويب Domains في إعدادات التطبيق
- أدخل اسم النطاق:
app.example.com - فعّل خيار SSL (Let's Encrypt تلقائي)
- أنشئ سجل DNS A:
app.example.com → IP_الخادم
# التحقق من سجل DNS
nslookup app.example.com
dig app.example.com A
خدمات قواعد البيانات
إعداد PostgreSQL
- New Resource → Database → PostgreSQL
- اختر الإصدار (14، 15، 16)
- عيّن اسم المستخدم وكلمة المرور
- انقر على Deploy
# تفاصيل اتصال PostgreSQL في Coolify
# URL داخلي (للتطبيقات على نفس الخادم):
postgresql://coolify:كلمة_المرور@postgres:5432/mydb
# URL خارجي (للوصول الخارجي):
postgresql://coolify:كلمة_المرور@IP_الخادم:المنفذ/mydb
إعداد Redis
# New Resource → Database → Redis
# الإصدار: 7.x
# الاتصال الداخلي:
redis://default:كلمة_المرور@redis:6379
النسخ الاحتياطي لقواعد البيانات
يوفر Coolify وظيفة النسخ الاحتياطي التلقائي:
- تبويب Backups في إعدادات قاعدة البيانات
- عيّن تكرار النسخ الاحتياطي (يومي، أسبوعي)
- أضف تخزيناً متوافقاً مع S3 (AWS S3، MinIO، Cloudflare R2)
# نسخ احتياطي يدوي
coolify backup create --database postgres-id
# قائمة النسخ الاحتياطية
coolify backup list
النشر مع Docker Compose
يمكنك استيراد ملفات docker-compose.yml الموجودة مباشرة إلى Coolify:
# مثال docker-compose.yml
version: '3.8'
services:
app:
image: myapp:latest
environment:
- NODE_ENV=production
- DATABASE_URL=${DATABASE_URL}
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:16
environment:
POSTGRES_DB: myapp
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
النشر التلقائي (Webhook)
قم بإعداد webhooks للنشر التلقائي بعد git push:
- تبويب Webhooks في إعدادات التطبيق
- انسخ URL الـ webhook
- أضفه إلى إعدادات مستودع GitHub/GitLab:
# إعدادات GitHub Webhook:
# Payload URL: https://coolify.example.com/webhooks/github
# Content type: application/json
# Secret: السر المنسوخ من Coolify
# Events: Push events
تحديث Coolify
# تحديث Coolify إلى أحدث إصدار
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# أو من واجهة الويب:
# Settings → Updates → Update Coolify
استكشاف الأخطاء وإصلاحها
# عرض سجلات Coolify
docker logs coolify
# قائمة جميع حاويات Coolify
docker ps | grep coolify
# إعادة تشغيل Coolify
docker restart coolify
# سجلات البروكسي (Traefik)
docker logs coolify-proxy
يعمل Coolify بشكل ممتاز على خوادم REXE VPS. مع 4 جيجابايت RAM و2 vCPU، يمكنك إدارة المشاريع الصغيرة والمتوسطة بسهولة.
مقالات ذات صلة
تثبيت Nextcloud: التخزين السحابي المستضاف ذاتياً والتعاون
تثبيت Nextcloud مع Docker، تهيئة Apache/Nginx، إعداد قاعدة البيانات، شهادة SSL، مزامنة الملفات، متجر التطبيقات وتحسين الأداء.
إدارة Docker مع Portainer: التحكم في الحاويات عبر واجهة الويب
تثبيت Portainer CE، إدارة Docker وKubernetes، نشر الـ stacks، إدارة الأحجام/الشبكات، تفويض المستخدمين، Webhooks وتكامل GitOps.
تثبيت Uptime Kuma: مراقبة وقت التشغيل المستضافة ذاتياً
تثبيت Uptime Kuma مع Docker، مراقبة HTTP/TCP/DNS/ping، تكاملات الإشعارات (Telegram، Discord، البريد الإلكتروني)، إنشاء صفحة الحالة وتهيئة التنبيهات.