تثبيت Ghost: منصة مدونة ومحتوى مستضافة ذاتياً
تثبيت Ghost عبر Docker، Nginx reverse proxy، شهادة SSL، إعداد القالب، نظام العضوية والاشتراك، النشرة البريدية وتكوين بيئة الإنتاج.
جدول المحتويات
تثبيت Ghost: منصة مدونة ومحتوى مستضافة ذاتياً
Ghost هي منصة CMS مفتوحة المصدر مصممة للتدوين الحديث ونشر المحتوى. مقارنة بـ WordPress، فهي أسرع وأكثر أماناً وموجهة للمحتوى. تدعم أيضاً تحقيق الدخل من المحتوى عبر نظام العضوية والنشرة البريدية وتكامل الدفع.
ما هو Ghost؟
Ghost هو CMS headless ومنصة نشر مبنية على Node.js. الميزات الرئيسية:
- السرعة: مبني على Node.js، تحميل صفحات سريع جداً
- SEO: أدوات SEO مدمجة وبيانات منظمة
- العضوية: نظام عضوية مجاني ومدفوع
- النشرة البريدية: إرسال نشرات بريدية مدمج
- القوالب: نظام قوالب مبني على Handlebars
- API: REST API للاستخدام كـ headless CMS
متطلبات النظام
- خادم مع Docker و Docker Compose
- حد أدنى 1 جيجابايت RAM (يُنصح بـ 2 جيجابايت)
- MySQL 8.0 أو SQLite
- نطاق صالح وشهادة SSL
التثبيت عبر Docker
إعداد الإنتاج مع MySQL
# docker-compose.yml
version: '3.8'
services:
ghost:
image: ghost:5-alpine
container_name: ghost
restart: unless-stopped
depends_on:
- db
environment:
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: strong-password
database__connection__database: ghost
url: https://blog.example.com
mail__transport: SMTP
mail__options__host: smtp.mailgun.org
mail__options__port: 587
mail__options__auth__user: postmaster@mg.example.com
mail__options__auth__pass: mailgun-api-key
mail__from: noreply@example.com
volumes:
- ./ghost-content:/var/lib/ghost/content
ports:
- "127.0.0.1:2368:2368"
db:
image: mysql:8.0
container_name: ghost-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root-password
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: strong-password
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
# تشغيل الحاويات
docker compose up -d
# التحقق من السجلات
docker logs ghost -f
ينشئ Ghost قاعدة البيانات تلقائياً عند التشغيل الأول. الوصول إلى لوحة الإدارة: https://blog.example.com/ghost.
Nginx Reverse Proxy و SSL
server {
listen 80;
server_name blog.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name blog.example.com;
ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2368;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}
نظام العضوية والاشتراك
Settings → Membership
- السماح بالأعضاء المجانيين: مفعّل
- الاشتراكات المدفوعة: عبر Stripe
- الوصول الافتراضي للمنشورات: عام / للأعضاء فقط / مدفوع
تكامل Stripe
Settings → Membership → Stripe
1. إنشاء حساب Stripe
2. إدخال مفاتيح API
3. إضافة webhook endpoint:
https://blog.example.com/members/webhooks/stripe
النشرة البريدية
environment:
mail__transport: SMTP
mail__options__service: Mailgun
mail__options__host: smtp.mailgun.org
mail__options__port: 587
mail__options__auth__user: postmaster@mg.example.com
mail__options__auth__pass: mailgun-smtp-password
mail__from: "Blog Name <noreply@example.com>"
النسخ الاحتياطي
# نسخ احتياطي لمجلد محتوى Ghost
tar -czf ghost-backup-$(date +%Y%m%d).tar.gz ./ghost-content/
# نسخ احتياطي لقاعدة بيانات MySQL
docker exec ghost-db mysqldump -u ghost -pstrong-password ghost > \
ghost-db-$(date +%Y%m%d).sql
الخلاصة
Ghost بديل قوي وحديث لـ WordPress لنشر المحتوى. نظام العضوية المدمج وإمكانيات النشرة البريدية والمحرر النظيف يجعله مثالياً للمدونين والناشرين المحترفين. مع النشر عبر Docker على خوادم REXE يمكنك تشغيل Ghost جاهز للإنتاج في دقائق.
مقالات ذات صلة
تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
تثبيت Nextcloud: التخزين السحابي المستضاف ذاتياً والتعاون
تثبيت Nextcloud مع Docker، تهيئة Apache/Nginx، إعداد قاعدة البيانات، شهادة SSL، مزامنة الملفات، متجر التطبيقات وتحسين الأداء.
إدارة Docker مع Portainer: التحكم في الحاويات عبر واجهة الويب
تثبيت Portainer CE، إدارة Docker وKubernetes، نشر الـ stacks، إدارة الأحجام/الشبكات، تفويض المستخدمين، Webhooks وتكامل GitOps.