الترحيل·9 min read·

كيف أنتقل من Ghost إلى VeloCMS؟

صدِّر محتوى Ghost بصيغة JSON، واستورده إلى VeloCMS، وحافظ على الأعضاء والاشتراكات المدفوعة، وأعد تطبيق الثيمات، وهيّئ إعادة التوجيه 301 — الدليل الشامل خطوة بخطوة.

Ghost منصة نشر متينة، لكنك هنا لأن شيئاً ما لم يعد يلائمك — ربما قفزت الأسعار، أو تحتاج ميزة لا يوفرها Ghost، أو تريد ببساطة امتلاك المنصة بالكامل. مهما كان السبب، الانتقال إلى VeloCMS سلس إذا اتبعت الخطوات بالترتيب. يغطي هذا الدليل كل شيء: تصدير المحتوى، واستيراد الأعضاء، وإعادة ربط Stripe، وإعادة تطبيق الثيمات، وأخيراً إعداد DNS وإعادة التوجيه لحماية ترتيبك في محركات البحث.

الخطوة 1 — صدِّر محتوى Ghost بصيغة JSON

في لوحة تحكم Ghost، انتقل إلى Settings → Labs → Export your content. يولّد Ghost ملف JSON واحداً (على غرار ghost-export-2026-05-11.json) يحتوي على جميع مقالاتك وصفحاتك وعلاماتك ومؤلفيك. قد يتراوح حجم هذا الملف بين بضعة كيلوبايت لمدونة حديثة وعدة مئات من الميغابايت لمدونة نشطة منذ سنوات. تجدر الإشارة إلى أن Ghost لا يُدرج عناوين بريد الأعضاء في هذا التصدير — تلك خطوة منفصلة ستأتي لاحقاً.

تصدير Ghost لا يشمل الصور. يحتوي نص المقالات على روابط الصور التي تشير إلى نطاق Ghost القديم. قبل نقل DNS، أجرِ بحثاً واستبدالاً في روابط الصور لتوجيهها نحو حاوية تخزين R2 الجديدة على VeloCMS، أو اتركها مؤقتاً تشير إلى النطاق القديم ريثما ترفع الصور يدوياً.

الخطوة 2 — استورد ملف JSON إلى VeloCMS

سجّل الدخول إلى لوحة تحكم VeloCMS، وانتقل إلى Admin → Tools → Import، ثم ارفع ملف JSON الخاص بـ Ghost. يعيّن VeloCMS حقول Ghost على نموذج المقالات لديه: العنوان والـ slug ونص HTML وتاريخ النشر والعلامات تنتقل بسلاسة. أما قوالب المقالات المخصصة وأنماط البطاقات فلا تُحفظ — فهي مرتبطة بالثيم وتحتاج إلى إعادة تطبيق من إعدادات ثيم VeloCMS بعد الاستيراد.

  • المقالات ذات الحالة 'published' تُستورد منشورة.
  • المسودات تُستورد كمسودات.
  • المقالات المجدولة تُستورد كمسودات مع الاحتفاظ بتاريخ الجدولة الأصلي في البيانات الوصفية — ستحتاج إلى إعادة جدولتها يدوياً.
  • تتحول العلامات إلى تصنيفات في VeloCMS.
  • يُعيَّن المؤلفون كأسماء نصية حرة على كل مقال، وليس كحسابات مستخدمين في VeloCMS.

الخطوة 3 — انقل أعضاء Ghost

في لوحة تحكم Ghost، انتقل إلى Members → Export members. ستحصل على ملف CSV يحتوي على أعمدة مثل email وname وsubscribed_at وstripe_customer_id وlabels وcomplimentary_plan. في VeloCMS، انتقل إلى Admin → Members → Import CSV. يتوقع المستورد الحقول الدنيا: email وname وsubscribed_at. إن كان لديك أعضاء مدفوعون، راجع الخطوة 4 قبل الاستيراد — ستحتاج إلى إعادة ربط Stripe أولاً لضمان نقل حالة الاشتراك المدفوع بشكل صحيح.

الخطوة 4 — أعد ربط Stripe للأعضاء المدفوعين

إذا كان لديك أعضاء مشتركون بالدفع عبر Ghost، فاشتراكاتهم تعمل من خلال تكامل Ghost مع Stripe، أي أنها مخزّنة في حسابك على Stripe. تتيح لك ميزة BYOK (Bring Your Own Keys) في VeloCMS ربط الحساب نفسه على Stripe. انتقل إلى Admin → Settings → Membership → Connect Stripe والصق مفتاحك السري من Stripe. بمجرد الربط، يستطيع VeloCMS البحث عن المشتركين النشطين بالبريد الإلكتروني واستعادة حالتهم المدفوعة تلقائياً أثناء استيراد ملف CSV للأعضاء — شريطة أن تكون اشتراكاتهم في Stripe لا تزال نشطة.

