أدلة 12 دقائق قراءة
صفر خبرة تقنية وصفر تكلفة: أنشئ مدونتك المستقلة على نطاق علوي خاص بك في 30 دقيقة (دليل CF CMS خطوة بخطوة)
صفر خبرة تقنية وصفر تكلفة باستثناء النطاق: 8 خطوات لإنشاء مدونة على نطاق علوي خاص بك فوق الخطة المجانية من Cloudflare باستخدام CF CMS، وكيفية تشغيلها يوميًا.
هل مررت بلحظة كهذه من قبل؟
تكتب على منصة ما منذ سنتين، ثم يكفي تقييد واحد للوصول أو حظر واحد للحساب حتى يختفي محتواك ومتابعوك في لحظة.
تقرر أن تنشئ مدونتك الخاصة، فتبحث عن شرح: استأجر خادمًا، جهّز البيئة، اضبط Nginx، فعّل HTTPS، وتصدَّ للهجمات كل يوم… فتستسلم قبل أن تكتب كلمة واحدة.
هذا المقال مكتوب لك.
سأرافقك خطوة بخطوة لإنشاء مدونة مستقلة على نطاق علوي خاص بك فوق Cloudflare، باستخدام المشروع مفتوح المصدر CF CMS. والموقع الذي تقرؤه الآن بُني بهذه الطريقة نفسها.
لنكن واضحين منذ البداية:
- صفر خبرة تقنية: لا تحتاج إلى البرمجة. كل ما في الأمر نسخ ولصق ثم Enter. وإن لم تكن لديك رغبة حتى في ذلك، فسلّم الأوامر إلى وكيل ذكاء اصطناعي ودعه ينفذها.
- صفر تكلفة: باستثناء النطاق نفسه (الامتدادات الرخيصة تكلف بضعة دولارات في السنة)، يعمل الموقع وقاعدة البيانات وتخزين الصور والترجمة التلقائية كلها على الخطة المجانية من Cloudflare. لا حاجة لاستئجار أي خادم.
مستعد؟ لنبدأ.
الخلاصة أولًا: ماذا ستحصل عليه
- ✅ نطاق علوي خاص بك، مثل
yourdomain.com - ✅ HTTPS تلقائي + شبكة CDN عالمية، بسرعة لا تقل عن المواقع الكبرى
- ✅ خمس لغات: الصينية والإنجليزية واليابانية والإسبانية والعربية. تكتب مرة واحدة وتُترجم عند الحفظ
- ✅ 8 قوالب جاهزة + شعار وأيقونة favicon ولون سمة بنقرة واحدة
- ✅ لوحة تحكم مخفية خلف مسار سري عشوائي؛ فزيارة
/adminمباشرة تعيد 404 - ✅ واجهة MCP مدمجة، ليتمكن وكيل ذكاء اصطناعي من نشر المقالات وتعديل الإعدادات نيابة عنك
كل ما تحتاجه ثلاثة أشياء:
- نطاق (سأشرح لك كيف تشتريه)
- حساب مجاني على Cloudflare
- حاسوب يمكنك فتح الطرفية عليه (macOS / Linux؛ وعلى Windows يُنصح باستخدام WSL)
مخطط واحد: أين يعمل كل هذا فعلًا؟

باختصار:
- Pages: الموقع نفسه، يتولى عرض الصفحات
- D1: قاعدة البيانات، تحفظ المقالات والوسوم والإعدادات
- R2: لتخزين الصور
- Workers AI: يترجم مقالك إلى اللغات الأربع الأخرى عند الحفظ
لا يوجد خادم واحد عليك صيانته. التحديثات الأمنية والتوسّع والحماية من هجمات DDoS كلها من مسؤولية Cloudflare.
العملية كاملة في صورة واحدة: 8 خطوات

