[{"data":1,"prerenderedAt":151},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-ghost-على-خادمك-الـvps-الخاص-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":31,"sections":32,"ctaTitle":97,"ctaBody":98,"ctaButton":99,"ctaUrl":100,"relatedPosts":101},72,"استضافة-ghost-على-خادمك-الـvps-الخاص",{"fr":10,"en":11,"ar":8},"heberger-ghost","hosting-ghost-on-your-own-vps","استضافة Ghost على خادمك الـVPS: دليل شامل 2026","نشر Ghost v6 على خادمك الـVPS مع Caddy وMySQL وGhost CLI وStripe Tax: التثبيت ووكيل TLS العكسي والتحديثات واستكشاف أخطاء البدء الشائعة.",9,0,false,"2026-04-09T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":21,"appSlug":30},"ghost","‏Ghost منصة النشر الحديثة المصمَّمة للمبدعين: مدوّنة سريعة، ونشرات بريدية مدمجة، واشتراكات مدفوعة أصلية. مع ‏Ghost v6‏ (يوليو 2026)، تطوّر تحقيق الدخل من النشرات البريدية وتغيّرت إعدادات ‏Stripe‏. وباستضافته ذاتيًا على خادم ‏VPS‏، تتجنّب عمولات ‏Ghost(Pro)‏ و‏Substack‏ وتحتفظ بالتحكم الكامل في جمهورك. يغطي هذا الدليل التثبيت الكامل، والوكيل العكسي ‏TLS‏ مع ‏Caddy‏، والتحديثات عبر ‏Ghost CLI‏، واستكشاف أخطاء البدء الأكثر شيوعًا.",[33,37,48,51,76,79,82,85,88,91,94],{"type":34,"title":35,"body":36},"h2","لماذا تستضيف Ghost ذاتيًا على خادم VPS","يجمع ‏Ghost‏ بين ما يفعله ‏WordPress‏ بعناء وما يفرض عليه ‏Substack‏ ثمنًا باهظًا: محرّر أنيق، وأداء أصلي ممتاز (‏Node.js‏)، وإدارة مدمجة للأعضاء والاشتراكات المدفوعة عبر ‏Stripe‏، وإرسال النشرات البريدية دون إضافة. لكن ‏Ghost(Pro)‏ يحتسب التكلفة حسب حجم الجمهور، ومنصات النشرات البريدية تقتطع عمولة من إيراداتك.\n\nوباستضافته على خادمك الـ‏VPS‏، تحتفظ بـ 100% من مشتركيك المدفوعين (باستثناء رسوم ‏Stripe‏)، وتخصّص القالب دون قيود، وتتحكم في قائمة بريدك الإلكتروني — وهي أثمن أصولك. ومع ‏Ghost v6‏، يستفيد المبدعون الذين يحقّقون دخلًا من نشراتهم البريدية من تحصيل ضريبة القيمة المضافة تلقائيًا عبر ‏Stripe Tax‏، دون أي اعتماد على خدمة طرف ثالث.",{"type":38,"title":39,"items":40},"ul","فوائد Ghost مُستضاف ذاتيًا",[41,42,43,44,45,46,47],"لا عمولة منصة على اشتراكاتك المدفوعة (باستثناء Stripe)","أداء أصلي: يُقاس زمن التحميل انطلاقًا من اتصال القارئ نفسه — ويتغيّر بحسب المشغّل والساعة والطريق المسلوك","نشرات بريدية وأعضاء مدمجون، دون تكديس الإضافات","تخصيص كامل لقالب Handlebars ووصول كامل إلى واجهة API","تحكّم في قائمة مشتركيك وبياناتك","تكلفة ثابتة للخادم الـVPS مهما كان عدد القرّاء","‏Ghost v6‏: تحصيل ضريبة القيمة المضافة مدمج عبر ‏Stripe Tax‏ للمبدعين الذين يحقّقون دخلًا",{"type":34,"title":49,"body":50},"متطلبات واقعية","يعمل ‏Ghost v6‏ على ‏**Node.js 20 LTS**‏ كحدٍّ أدنى (يُنصح بـ ‏Node 22‏ للأداء). خصّص خادم ‏VPS‏ بـ ‏vCPU‏ واحد و2 غيغابايت من الذاكرة ‏RAM‏ على الأقل لمدوّنة بحركة مرور مريحة، وارتقِ إلى 4 غيغابايت إن نما جمهورك بقوة أو إن كنت ترسل نشرات بريدية ضخمة. للاستخدام الإنتاجي، احجز 20 غيغابايت من القرص كحدٍّ أدنى للوسائط وقاعدة البيانات.\n\nقاعدة البيانات الموصى بها في الإنتاج هي ‏**MySQL 8**‏ (لا يُدعم ‏SQLite‏ إلا في بيئة التطوير — راجع قسم استكشاف الأخطاء). تحتاج أيضًا إلى خدمة ‏SMTP‏ للمعاملات (‏Mailgun‏ أو ‏Postmark‏ أو ‏Brevo‏) للإرسال الموثوق للنشرات البريدية ورسائل مصادقة الأعضاء، ونطاق `‏blog.yourdomain.com‏` يشير إلى عنوان ‏IP‏ خادمك، و‏**Caddy**‏ أو ‏Nginx‏ كوكيل عكسي ‏HTTPS‏. يُفضَّل ‏Caddy‏ لأنه يُوفّر شهادات ‏Let's Encrypt‏ ويجدّدها دون أي إعداد إضافي.",{"type":52,"title":53,"steps":54},"steps","التثبيت عبر Ghost CLI (الطريقة الموصى بها)",[55,58,61,64,67,70,73],{"title":56,"body":57},"تحضير الخادم","على ‏Debian\u002FUbuntu‏، ثبّت ‏Node.js 20‏ و‏MySQL 8‏ و‏Nginx‏ (مطلوب من قِبَل ‏Ghost CLI‏ للتحقق من التوافق) و‏Caddy‏. أنشئ مستخدمًا مخصصًا (ليس ‏root‏):\n\n```bash\nadduser --disabled-login ghost-user\nsu - ghost-user\n```",{"title":59,"body":60},"تثبيت Ghost CLI","```bash\nnpm install ghost-cli@latest -g\n```\n\n‏Ghost CLI‏ يتولّى التثبيت وعمليات ترحيل قواعد البيانات والتحديثات وإعادة تشغيل مدير العمليات ‏PM2‏.",{"title":62,"body":63},"إنشاء المجلد وتشغيل التثبيت","```bash\nmkdir -p \u002Fvar\u002Fwww\u002Fghost\ncd \u002Fvar\u002Fwww\u002Fghost\nghost install\n```\n\nيطلب منك المعالج رابط المدوّنة (مثل `https:\u002F\u002Fblog.yourdomain.com‏`) وبيانات اعتماد ‏MySQL‏ وإعدادات ‏SMTP‏ وما إذا كنت تريد ضبط ‏Nginx‏. أجب بـ ‏**لا**‏ على خطوة ‏Nginx‏ إن كنت تستخدم ‏Caddy — ستضبطه في الخطوة التالية.",{"title":65,"body":66},"ضبط الوكيل العكسي TLS مع Caddy","أنشئ ملف `Caddyfile` أو عدّله:\n\n```bash\nblog.yourdomain.com {\n    reverse_proxy localhost:2368\n    encode gzip\n    header \u002Fghost\u002F* Cache-Control \"no-store\"\n    header \u002Fmembers\u002F* Cache-Control \"no-store\"\n}\n```\n\n‏Caddy‏ يحصل على شهادة ‏Let's Encrypt‏ ويجدّدها تلقائيًا. يستمع ‏Ghost‏ محليًا على المنفذ 2368؛ ‏Caddy‏ وحده هو المكشوف على المنفذَين 80 و443.",{"title":68,"body":69},"تأمين أول وصول","افتح المسار `\u002Fghost‏` مباشرة بعد التثبيت: يعرض ‏Ghost‏ معالج إنشاء الحساب (الاسم والبريد الإلكتروني وكلمة المرور). أكمله دون تأخير — ما دام المعالج لم يكتمل، يمكن لأي شخص يصل إلى هذا العنوان أن يصبح مالك المدوّنة.",{"title":71,"body":72},"ربط خدمة SMTP","في ‏**الإعدادات → البريد الإلكتروني**‏، تحقّق من صحة بيانات اعتماد ‏SMTP‏ وأرسل بريدًا اختباريًا. إرسال النشرات البريدية ورسائل تسجيل دخول الأعضاء يمرّان عبر هذا الإعداد — تنسيق `MAIL_FROM‏` خاطئ (دون نطاق موثَّق) هو أحد أكثر أسباب الأخطاء الصامتة عند التسجيل شيوعًا.",{"title":74,"body":75},"ربط Stripe وتفعيل الاشتراكات","في ‏**الإعدادات → الأعضاء**‏، اربط حساب ‏Stripe‏ الخاص بك لتفعيل الاشتراكات المدفوعة. حدّد مستوياتك (‏tiers‏) وأسعارك الشهرية والسنوية، ثم انشر مقالك الأول وأرسل نشرتك البريدية الأولى.",{"type":34,"title":77,"body":78},"تشغيل Caddy والتحقق من الوكيل العكسي","بعد كتابة ملف `Caddyfile`، شغّل ‏Caddy‏ أو أعِد تحميله لتطبيق الإعداد:\n\n```bash\ncaddy run --config \u002Fetc\u002Fcaddy\u002FCaddyfile\n```\n\nإذا كان ‏Caddy‏ مُدارًا كخدمة ‏systemd‏ (وهو الحال بعد التثبيت عبر ‏APT)‏، فضّل أمر إعادة التحميل السلس دون انقطاع:\n\n```bash\nsystemctl reload caddy\n```\n\nيتصل ‏Caddy‏ فورًا بـ ‏Let's Encrypt‏ للحصول على شهادة ‏TLS‏ لنطاقك عبر تحدي ‏HTTP-01‏. في غضون 30 ثانية، يجب أن يستجيب `‏https:\u002F\u002Fblog.yourdomain.com‏`. تحقّق من حالة الشهادة:\n\n```bash\ncurl -sv https:\u002F\u002Fblog.yourdomain.com\u002F 2>&1 | grep -E 'SSL|subject|issuer'\n```\n\nإذا أظهر الأمر ‏`issuer: O=Let's Encrypt`‏، فالشهادة سارية. في حال ظهور ‏`connection refused`‏، تحقّق من تشغيل ‏Ghost‏ على المنفذ 2368 بالأمر `ghost status‏` من مجلد التثبيت. إذا كان المنفذ 443 مغلقًا في جدار الحماية، افتحه قبل تشغيل ‏Caddy‏: `ufw allow 443‏`.",{"type":34,"title":80,"body":81},"Ghost v6 وStripe Tax: الحقل الجديد tax_id_collection","يُدخل ‏Ghost v6‏ دعم الحقل `tax_id_collection‏` في واجهة ‏API‏ الخاصة بـ ‏Stripe‏. يتيح هذا الحقل لـ ‏Stripe Tax‏ جمع رقم التسجيل الضريبي أو رقم تعريف المشتري تلقائيًا لحظة الدفع، وفق الأنظمة الضريبية الأوروبية والعالمية.\n\n**بالنسبة للنسخ الموجودة المُحدَّثة إلى Ghost v6**، هذه الميزة هي ضبط من جانب ‏Stripe‏، وليس تغييرًا في ‏Ghost‏ نفسه. نقطتان للتحقق:\n\n1. في لوحة تحكم ‏Stripe‏، فعّل ‏**Stripe Tax**‏ واضبط قواعدك الضريبية حسب البلد.\n2. في ‏**Stripe → Checkout → الإعدادات**‏، فعّل جمع الرقم الضريبي إن كان مطلوبًا في سوقك.\n\nستستمر نسخ ‏Ghost v5‏ المُحدَّثة إلى ‏v6‏ دون تعديل إعدادات ‏Stripe‏ في العمل، غير أن ميزات الامتثال الضريبي الجديدة ستظل غير نشطة حتى تضبط ‏Stripe Tax‏ من جانبك.",{"type":34,"title":83,"body":84},"تحديث Ghost عبر Ghost CLI","يُبسّط ‏Ghost CLI‏ عمليات التحديث الصغيرة والكبيرة. من مجلد التثبيت:\n\n```bash\ncd \u002Fvar\u002Fwww\u002Fghost\nghost update\n```\n\nلاستهداف إصدار محدد، مثلًا عند الانتقال من ‏v5‏ إلى ‏v6‏:\n\n```bash\nghost update 6.x.x\n```\n\n‏Ghost CLI‏ يوقف عملية ‏PM2‏، ويُطبّق عمليات ترحيل قاعدة البيانات، ويُحدّث الملفات، ويُعيد تشغيل ‏Ghost‏. إذا فشلت عملية ترحيل ما، يُجري ‏Ghost CLI‏ تراجعًا تلقائيًا ويعرض تفاصيل الخطأ في الطرفية.\n\nقبل أي تحديث رئيسي (‏v5‏ → ‏v6‏)، خطوتان وقائيتان لا غنى عنهما: احتفظ بنسخة احتياطية من مجلد المحتوى `\u002Fvar\u002Fwww\u002Fghost\u002Fcontent‏` (الوسائط والثيمات المخصصة)، وصدّر قاعدة بيانات ‏MySQL‏:\n\n```bash\nmysqldump -u ghost -p ghost_db > ghost_backup_$(date +%F).sql\n```\n\nأخيرًا، تحقّق من الإصدار المثبَّت بعد التحديث:\n\n```bash\nghost version\n```\n\nرقم إصدار خاطئ بعد التحديث يدل عادةً على مشكلة في أذونات مجلد `\u002Fvar\u002Fwww\u002Fghost‏` — تحقّق من أن المستخدم المخصص هو مالك المجلد.",{"type":34,"title":86,"body":87},"استكشاف الأخطاء: أخطاء البدء الشائعة","**يبدأ Ghost لكنه يُرجع صفحة بيضاء أو خطأ 500**\nتحقّق من السجلات بالأمر `ghost log‏`. أكثر الأسباب شيوعًا هي قيمة `url‏` غير صحيحة في `config.production.json‏` — يولّد ‏Ghost‏ جميع روابطه الداخلية من هذه القيمة، وعنوان ‏HTTP‏ بينما ‏Caddy‏ يخدم عبر ‏HTTPS‏ يُسبّب حلقات إعادة توجيه.\n\n**الخطأ «ER_NOT_SUPPORTED_AUTH_MODE» عند البدء**\n‏Ghost v6‏ يتطلّب ‏MySQL 8‏ مع مكوّن المصادقة `mysql_native_password‏`. إن كان ‏MySQL‏ لديك يستخدم `caching_sha2_password‏` افتراضيًا، عدّل المستخدم:\n\n```bash\nALTER USER 'ghost'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';\nFLUSH PRIVILEGES;\n```\n\n**SQLite في الإنتاج: لماذا ليس خيارًا**\n‏Ghost‏ يقبل ‏SQLite‏ في وضع التطوير، لكن هذا المحرّك غير مدعوم في الإنتاج: لا يتعامل مع الوصول المتزامن، والنشرات البريدية الضخمة وذُرى حركة المرور تُسبّب أقفال قاعدة بيانات لا يمكن التراجع عنها. انتقل إلى ‏MySQL‏ قبل الإطلاق.\n\n**فشل رفع الثيم في الإنتاج**\n‏Ghost‏ يُقيّد أحجام رفع الثيمات. إن فشل الرفع صامتًا أو أعاد خطأ 413، اضبط الحدّ من جانب ‏Caddy‏:\n\n```bash\nblog.yourdomain.com {\n    request_body {\n        max_size 50MB\n    }\n    reverse_proxy localhost:2368\n}\n```\n\n**MAIL_FROM مُعطَّل: الأعضاء لا يتلقّون رسائل بريدية**\nيجب أن يحمل الحقل `mail.from‏` في `config.production.json‏` عنوانًا يكون نطاقه موثَّقًا لدى مزوّد ‏SMTP‏ الخاص بك (سجلات ‏SPF‏ و‏DKIM‏ نشطة). النطاق غير الموثَّق يُفضي إلى أخطاء صامتة عند التسجيل أو إلى رفض ‏SMTP‏ الذي نادرًا ما يُظهره ‏Ghost‏ بوضوح في سجلاته.",{"type":89,"body":90},"tip","ضع ‏Cloudflare‏ في وضع الوكيل أمام ‏Caddy‏ لامتصاص ذُرى حركة المرور: كل محتوى ‏Ghost‏ العام تقريبًا ثابت ويُخزَّن مؤقتًا بكفاءة عالية. استثنِ `\u002Fghost\u002F‏` و`\u002Fmembers\u002F‏` و`\u002Fapi\u002F‏` من التخزين المؤقت عبر قواعد صفحة أو قاعدة تخزين مؤقت مخصصة — يجب أن تصل هذه المسارات دائمًا مباشرةً إلى ‏Ghost‏ لكي تعمل مصادقة الأعضاء واللوحة الإدارية بصورة صحيحة.",{"type":89,"title":92,"body":93},"النسخ الاحتياطية التلقائية","يعيش المحتوى الديناميكي لـ ‏Ghost‏ (الوسائط والثيمات المخصصة) في `\u002Fvar\u002Fwww\u002Fghost\u002Fcontent‏`. أضف مهمة ‏cron‏ تحتفظ بنسخة احتياطية من هذا المجلد وتصدير ‏MySQL‏ يومي إلى تخزين بعيد. لا يحتفظ ‏Ghost CLI‏ بنسخ احتياطية تلقائيًا.\n\n```bash\n# تصدير MySQL يومي — أضفه إلى crontab\n0 2 * * * mysqldump -u ghost -p ghost_db | gzip > \u002Fbackups\u002Fghost-$(date +%F).sql.gz\n```",{"type":89,"title":95,"body":96},"التوثيق الرسمي","للإعداد المتقدّم والخيارات الخاصة بالأداة، ارجع إلى \u003Ca href=\"https:\u002F\u002Fghost.org\u002Fdocs\" target=\"_blank\" rel=\"noopener noreferrer\">التوثيق الرسمي لـ Ghost\u003C\u002Fa>. يغطي هذا الدليل النشر على خادم ‏VPS‏؛ ويبقى توثيق الناشر المرجعَ للإعدادات الدقيقة والتحديثات الكبرى وحالات الاستخدام الخاصة.","منبرك الإعلامي المستقل، على خادمك الـVPS","يوفّر خادم VPS Cloud من ServOrbit حزمة Node.js وقاعدة بيانات MySQL المثاليتين لتشغيل Ghost وتحصيل اشتراكاتك دون عمولة منصة. مع قالب جاهز للنشر.","أطلق مدوّنة Ghost الخاصة بي","\u002Fmarketplace\u002Fأنظمة-إدارة-المحتوى-والمواقع\u002Fghost",[102,118,134],{"id":103,"slug":104,"slugs":105,"title":108,"excerpt":109,"readTime":110,"views":15,"isPinned":16,"publishedAt":111,"category":112,"categories":113,"featuredImage":26,"bgImage":27,"posterImage":115,"relatedSolution":116},71,"استضافة-nextcloud-على-خادمك-الـvps-الخاص",{"fr":106,"en":107,"ar":104},"heberger-nextcloud","hosting-nextcloud-on-your-own-vps","‎Nextcloud‎ على ‎VPS‎ : الدليل الكامل ‎NC 34‎ والأمان","‏انشر ‎Nextcloud 34.0.2‎ على ‎VPS‎ الخاص بك مع ‎Docker‎ و‎Redis‎. دليل شامل: تطبيقات ‎NC 34.0.0‎ المفقودة وقيد ‎oc_filecache_extended‎ على ‎PostgreSQL‎ وثغرات ‎CVE‎.",12,"2026-04-10T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[114],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":21,"appSlug":117},"nextcloud",{"id":119,"slug":120,"slugs":121,"title":124,"excerpt":125,"readTime":126,"views":15,"isPinned":16,"publishedAt":127,"category":128,"categories":129,"featuredImage":26,"bgImage":27,"posterImage":131,"relatedSolution":132},73,"استضافة-wordpress-على-خادم-vps-الخاص-بك",{"fr":122,"en":123,"ar":120},"heberger-wordpress","host-wordpress-on-your-own-vps","استضافة WordPress على خادم VPS الخاص بك","استضِف WordPress على خادم VPS الخاص بك لأقصى أداء وتحكّم: Docker وMariaDB والتخزين المؤقت (cache) وreverse proxy وSSL.",3,"2026-04-08T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[130],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":21,"appSlug":133},"wordpress",{"id":135,"slug":136,"slugs":137,"title":140,"excerpt":141,"readTime":142,"views":15,"isPinned":16,"publishedAt":143,"category":144,"categories":148,"featuredImage":26,"bgImage":27,"posterImage":150,"relatedSolution":26},37,"انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps",{"fr":138,"en":139,"ar":136},"deployer-avec-nginx-proxy-manager","deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر تطبيقاتك باستخدام Nginx Proxy Manager على خادم VPS","أدِر النطاقات وشهادات SSL والوكيل العكسي لعدة خدمات على خادم VPS باستخدام Nginx Proxy Manager: التثبيت وشبكات Docker واستكشاف أخطاء 502 والإعداد المتقدم.",10,"2026-05-14T00:00:00+00:00",{"id":126,"name":145,"slug":146,"color":147,"icon":146},"النشر","deploiement","bg-success\u002F10 text-success",[149],{"id":126,"name":145,"slug":146,"color":147,"icon":146},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",1787580937609]