blog Business Software Technology

تم إصداره أخيرًا! تطوير نظام إدارة المحتوى KuroCMS الجزء الثالث

تم إصدار KuroCMS، نظام إدارة المحتوى بدون رأس والأسرع المتوافق مع Cloudflare. يتميز بمثبت ويب بدون كمبيوتر، ونظام متعدد اللغات، وتحديثات سهلة.


تم إطلاق KuroCMS رسميًا أخيرًا! إنه نظام إدارة محتوى بدون رأس متعدد اللغات من الجيل القادم ومجاني تمامًا، يوفر توزيعًا فائق السرعة على حافة Cloudflare وإعدادًا بسيطًا من الهواتف الذكية.

هناك عدد لا يحصى من منصات إدارة المحتوى (CMS) في العالم، ولكن عندما يحاول المطورون الأفراد أو أصحاب الأعمال الصغيرة الحصول على "نطاقهم الخاص" و"تصميمهم الخاص" و"سرعة عرض فائقة السرعة"، فإن الصعوبة وتكاليف التشغيل الشهرية ترتفع فجأة بشكل كبير. ومع ذلك، فإن هدف KuroCMS، الذي ناقشناه في الجزء الأول والثاني من هذه السلسلة، أصبح علنيًا أخيرًا! وإلى جانب الإصدار الرسمي للإصدار 1.7.0، سيفصل هذا الإدخال الثالث من مذكرات التطوير الميزات المختلفة المضافة حديثًا وجاذبيتها الساحقة. بالمناسبة، قام موقع Kurousagi هذا أيضًا باستبدال Strapi بالكامل بـ KuroCMS وهو يستخدمه فعليًا.

بالطبع، لا يزال هناك متسع كبير للتحسين وإصلاح الأخطاء، لكننا قررنا إصداره اليوم بعد أن ثبتت قابليته للاستخدام بعد يومين إلى ثلاثة أيام من الاختبار.

التكامل بين "المجانية التامة" و"سرعة العرض اللامحدودة" التي تم إنشاؤها بواسطة بنية Cloudflare الأصلية

الميزة المعمارية الأكبر لـ KuroCMS هي أن بنيته الخلفية والبنية التحتية للاستضافة كلها مقترنة بشكل أصلي ببيئات الحوسبة الطرفية لـ Cloudflare (Workers، D1، KV، R2، Workers Assets).

تطلبت أنظمة إدارة المحتوى التقليدية بدون رأس ومنصات مثل WordPress رسوم خادم إيجار شهرية تتراوح من بضع مئات إلى بضع آلاف ين، بالإضافة إلى عناء إدارة قاعدة البيانات. ومع ذلك، تم تصميم KuroCMS لتحقيق أقصى استفادة من الفئة المجانية القوية لـ Cloudflare. ولتشغيل مدونة قياسية، يمكن تشغيلها بتكلفة شهرية تبلغ "0 ين بالضبط".

[معايير الفئة المجانية لـ Cloudflare]
・العمال (تشغيل الخادم): 100,000 طلب/يوم
・D1 (قاعدة بيانات SQLite): مساحة تخزين 5 جيجابايت
・KV (ذاكرة التخزين المؤقت للصفحة): 100,000 قراءة / 10,000 كتابة يوميًا
・R2 (تخزين الوسائط): مساحة تخزين 10 جيجابايت / 1,000,000 عملية شهريًا
من غير المحتمل للغاية تجاوز هذه الحدود للمواقع الشخصية أو الصغيرة إلى المتوسطة.

علاوة على ذلك، لا يوجد أي مساومة على سرعة العرض. يستخدم KuroCMS آلية ذاكرة تخزين مؤقت فائقة السرعة ثلاثية المستويات. وعند الطلب، تستجيب أقرب حافة (ذاكرة التخزين المؤقت للحافة)، وفي حالة عدم وجود ذاكرة التخزين المؤقت، يتم إرجاعها على الفور من تخزين KV. ويحقق هذا وقت تحميل الصفحة (TTFB) يقل عن 100 مللي ثانية من أي مكان في العالم، متباهيًا بأداء يزيل تمامًا إجهاد المستخدم.