إن سار كل شيء على ما يرام، فالأمر يستغرق من 30 إلى 60 دقيقة. والخطوة الوحيدة التي تحتاج فعلًا إلى تفكير هي الأولى: اختيار اسم جيد.
الخطوة 1: اشترِ نطاقًا
النطاق هو عنوانك على الإنترنت، وهو الشيء الوحيد في هذا الحل الذي يكلّف مالًا.
يمكنك الشراء من أي مسجّل موثوق، مثل Spaceship أو Cloudflare Registrar أو Namecheap. اختر مسجّلًا بأسعار واضحة وتجديد معقول ويدعم حماية خصوصية WHOIS.
ثلاث نصائح سريعة لاختيار النطاق:
- قصير وسهل التذكر وسهل الكتابة. إن استطعت أن تقوله لصديق بصوت عالٍ، فهو نطاق جيد.
- انظر إلى سعر التجديد، لا إلى سعر السنة الأولى فقط. بعض الامتدادات رخيصة جدًا في السنة الأولى ثم يتضاعف سعرها عدة مرات في السنة الثانية.
- لا تتمسك بـ
.com: فامتدادات مثل.ccو.devو.meمناسبة جدًا للمدونات الشخصية.
الخطوة 2: اربط نطاقك بـ Cloudflare
- افتح موقع Cloudflare وأنشئ حسابًا مجانيًا.
- اضغط Add a site، وأدخل نطاقك، واختر خطة Free.
- سيعطيك Cloudflare عنوانَي خادم أسماء (Nameserver).
- ارجع إلى لوحة التحكم لدى المسجّل الذي اشتريت منه النطاق، واستبدل خوادم الأسماء بهذين العنوانين.
- انتظر من بضع دقائق إلى بضع ساعات. عندما يظهر في Cloudflare الوضع Active، يكون الأمر قد تم.
نقطة مهمة: يجب أن يكون النطاق في حساب Cloudflare نفسه الذي ستنشر منه لاحقًا. فسكربت التثبيت يبحث عن النطاق باستخدام رمز API.
الخطوة 3: أنشئ رمز API (انسخ ما يلي كما هو)
المسار: أيقونة الملف الشخصي أعلى يمين Cloudflare ← My Profile ← API Tokens ← Create Token ← Create Custom Token.
فعّل الصلاحيات الموضحة في الصورة واحدة تلو الأخرى:

- Account · Cloudflare Pages · Edit
- Account · D1 · Edit
- Account · Workers R2 Storage · Edit
- Account · Account Settings · Read
- Zone · Zone · Read (عند استخدام نطاقك الخاص)
- Zone · DNS · Edit (عند استخدام نطاقك الخاص)
تنبيهان:
- لا يحتاج Workers AI إلى أي صلاحية إضافية، فالموقع يستخدم ربط الذكاء الاصطناعي (AI binding) في Pages أثناء التشغيل.
- هذا الرمز مخصص لسكربت التثبيت فقط، فلا تعطه لوكيل الكتابة. يُعرض مرة واحدة فقط بعد إنشائه، فاحفظه فورًا.
الخطوة 4: فعّل R2
R2 هو مكان حفظ الصور، ويجب تفعيله يدويًا من لوحة التحكم مسبقًا؛ فالسكربت لا يستطيع الضغط على هذا الزر بدلًا منك.
افتح R2 من الشريط الجانبي الأيسر في لوحة تحكم Cloudflare واضغط تفعيل.
⚠️ بصراحة: بعض الحسابات تتطلب إضافة بطاقة أو حساب PayPal قبل تفعيل R2. لا تقلق، فإضافتها لا تعني أنك ستُحاسَب؛ فالاستخدام ضمن الحصة المجانية (10 GB من التخزين) بلا مقابل. ومن الصعب أن تستهلك صور مدونة شخصية هذه الحصة.
هنا بالضبط تعثّر نشري الأول: توقف السكربت في منتصف الطريق برسالة 10042 لأن R2 لم يكن مفعّلًا. فعّلته وأعدت التشغيل، فمرّ كل شيء من المحاولة الأولى.
الخطوة 5: احصل على الكود
CF CMS مفتوح المصدر، والكود موجود على GitHub: github.com/jemkuo/cf-cms
اختر أحد الخيارين:
- الموصى به: اضغط Fork على GitHub لنسخه إلى حسابك، فيسهل عليك تعديله لاحقًا.
- أو استنسخه مباشرة:
git clone https://github.com/jemkuo/cf-cms.git
cd cf-cms
تحتاج إلى تثبيت Node.js 20 أو أحدث على حاسوبك (نزّل برنامج التثبيت من الموقع الرسمي واتبع الخطوات).
الخطوة 6: انشر بأمر واحد ⭐
هذه أهم خطوة في المقال كله. أولًا، ضع رمز الخطوة 3 في متغير بيئة (يبقى داخل الطرفية فقط، ولن يطبعه السكربت أبدًا):
export CLOUDFLARE_API_TOKEN=paste-your-token
ثم أمر واحد فقط:
npm install && ./scripts/setup.sh --project myblog --domain yourdomain.com
استبدل myblog باسم المشروع الذي تريده، وyourdomain.com بنطاقك.
لست مطمئنًا؟ أضف --dry-run لتجربة أولية تفحص فقط ولا تنشئ أي شيء:
./scripts/setup.sh --project myblog --domain yourdomain.com --dry-run
يبدأ بـ«فحص شامل» أولًا
قبل أن يلمس أي شيء، يطبع السكربت قائمة فحص مسبق: الرمز والحساب وPages وD1 وR2 والنطاق، بندًا بندًا.

