كيف أنتقل من Ghost إلى VeloCMS؟
صدّر محتوى Ghost بصيغة JSON واستورده إلى VeloCMS، مع الحفاظ على الأعضاء والاشتراكات المدفوعة، وإعادة تطبيق القالب، وإعداد إعادة التوجيه.
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، وانتقل إلى لوحة التحكم ← الأدوات ← الاستيراد، ثم ارفع ملف JSON الخاص بـ Ghost. يربط VeloCMS حقول مقالات Ghost بنموذج المقالات لديه: العنوان والـ slug ونص HTML وتاريخ النشر (published_at) والوسوم كلها تنتقل بسلاسة. أما قوالب المقالات المخصصة وأنماط البطاقات فلا تُحفظ — فهي خاصة بالسمة وتحتاج إلى إعادة تطبيقها من إعدادات السمة في VeloCMS بعد الاستيراد.
- المقالات ذات الحالة 'published' تُستورد منشورة.
- المسودات تُستورد كمسودات.
- المقالات المجدولة تُستورد كمسودات مع الاحتفاظ بتاريخ الجدولة الأصلي في البيانات الوصفية — ستحتاج إلى إعادة جدولتها يدوياً.
- تتحول الوسوم إلى تصنيفات في VeloCMS.
- يُعيَّن المؤلفون كأسماء نصية حرة على كل مقال، وليس كحسابات مستخدمين في VeloCMS.
الخطوة 3 — انقل أعضاء Ghost
في لوحة تحكم Ghost، انتقل إلى Members ثم Export members. ستحصل على ملف CSV يحتوي على أعمدة مثل email وname وsubscribed_at وstripe_customer_id وlabels وcomplimentary_plan. وفي لوحة تحكم VeloCMS، انتقل إلى لوحة التحكم ← الأعضاء ← استيراد CSV. يتوقع المستورد الأعمدة التالية كحد أدنى: email وname وsubscribed_at. إن كان لديك أعضاء مدفوعون، فراجع الخطوة 4 قبل الاستيراد — إذ ستحتاج إلى إعادة ربط Stripe أولاً كي تنتقل حالة العضوية المدفوعة بشكل صحيح.
الخطوة 4 — أعد ربط Stripe للأعضاء المدفوعين
إذا كان لديك أعضاء مشتركون بالدفع عبر Ghost، فقد جرت فوترتهم عبر تكامل Ghost مع Stripe، أي أن اشتراكاتهم موجودة في حسابك على Stripe. ويتيح لك نظام BYOK (Bring Your Own Keys) في VeloCMS ربط حساب Stripe نفسه. انتقل إلى لوحة التحكم ← الإعدادات ← العضوية، وافتح قسم «اشتراكات القراء»، والصق «مفتاح Stripe السري». بمجرد الربط، يستطيع VeloCMS البحث عن المشتركين النشطين بالبريد الإلكتروني واستعادة حالتهم المدفوعة تلقائياً أثناء استيراد ملف CSV للأعضاء — شريطة أن تكون اشتراكاتهم في Stripe لا تزال نشطة.
إذا ألغى أحد الأعضاء اشتراكه في Ghost، فاشتراكه في Stripe غير نشط. سيستورده VeloCMS كعضو مجاني في جميع الأحوال. لا يمكن استعادة اشتراك ملغى — يجب عليه الاشتراك من جديد بسعرك الجديد على VeloCMS.
الخطوة 5 — أعد تطبيق السمة
سمات Ghost المبنية على Handlebars (.hbs) لا تعمل على VeloCMS — يعتمد VeloCMS نظام سمات قائمًا على إعدادات مسبقة (presets) ومبنيًا على React وTailwind. انتقل إلى لوحة التحكم ← القوالب واختر الإعداد المسبق الأقرب إلى تصميم Ghost القديم. ثم خصّص الألوان والخطوط وتخطيط الصفحة في محرر السمة. وإن كانت سمة Ghost القديمة ذات مظهر مخصص للغاية، فهذه الخطوة هي الأطول — خصّص لها من 30 إلى 60 دقيقة.
الخطوة 6 — أعدّ عمليات إعادة التوجيه 301
يستخدم Ghost أنماط عناوين URL مثل yourdomain.com/post-slug. ويستخدم VeloCMS النمط نفسه افتراضيًا، لذا تنتقل معظم الروابط دون الحاجة إلى إعادة توجيه. ومع ذلك، إذا كانت مدونة Ghost تعمل على نطاق فرعي (مثل blog.yourdomain.com) وتنتقل إلى النطاق الجذر (yourdomain.com)، فستحتاج إلى إعادة توجيه 301 على مستوى DNS أو الوكيل العكسي (reverse proxy). أما لعدم تطابق أنماط الروابط داخل المدونة، فشغّل فحصًا في لوحة التحكم ← الأدوات ← فاحص الروابط المعطوبة وانقر «إنشاء إعادة توجيه 301» على كل رابط معطوب لتوجيهه إلى عنوانه الجديد. يفحص هذا الفاحص الروابط الموجودة داخل مقالاتك وصفحاتك، فلا يمكنه إنشاء إعادة توجيه لرابط قديم لا يشير إليه أي شيء في موقعك.
# 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. انتقل إلى لوحة التحكم ← نطاق مخصص ← إضافة نطاق، وتحقق من نطاقك، ثم حدِّث سجل CNAME في مزود DNS (Cloudflare أو Namecheap أو غيره) ليشير إلى نطاقك الفرعي على VeloCMS مثل yourname.velocms.org. يُجهَّز SSL تلقائياً في غضون دقائق قليلة من انتشار DNS.
الخطوة 8 — فحوصات ما بعد الترحيل
- افتح 5 إلى 10 من روابط مقالات Ghost القديمة وتأكد من أنها تُحمَّل على نطاقك الجديد أو تُعاد توجيهها بشكل سليم.
- أرسل خريطة موقعك المحدَّثة في Google Search Console: من لوحة التحكم ← تحسين محركات البحث ← رابط خريطة الموقع، انسخ الرابط والصقه في GSC.
- أرسل بريدًا إلكترونيًا تجريبيًا إلى نفسك عبر لوحة التحكم ← الأعضاء ← إرسال نشرة اختبارية للتأكد من أن تسليم البريد إلى الأعضاء يعمل.
- سجّل الدخول كعضو مدفوع للتأكد من أن جدار الدفع يظهر بشكل صحيح.
- راجع لوحة Plausible أو لوحة التحليلات لديك في اليوم التالي للتحويل للتأكد من تدفق الزيارات إلى النطاق الجديد.
أسئلة شائعة
- هل يمكنني إبقاء موقع Ghost نشطاً أثناء الترحيل؟ نعم — شغّل الاثنين بالتوازي إلى أن تنقل DNS. سيواصل Ghost خدمة الروابط القديمة أثناء بنائك لموقعك على VeloCMS.
- هل يدعم VeloCMS إرسال النشرات البريدية الأصلي في Ghost؟ يستخدم VeloCMS خدمة Resend لإرسال البريد الإلكتروني، وهي مشابهة لكنها منفصلة عن تكامل Mailgun المدمج في Ghost.
- ماذا عن بوابة Portal في Ghost؟ لدى VeloCMS بوابة أعضاء خاصة به على /member — وهي مشابهة في وظيفتها (الاشتراك وإدارة الحساب وتسجيل الدخول).
- هل يمكنني ترحيل صفحات Ghost (وليس المقالات فقط)؟ نعم — تُستورد «pages» في Ghost كصفحات في VeloCMS بنوع المنشور «page».
- ما أصعب جانب في ترحيل Ghost؟ إعادة استضافة الصور. تخزّن Ghost الصور على شبكة CDN الخاصة بها؛ ويتطلب VeloCMS إعادة رفعها إلى R2 أو تحديث روابطها في محتوى المقالات.