وبينما يعرض الموقع الناتج سرعات فائقة باستخدام Vanilla JS و Tailwind CSS دون أي مكتبات تابعة، فإن KuroCMS نفسه لا يستخدم أي إطار عمل. لذلك، لا توجد حاجة لإدارة إصدار إطار العمل أو إصلاحات التكيف، وبما أنه لا يوجد عبء إضافي من استخدام أطر العمل، فإن KuroCMS يعمل بسرعة لا تصدق.

بدون كمبيوتر! "مثبت ويب" يمكن تشغيله حتى من الهاتف الذكي

تطلبت أنظمة إدارة المحتوى بدون رأس عادةً عمليات الكمبيوتر الشخصي أو واجهة خط الأوامر (CLI) من إعداد بيئة البناء إلى التشغيل والنشر. ومع ذلك، تم تطوير KuroCMS بهدف "النشر السهل للجميع بدون كمبيوتر شخصي"، مما أدى إلى إنشاء مثبت ويب مخصص.

يقوم المستخدمون ببساطة بالوصول إلى الصفحة المخصصة عبر المتصفح وربط حساب Cloudflare الخاص بهم، ويتم توفير الموارد مثل Workers و D1 و KV تلقائيًا، مما يؤدي إلى تشغيل لوحة إدارة KuroCMS. وبمجرد تسجيل أول مستخدم كمسؤول (admin)، يتم إغلاق شاشة التهيئة (/initialize/) تلقائيًا لضمان أمان عالٍ. وهذا نظام ثوري يسمح بإكمال جميع عمليات النشر والتكوين الأولي مباشرة من شاشة الهاتف الذكي.

"نموذج بيانات متعدد اللغات (i18n) حقيقي" مع دعم مدمج للغات متعددة

منذ المراحل الأولى للتطوير، تم تصميم KuroCMS مع مراعاة الدعم متعدد اللغات للتوزيع العالمي. وفي موقع Kurousagi هذا، تم إعداده لعرض ما مجموعه 9 لغات، بما في ذلك اليابانية والإنجليزية والألمانية والفرنسية والإيطالية والإسبانية والصينية والكورية والأوكرانية. *يرجى استخدام خدمة الذكاء الاصطناعي السحابية المشترك بها. شخصيًا، كما تم عرضه في المقالات السابقة، أوصي بـ Gemini لنبرة مهذبة، و ChatGPT لنبرة ودية، و Claude لنبرة رسمية.

رمز اللغة لغة العرض بنية عنوان URL الميزات
ja اليابانية (الموقع الافتراضي) /path/to/page تم تعيينها كلغة أساسية، ويكتب Kurousagi المقالات باليابانية فقط.
en الإنجليزية /path/to/page?lang=en التحويل إلى الإنجليزية عبر REST API باستخدام سحابات ذكاء اصطناعي منخفضة التكلفة مثل Gemini.
zh / ko / de / fr / it / es / uk الصينية / الكورية / الألمانية / الفرنسية / الإيطالية / الإسبانية / الأوكرانية /path/to/page?lang={code} توجيه نفس السحابة لترجمة المحتوى من الإنجليزية إلى اللغات الأخرى بالتتابع.

يتم إدارة نموذج البيانات بشكل جميل في علاقة "واحد إلى متعدد"، حيث تتدلى نصوص الترجمة لكل لغة (العنوان، الملخص، body_html) تحت معرف مقال واحد (did) وslug مشترك. وعند الترجمة إلى لغة جديدة، يمكنك ببساطة تحديد اللغة من القائمة المنسدلة في لوحة الإدارة لتكرار محتوى اللغة الأساسية الحالية بنقرة واحدة وبدء الترجمة.

إزالة حواجز التصميم: "وظيفة القالب" والمشاركة المجتمعية