- كلها ✓: ينشئ تلقائيًا قاعدة بيانات D1 وحاوية R2 ومشروع Pages والمفاتيح السرية، ثم ينشر الموقع.
- يوجد ✗: لا ينشئ أي مورد على الإطلاق، ويخبرك أي خطوة فيها مشكلة، وأين تصلحها في لوحة التحكم، وأي أمر تعيد تشغيله، بالصينية والإنجليزية.
- لا داعي للبحث عن account id: إذا كان الرمز يرى حسابًا واحدًا فقط، يملؤه السكربت تلقائيًا.
فشل في المنتصف؟ أعد التشغيل ببساطة
يُحفظ التقدم محليًا في الملف .cf-cms-setup.json. إعادة التشغيل تكمل من حيث توقفت، وتُعاد استخدام موارد D1 وR2 وPages التي أُنشئت مسبقًا، فلا تتكرر ولا تُمسح مقالاتك.
سجلات قديمة على نطاقك؟ سيسألك أولًا
إذا كان نطاقك يشير سابقًا إلى خادم آخر، فإن السكربت يعرض أولًا سجلات A / AAAA / CNAME القديمة، ولا يحذفها افتراضيًا.
بعد أن تتأكد من إمكانية استبدالها، أعد التشغيل مع --replace-dns (أو أجب بـ y عند السؤال)، فيستبدلها بسجل CNAME يشير إلى Pages:

انتبه: بعد الاستبدال، لن تعود الخدمات التي كان يقدمها الخادم القديم على هذا النطاق متاحة. أما سجلات TXT وغيرها فتبقى كما هي.
بعد انتهاء التشغيل
آخر ما تطبعه الطرفية سطر يحتوي عنوان لوحة التحكم (Admin)، بهذا الشكل:
Admin: https://yourdomain.com/<ADMIN_SAFEPATH>/admin/
كلمة مرور لوحة التحكم تُولَّد عشوائيًا وتُكتب في الملف .dev.vars داخل مجلد المشروع، ولا تظهر على الشاشة.
👉 احفظ عنوان Admin مع ملف .dev.vars في مكان آمن، فهما مفاتيح مدونتك.
إذا ظهرت حالة النطاق pending فلا تقلق، فإصدار الشهادة وانتشار DNS يستغرقان عادة بضع دقائق.
الخطوة 7: ادخل لوحة التحكم المخفية وامنح موقعك طابعك
افتح عنوان Admin وأدخل كلمة المرور:

لماذا نخفيها؟ معظم أدوات الفحص الآلي تطرق /admin و/wp-login. أما لوحة تحكم CF CMS فتقع خلف مسار عشوائي، فزيارة /admin مباشرة تعيد 404 ولا يظهر حتى نموذج تسجيل الدخول.
بعد الدخول، ابدأ بأمرين:
- اختر قالبًا: مدونة تقنية شخصية (Dispatch وSignal)، ونمط حياة (Atelier وHearth)، وموقع شركة (Practice وCivic)، وشركة تقنية (Launch وOrbit)، إضافة إلى القوالب الأصلية Paper وInk وTerminal.
- أنشئ حزمة الهوية البصرية بنقرة واحدة: اضغط Generate visual kit ليُنشئ تلقائيًا شعارًا وأيقونة favicon ولون سمة متناسقة مع القالب. لم تعجبك؟ أعد التوليد، أو استبدلها بصورك الخاصة.
الخطوة 8: اكتب، واحصل على خمس لغات تلقائيًا
يأتي الموقع بعد نشره مباشرة ببضع مقالات تجريبية لترى شكله:

بعد أن تلقي نظرة، احذفها واكتب مقالاتك:
- اكتب بصيغة Markdown: العناوين والقوائم وكتل الكود والصور كلها مدعومة
- ارفع الصور مباشرة، فتُحفظ في R2
- فعّل خيار الترجمة عند الحفظ، فيُنشئ Workers AI النسخ الإنجليزية واليابانية والإسبانية والعربية تلقائيًا (مع تنسيق العربية من اليمين إلى اليسار تلقائيًا)
- اضبط SEO لكل مقال على حدة: الكلمات المفتاحية وعنوان canonical وصورة المشاركة Open Graph
تكتب مرة واحدة، فيجدك القرّاء بخمس لغات. وهذا ما لا تقدمه كثير من المنصات الكبرى.
التشغيل اليومي: اجعل وكيل الذكاء الاصطناعي محررك
إطلاق المدونة مجرد بداية. ما يوفّر عليك الجهد حقًا هو أن التشغيل اليومي يمكن تسليمه للذكاء الاصطناعي بالكامل تقريبًا.
1. اربط وكيل الذكاء الاصطناعي بجملة واحدة
يأتي CF CMS بواجهة MCP مدمجة (على المسار /mcp في نطاقك). في Cursor أو Claude أو أي عميل يدعم MCP، الصق «الوصف في جملة واحدة» الجاهز في ملف README الخاص بالمشروع، ثم أضف ADMIN_API_TOKEN من ملف .dev.vars، وسيتمكن الوكيل من:
- عرض المقالات وإنشائها وتعديلها ونشرها وحذفها
- إدارة الوسوم والأقسام والقوالب والشعار
- رفع الصور
بعد الربط، يكفي أن تقول له:
«أنشئ مسودة بالصينية بالمعرّف edge-notes في قسم notes، وترجمها إلى اللغات الأخرى.»
أمان مدروس: رمز ADMIN_API_TOKEN يدير المحتوى فقط، ولا يستطيع النشر ولا الوصول إلى حسابك في Cloudflare. ولهذا السبب أيضًا لا تعطِ الوكيل رمز Cloudflare من الخطوة 3.
2. غيّر المفاتيح السرية دوريًا
تشك في تسرّب كلمة مرور أو رمز؟ استبدله بأمر واحد:
npx wrangler pages secret put ADMIN_PASSWORD --project-name myblog
والأمر نفسه ينطبق على ADMIN_API_TOKEN وSESSION_SECRET. وبعد اكتمال النشر، يمكنك أيضًا حذف رمز Cloudflare API من الخطوة 3 أو تغييره، ثم إنشاء رمز جديد عند النشر التالي.
3. اعرف حدود الحصة المجانية
| المورد | دوره في المدونة | الحصة المجانية المعتادة |
|---|---|---|
| Pages | الموقع وFunctions | 500 عملية بناء شهريًا، و100,000 طلب Functions يوميًا |
| D1 | المقالات والإعدادات | 5 GB، مع حدود يومية لقراءة الصفوف وكتابتها |
| R2 | الصور | 10 GB تخزين، وعدد محدود من عمليات القراءة والكتابة |
| Workers AI | الترجمة عند الحفظ | 10,000 Neurons يوميًا |
راجع الأرقام الحالية في لوحة تحكم Cloudflare. حركة زيارات مدونة شخصية لن تقترب من السقف في الغالب. الترجمة تعمل عند الحفظ فقط، لا مع كل زيارة، وحصة Workers AI تتجدد يوميًا.
4. دليل سريع للأخطاء الشائعة
| ما تراه | ماذا تفعل |
|---|---|
✗ R2 is not enabled، الخطأ 10042 |
فعّل R2 من لوحة التحكم (قد تحتاج إلى إضافة وسيلة دفع أولًا)، ثم أعد التشغيل |
| الرمز مرفوض (10000) أو الصلاحيات ناقصة (9109، HTTP 403) | أكمل الصلاحيات حسب قائمة الخطوة 3، ثم نفّذ export من جديد وأعد التشغيل |
| النطاق عالق في حالة pending | راجع سجلات A / AAAA / CNAME القديمة التي يعرضها السكربت، وبعد التأكد أعد التشغيل مع --replace-dns؛ وحتى بعد ضبط DNS تحتاج الشهادة إلى بضع دقائق |
| اسم مشروع Pages مستخدم | اختر اسمًا آخر عبر --project |
| D1 أو R2 أو Pages موجود مسبقًا | أعد التشغيل ببساطة، فالموارد ذات الاسم نفسه يُعاد استخدامها |
| خطأ في الشبكة | تحقق من الاتصال وأعد التشغيل، وستُتخطى الخطوات المكتملة |
تذكّر قاعدة واحدة: إذا ظهر خطأ، اقرأ الرسالة، أصلح المشكلة، ثم أعد التشغيل. فالسكربت يخبرك أين تصلح وماذا تشغّل.
عن «صفر خبرة تقنية»: بصراحة
صحيح أنك ستفتح الطرفية وتكتب بعض الأوامر خلال هذه العملية.
لكنك لست بحاجة إلى فهم ما تفعله. كل ما عليك هو:
- انسخ الأمر
- الصقه في الطرفية
- اضغط Enter وتحقق من عدم ظهور ✗
والطريقة الأكسل: أعطِ هذا المقال وملف README لوكيل الذكاء الاصطناعي ودعه ينفذ كل شيء عنك. وعندما يتوقف، فإما أنه يحتاج منك إلى نقرة في لوحة التحكم (مثل تفعيل R2)، أو إلى تأكيد منك (مثل استبدال DNS). اتبع التعليمات فقط.
لنحسبها
| البند | التكلفة |
|---|---|
| النطاق | بضعة دولارات سنويًا فما فوق (حسب الامتداد) |
| الخادم | 0 (Cloudflare Pages) |
| قاعدة البيانات | 0 (الحصة المجانية لـ D1) |
| تخزين الصور | 0 (الحصة المجانية لـ R2) |
| الترجمة إلى خمس لغات | 0 (الحصة المجانية لـ Workers AI) |
| شهادة HTTPS + CDN | 0 |
| برنامج CMS | 0 (مفتوح المصدر) |
باستثناء النطاق، لن تنفق قرشًا واحدًا.
في الختام
المنصات تمنحك الانتشار، لكن الأرض تبقى دائمًا ملكًا لها.
المدونة المستقلة هي أصلك الرقمي الحقيقي: النطاق لك، والمحتوى لك، والقرّاء يصلون إليك مباشرة.
اخطُ الخطوة الأولى اليوم: اختر نطاقًا يعجبك، واتبع هذا المقال من أوله إلى آخره.
إن واجهتك مشكلة أثناء الإنشاء، فاترك تعليقًا. وإن وجدت المشروع مفيدًا، فنجمة ⭐ لـ CF CMS على GitHub موضع تقدير دائمًا.
في المقال القادم: كيف تجعل وكيل الذكاء الاصطناعي يدير هذه المدونة عنك كل يوم.