إذا ألغى أحد الأعضاء اشتراكه في Ghost، فاشتراكه في Stripe غير نشط. سيُستورد في VeloCMS كعضو مجاني بصرف النظر عن أي إجراء آخر. لا يمكن استعادة اشتراك ملغى — يجب عليه الاشتراك من جديد بسعرك الجديد على VeloCMS.

الخطوة 5 — أعد تطبيق الثيم

ثيمات Ghost المبنية على Handlebars (.hbs) لا تعمل على VeloCMS — يعتمد VeloCMS نظام ثيمات مسبقة الضبط مبنياً على React وTailwind. انتقل إلى Admin → Themes واختر الثيم الأقرب إلى تصميم Ghost القديم. ثم خصص الألوان والخطوط وتخطيط الصفحة من محرر الثيم. إن كان ثيم Ghost القديم ذا مظهر خاص للغاية، فهذه الخطوة هي الأطول — خصص لها من 30 إلى 60 دقيقة.

الخطوة 6 — أنشئ إعادة التوجيه 301

يستخدم Ghost نمط عناوين URL مثل yourdomain.com/post-slug. يستخدم VeloCMS النمط ذاته بشكل افتراضي، لذا تنتقل معظم الروابط دون الحاجة إلى إعادة توجيه. ومع ذلك، إذا كانت مدونة Ghost تعمل على نطاق فرعي (مثل blog.yourdomain.com) وتنتقل إلى النطاق الجذر (yourdomain.com)، فستحتاج إلى إعادة توجيه 301 على مستوى DNS أو الوكيل العكسي. في VeloCMS، انتقل إلى Admin → Settings → Redirects وأضف قواعد لأي تعارضات في أنماط URL.

# Example Nginx rule if you moved from blog.yourdomain.com to yourdomain.com
server {
  server_name blog.yourdomain.com;
  return 301 https://yourdomain.com$request_uri;
}

الخطوة 7 — حدِّث إعدادات Cloudflare أو DNS

بعد استيراد المحتوى وضبط الثيمات وتهيئة إعادة التوجيه، حدِّث DNS لتوجيهه نحو VeloCMS. انتقل إلى Admin → Custom Domains → Add Domain، وتحقق من نطاقك، ثم حدِّث سجل CNAME في مزود DNS (Cloudflare أو Namecheap أو غيره) ليشير إلى نطاقك الفرعي على VeloCMS مثل yourname.velocms.org. يُفعَّل SSL تلقائياً في غضون دقائق قليلة من اكتمال انتشار DNS.

الخطوة 8 — فحوصات ما بعد الترحيل

  • افتح 5 إلى 10 روابط من مقالات Ghost القديمة وتأكد من تحميلها على النطاق الجديد أو إعادة توجيهها بشكل سليم.
  • أرسل خريطة موقعك المحدَّثة عبر Google Search Console: Admin → SEO → Sitemap URL → انسخ الرابط والصقه في GSC.
  • أرسل بريداً إلكترونياً تجريبياً لنفسك عبر Admin → Members → Send Test Newsletter للتأكد من صحة تسليم الرسائل للأعضاء.
  • سجّل الدخول كعضو مدفوع للتحقق من عرض الجدار الإعلاني بشكل صحيح.
  • راجع لوحة Plausible أو أي أداة تحليلات تستخدمها في اليوم التالي للتحويل للتأكد من تدفق الزيارات إلى النطاق الجديد.

أسئلة شائعة

  • هل يمكنني إبقاء موقع Ghost نشطاً أثناء الترحيل؟ نعم — شغّل كلاهما معاً حتى تنقل DNS. سيستمر Ghost في عرض الروابط القديمة بينما تبني موقع VeloCMS.
  • هل يدعم VeloCMS إرسال النشرات الإخبارية كما يفعل Ghost؟ يستخدم VeloCMS Resend لإرسال البريد الإلكتروني، وهو مماثل في الوظيفة لكنه منفصل عن تكامل Ghost مع Mailgun.
  • ماذا عن بوابة Portal في Ghost؟ يمتلك VeloCMS بوابة أعضاء خاصة به على /member — وظيفتها مشابهة (الاشتراك وإدارة الحساب وتسجيل الدخول).
  • هل يمكنني ترحيل صفحات Ghost (وليس المقالات فقط)؟ نعم — تُستورد 'pages' في Ghost كصفحات VeloCMS بنوع المنشور 'page'.
  • ما أصعب جانب في ترحيل Ghost؟ إعادة استضافة الصور. تخزّن Ghost الصور على شبكة CDN الخاصة بها؛ يتطلب VeloCMS منك رفعها من جديد إلى R2 أو تحديث روابطها في محتوى المقالات.