فيما يتعلق بـ "حرية التصميم"، وهي عامل جذب رئيسي لأنظمة إدارة المحتوى بدون رأس، يتميز KuroCMS أيضًا بمواصفاته الفريدة. فهو مجهز بـ "Template API" يتعامل مع HTML + رموز KuroCMS الخاصة مباشرة كقوالب.

يقوم محرك القوالب هذا بتوسيع المتغيرات والقوائم على جانب الحافة ديناميكيًا أو أثناء البناء الثابت، بمجرد كتابة تعبيرات خاصة مثل site.name أو #each articles.../each في HTML. ولا توجد معرفة مطلوبة بأطر عمل جافا سكريبت المتضخمة، مما يسمح لك ببناء تصميمك الخاص بالكامل باستخدام HTML/CSS/JS النقي.

علاوة على ذلك، يمكن مشاركة القوالب التي تم إنشاؤها وتنزيلها مع المستخدمين في جميع أنحاء العالم بنقرة واحدة عبر "مكتبة القوالب المجتمعية". وبتوصيلها مباشرة بالمكتبة العامة من شاشة "تحديد القالب" في لوحة الإدارة، يمكنك التحقق من شاشات المعاينة قبل التثبيت وتطبيق التصميم المفضل لديك على الفور على موقعك.

[وظيفة توليد الصور المصغرة التلقائية]
عند نشر قالبك المصمم للمجتمع، تقوم لوحة الإدارة برسم HTML مؤقتًا في إطار iframe وتلتقطه تلقائيًا كصورة JPEG في المتصفح باستخدام تقنية html2canvas، وتسجله تلقائيًا كصورة مصغرة للمكتبة. ولا يحتاج المستخدمون إلى إنشاء صور يدويًا.

إنشاء اتساق طباعي باستخدام "وظيفة تطبيق خطوط الويب"

حتى لو قمت بنشر قالب مصمم بشكل جميل، فإذا ظهرت الخطوط غير متسقة اعتمادًا على نظام تشغيل الهاتف الذكي أو الكمبيوتر الشخصي الذي يعرض الموقع، فقد يفسد ذلك انطباع الموقع. ولمعالجة هذا، تم تجهيز KuroCMS بميزة إدارة تكامل خطوط الويب.

تتميز لوحة الإدارة بكتالوج مدمج يضم 40 خطاً مختاراً بعناية من خطوط جوجل (Google Fonts)، تتراوح بين الخطوط اليابانية والأوروبية وخطوط monospace. وباستخدام واجهة مستخدم مكوكية ذات لوحين، يمكن إدارة إضافة الخطوط للتحميل وتغيير ترتيب الأولويات وتعيين "الخط الافتراضي" بشعور السحب والإفلات. وبمجرد تحديد خط افتراضي، يتم حقن روابط CDN تلقائيًا في <head> أثناء عمليات البناء العامة، متجاوزة مواصفات CSS على جانب القالب لتوحيد طباعة الموقع بأكمله بشكل جميل.

علاوة على ذلك، فإن محرر WYSIWYG الخاص بلوحة الإدارة (KuroEditor) متكامل تمامًا مع هذه الإعدادات. ولأنك تستطيع الكتابة في شاشة التحرير بنفس الخط تمامًا مثل الموقع العام، فإنه يلغي تمامًا إجهاد الاختلاف بين ما تكتبه وما يتم نشره.

"سلسلة البناء (Build Stream)" لتتبع التقدم المرئي والتحديثات الذاتية

أثناء "بناء الموقع بالكامل" الذي يتم إجراؤه بعد تحديث عدد كبير من المقالات، فإنه من الشائع الشعور بالقلق عندما لا يكون التقدم مرئيًا. يوفر KuroCMS ميزة ترجع تدفق التقدم بتنسيق NDJSON (Newline Delimited JSON) من واجهة برمجة تطبيقات تنفيذ البناء (POST /api/build)، مما يعكس التقدم في الوقت الفعلي على شريط تقدم لوحة الإدارة وعارض السجلات.

أثناء عمليات البناء، تعمل ميزة ذاكرة التخزين المؤقت (page_build_cache) لتخطي الصفحات غير المتغيرة، مما يقلل من كتابة KV الزائدة لتحقيق أقصى قدر من كفاءة استخدام الحافة.

بالإضافة إلى ذلك، تقوم لوحة التحكم بعدّ عمليات كتابة KV للسماح للمستخدمين بالتحقق مما إذا كان يمكن إجراء التحديثات ضمن الفئة المجانية، مما يساعدهم على قياس حدود تحديث KV اليومية (أعمال البناء) الخاصة بهم.

[التحديثات التلقائية بنقرة واحدة]
كانت العقبة الأكبر لاستضافة نظام إدارة محتوى مفتوح المصدر بدون رأس ذاتيًا هي صعوبة عملية التحديث. ويتميز KuroCMS بوظيفة التحديث الذاتي. فهو يتصل بمستودع إصدارات GitHub الرسمي، ويخطر لوحة الإدارة عند توفر إصدار جديد، وبمجرد النقر فوق زر "تحديث"، يستبدل البرنامج النصي داخل العامل (Worker) تلقائيًا بأحدث إصدار من KuroCMS. ولا توجد حاجة لأوامر أو عمليات Git.

مقارنة شاملة مع منصات إدارة المحتوى الرئيسية

أخيرًا، نلخص المقارنة بين KuroCMS وأنظمة إدارة المحتوى الحالية الرئيسية (WordPress وأنظمة headless العامة + Strapi).

عنصر المقارنة KuroCMS WordPress Strapi 5 (استضافة ذاتية)
تكلفة التشغيل الشهرية مجاني دائمًا (ضمن الفئة المجانية) رسوم الخادم الإيجاري (500 ين~) رسوم VPS/PaaS (1,000 ين~)
سرعة العرض والاستجابة فائقة السرعة (تسليم ذاكرة التخزين المؤقت للحافة) تعتمد على الخادم (عرضة للبطء) تعتمد على التكوين (تأخير واجهة برمجة التطبيقات موجود)
صعوبة النشر سهل مع مثبت الويب سهل (تثبيت تلقائي للخادم) صعب (إعداد الخادم، الأوامر)
دعم متعدد اللغات متعدد اللغات. *قابل للتشغيل بالذكاء الاصطناعي يتطلب إضافات (إعداد معقد للغاية) دعم قياسي (الإعداد/واجهة المستخدم صعبة للمبتدئين) *في الواقع يبدو أن به أخطاء وغير قابل للاستخدام. لقد حاول Kurousagi عدة مرات.
التحديثات بنقرة واحدة من لوحة الإدارة بنقرة واحدة من لوحة الإدارة يتطلب تنفيذ الأوامر والنشر اليدوي
الترخيص رخصة Kuro القائمة على MIT (مع ذكر المصدر) GPL MIT

الخلاصة: نحو معيار جديد للمواقع الشخصية والصغيرة

KuroCMS هو منتج ثوري يجلب فوائد "منح أنظمة إدارة المحتوى بدون رأس والمصممة بحرية سرعات عرض ساحقة باستخدام شبكة CDN" على Cloudflare بطريقة تتطابق مع السهولة وهيكل التكلفة الصفرية لخدمات التدوين اليابانية. ومع الاهتمام الدقيق بالتفاصيل — مثل وظيفة التحديث الذاتي، واكتمال النموذج متعدد اللغات، وتطبيق خط الويب الافتراضي — فإن KuroCMS مهيأ ليصبح المعيار الجديد لمدونات المستقبل الشخصية وعمليات المواقع الصغيرة.

إذا كنت مهتمًا، فتأكد من الوصول إلى موقع المثبت الرسمي وتجربة حياة تدوين فائقة السرعة ومريحة بنفسك!


[المصادر]
  1. الموقع الرسمي لـ KuroCMS
  2. وثائق Cloudflare Workers
  3. مستودع KuroCMS على GitHub