🚀 منصة TidyFactor Go — نظام تشغيل مواقع الأعمال وإدارة المحتوى السريعة (Agile CMS)¶
الدليل المعماري والفني الشامل لمنصة TidyFactor Go المعتمدة على قواعد بيانات SQLite 3 (نمط WAL) والتخزين الفوري بـ JSON
تعتبر TidyFactor Go (tidyfactor-go) نظام تشغيل مواقع متكامل وإدارة محتوى رشيقة (Agile CMS) صممت خصيصاً لمواقع الشركات، الوكالات الرقمية، ومنصات المحتوى الحديثة بهدف تحقيق السيادة الكاملة والملكية الحرة 100% للبيانات وصفر اشتراكات شهرية، مع تمكين التعاون المتناغم بين المطور البشري ووكلاء الذكاء الاصطناعي.
تجمع المنصة بين واجهة أمامية فائقة السرعة بـ React 19 + Tailwind CSS v4 وخادم خلفي فائق الرشاقة بـ PHP Flight + SQLite 3 WAL.
🏛️ 1. المخطط المعماري الشامل للمنصة¶
المعمارية الهندسية المركزية لمنصة TidyFactor Go
│
┌────────────────────────────────┼────────────────────────────────┐
↓ ↓ ↓
🎨 الواجهات التفاعلية ⚡ خادم REST API الرشيق 💾 طبقة التخزين والبيانات
• React 19 + TypeScript • PHP Flight Micro-Kernel • SQLite 3 (WAL Mode)
• محرك Tailwind CSS v4 الحديث • 15 نقطة نهاية RESTful • تخزين مستندي JSON-First
• مكونات Radix UI للوصول الشامل • تشفير Bcrypt (معامل 12) • هجرة ومعالجة تلقائية
• دعم أصيل للعربية RTL والإنجليزية• تحديد معدل الطلبات وحظر البوتات• ملف قاعدة بيانات وحيد
• مساعد Gemini للترجمة وصياغة • تطهير ملفات SVG من الـ XSS • لقطات فورية للنسخ الاحتياطي
│ │ │
└────────────────────────────────┼────────────────────────────────┘
↓
النشر الفوري على أي استضافة (Zero-Build)
(cPanel / Apache / LiteSpeed / Nginx / Cloud VPS)
💎 2. المبادئ المعمارية والمزايا الجوهرية¶
1. سيادة كاملة على البيانات وقاعدة بيانات أحادية الملف¶
- تعيش قاعدة البيانات بالكامل داخل ملف واحد
.sqliteداخل مجلدstorage/database/. - لا حاجة لخوادم قواعد بيانات منفصلة مثل MySQL/PostgreSQL التي تستهلك أكثر من 500 ميجابايت من الذاكرة العشوائية على الاستضافات المشتركة.
- نقل الموقع أو أخذ نسخة احتياطية يتم ببساطة بنسخ ملف واحد فقط.
2. معالج تثبيت تلقائي فوري بضغطة زر (/install)¶
- يستغرق إعداد المنصة على بيئة الإنتاج أقل من دقيقتين بدون الحاجة لكتابة سطر واحد من أوامر SQL.
- فحص آلي لبيئة السيرفر للتحقق من إصدار PHP، دعم مكتبة SQLite، وصلاحيات المجلدات.
- تهيئة الجداول تلقائياً، إنشاء حساب المدير الرئيسي، وقفل معالج التثبيت ذاتياً لحماية النظام.
3. ثنائية اللغة أصيلة (عربي RTL وإنجليزي LTR)¶
- معمارية CSS متوافقة مع الاتجاه عبر Logical Properties (
margin-inline,padding-block). - حقول محتوى مستقلة لكل لغة في كافة الصفحات والخدمات والمقالات.
- تبديل فوري للغة في واجهة العميل دون إعادة تحميل الصفحة ودون أي تشوه في التصميم.
4. صفر تعقيد أو هدر في موارد الخادم¶
- ينفذ موجه PHP Flight الطلبات في زمن يقل عن 5 ميلي ثانية وبأقل من 2 ميجابايت RAM.
- تعمل المنصة بسلاسة وكفاءة متناهية على أرخص خطط الاستضافة المشتركة ($2/شهر) أو خوادم VPS الصغيرة (512MB RAM).
🗄️ 3. هيكل قاعدة البيانات وتشريح نمط SQLite WAL¶
تعتمد المنصة على SQLite 3 بنمط سجل المعاملات المسبق Write-Ahead Logging (WAL)، مما يسمح بالقراءة المتزامنة دون قفل الجداول أثناء عمليات الكتابة.
إعدادات الـ PRAGMA التشغيلية:¶
PRAGMA journal_mode = WAL; -- تفعيل القراءة والكتابة المتزامنة بدون حظر الجداول
PRAGMA synchronous = NORMAL; -- تحقيق التوازن المثالي بين الأمان والسرعة القصوى
PRAGMA foreign_keys = ON; -- فرض سلامة العلاقات بين الجداول
PRAGMA busy_timeout = 5000; -- مهلة انتظار 5 ثوانٍ قبل إرجاع خطأ SQLITE_BUSY
PRAGMA cache_size = -64000; -- تخصيص 64 ميجابايت لكاش صفحات الذاكرة
مخطط الجداول الأساسية (SQL Schema):¶
-- 1. جدول الصفحات الديناميكية (مستند JSON)
CREATE TABLE IF NOT EXISTS pages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
slug TEXT NOT NULL UNIQUE,
title_ar TEXT NOT NULL,
title_en TEXT NOT NULL,
content_json TEXT NOT NULL DEFAULT '{}', -- الأقسام، الكروت، والنصوص المنظمة
is_published INTEGER NOT NULL DEFAULT 1,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 2. جدول المقالات والمدونة (Publications)
CREATE TABLE IF NOT EXISTS publications (
id INTEGER PRIMARY KEY AUTOINCREMENT,
slug TEXT NOT NULL UNIQUE,
category TEXT NOT NULL DEFAULT 'general',
title_ar TEXT NOT NULL,
title_en TEXT NOT NULL,
summary_ar TEXT,
summary_en TEXT,
body_markdown_ar TEXT NOT NULL,
body_markdown_en TEXT NOT NULL,
featured_image TEXT,
author_id INTEGER REFERENCES users(id),
is_published INTEGER NOT NULL DEFAULT 1,
published_at DATETIME DEFAULT CURRENT_TIMESTAMP,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 3. جدول المستخدمين والمديرين (Users)
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL, -- تشفير Bcrypt (معامل 12)
role TEXT NOT NULL DEFAULT 'admin', -- 'superadmin', 'admin', 'editor'
last_login DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 4. جدول الوسائط والملفات المرفوعة (Media)
CREATE TABLE IF NOT EXISTS media (
id INTEGER PRIMARY KEY AUTOINCREMENT,
filename TEXT NOT NULL,
original_name TEXT NOT NULL,
mime_type TEXT NOT NULL,
file_size INTEGER NOT NULL,
width INTEGER,
height INTEGER,
uploaded_by INTEGER REFERENCES users(id),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 5. جدول إعدادات النظام والهوية (Settings)
CREATE TABLE IF NOT EXISTS settings (
key TEXT PRIMARY KEY,
value TEXT NOT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
⚡ 4. مراجع واجهات REST API (15 نقطة نهاية برمجية)¶
كافة المسارات تقبل وترجع البيانات بنمط application/json; charset=UTF-8. تتطلب المسارات المحمية جلسة إدارية نشطة أو ترويسة Authorization: Bearer <token>.
| المسار البرمجي | النوع | الوصف | الصلاحية المطلوبة |
|---|---|---|---|
POST |
/api/auth/login |
تسجيل دخول المدير مع حماية من هجمات القوة الغاشمة | ❌ عام |
POST |
/api/auth/logout |
تسجيل الخروج وإلغاء صلاحية الجلسة | ✅ مدير |
GET |
/api/auth/check |
التحقق من حالة الجلسة الحالية وبيانات المستخدم | ✅ مدير |
GET |
/api/site |
جلب الإعدادات العامة للموقع، القوائم، وتوكنز الهوية | ❌ عام |
POST |
/api/site |
تحديث مستند إعدادات الموقع وتفريغ كاش التشغيل | ✅ مدير |
GET |
/api/pages |
جلب قائمة كافة الصفحات بعناوينها العربية والإنجليزية | ❌ عام |
GET |
/api/pages/:slug |
جلب تفاصيل ومحتوى الصفحة الكامل عبر المعرف slug | ❌ عام |
POST |
/api/pages |
إنشاء صفحة محتوى جديدة مع الأقسام الأولية | ✅ مدير |
PUT |
/api/pages/:id |
تعديل جراحي لبيانات الصفحة وأقسامها وحالة النشر | ✅ مدير |
DELETE |
/api/pages/:id |
حذف صفحة محتوى وأرشفة الملفات المرتبطة بها | ✅ مدير |
GET |
/api/publications |
جلب المقالات والتدوينات مع التصفية بالفئة والوسم | ❌ عام |
POST |
/api/publications |
نشر مقال جديد بنظام الماركداون ثنائي اللغة | ✅ مدير |
POST |
/api/media/upload |
رفع الصور والملفات وتطهير ملفات SVG من كود XSS | ✅ مدير |
GET |
/api/backup/export |
تصدير وتنزيل لقطة كاملة لقاعدة البيانات والوسائط (.zip) | ✅ مدير |
POST |
/api/backup/import |
استرجاع فوري وكامل للنظام من ملف نسخة احتياطية | ✅ مدير |
🔒 5. المعايير الأمنية وتحصين النظام¶
1. تشفير كلمات المرور وحماية تسجيل الدخول¶
- استخدام دالة
password_hash()مع خوارزميةPASSWORD_BCRYPTومعامل تكلفة 12. - نظام حظر IP تلقائي يغلق محاولات الدخول بعد 5 محاولات خاطئة متتالية لمدة 15 دقيقة.
2. تطهير ملفات SVG من ثغرات XSS¶
- فحص ملفات SVG المرفوعة عبر معالج
DOMDocumentالبرمجي في PHP. - حذف وسوم الـ Script والـ iframes والخصائص التنفيذية (
onload,onerror,onclick).
3. دروع حظر البوتات وزواحف جمع البيانات الضارة¶
تتضمن المنصة ملف .htaccess مقفل يعترض روبوتات جمع البيانات المجهدة للخادم:
# درع TidyFactor لحظر البوتات والزواحف الضارة
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Bytespider|ClaudeBot|ImagesiftBot|GPTBot|DataForSeoBot) [NC]
RewriteRule .* - [F,L]
🚀 6. دليل التثبيت والنشر على الخوادم¶
المتطلبات الفنية:¶
- إصدار PHP:
8.2أو8.3+ - إضافات PHP الإلزامية:
pdo_sqlite,sqlite3,json,mbstring,fileinfo - خادم الويب: Apache (مع تفعيل
mod_rewrite) أو LiteSpeed أو Nginx - الذاكرة: 64 ميجابايت كحد أدنى (يوصى بـ 128 ميجابايت+)
خطوات التثبيت:¶
# 1. استنساخ المستودع داخل مجلد الموقع (مثل public_html)
git clone https://github.com/TidyFactor/TidyFactor-Go.git public_html
cd public_html
# 2. تثبيت الحزم الأساسية
composer install --no-dev --optimize-autoloader
# 3. ضبط الصلاحيات للمجلدات القابلة للكتابة
chmod -R 755 storage/ uploads/
4. تشغيل معالج التثبيت عبر المتصفح:¶
افتح المتصفح وتوجه إلى الرابط:
1. فحص بيئة الخادم: التأكد من إضافات PHP وصلاحيات المجلدات. 2. تهيئة قاعدة البيانات: إنشاء جداول SQLite وتطبيق إعدادات الـ PRAGMA. 3. بيانات المدير: إدخال اسم المستخدم، البريد، وكلمة المرور الرئيسية. 4. الإنهاء: إغلاق معالج التثبيت ذاتياً والتحويل إلى لوحة التحكم/admin.
📦 7. النسخ الاحتياطي والتعافي من الكوارث¶
النسخ الاحتياطي بضغطة زر من لوحة التحكم:¶
- توجه إلى قسم النسخ الاحتياطي في لوحة التحكم
/admin/backups. - اضغط على زر توليد لقطة كاملة للنظام.
- سيتم تنزيل أرشيف مضغوط
.zipيحتوي علىdatabase.sqliteومستندsite.jsonومجلد الصورuploads/.
أمر النسخ عبر الطرفية (CLI):¶
# أخذ لقطة فورية لقاعدة البيانات والمحتوى عبر السطر البرمجي
php tools/backup.php --output=/path/to/backups/tidyfactor-go-$(date +%F).zip
🔧 8. جدول تشخيص وحل المشكلات الشائعة¶
| العَرَض | السبب المحتمل | الحل الدقيق |
|---|---|---|
خطأ SQLITE_BUSY |
عدم تفعيل نمط WAL أثناء عمليات الكتابة المتزامنة | التأكد من وجود PRAGMA journal_mode = WAL; في ملف إعدادات قاعدة البيانات. |
أخطاء 404 عند طلب مسارات الـ API |
موديول mod_rewrite غير مفعل في أباتشي |
تفعيل mod_rewrite والتأكد من وجود تعليمة RewriteEngine On في .htaccess. |
| فشل رفع الصور الكبيرة (خطأ 413) | قيود حجم الملفات في إعدادات PHP | زيادة upload_max_filesize = 32M و post_max_size = 32M في ملف php.ini. |
خطأ Permission Denied على مجلد storage |
عدم ملكية خادم الويب للمجلد | تنفيذ الأمر chown -R www-data:www-data storage/ uploads/ أو ضبط الصلاحية لـ 755. |
🔗 الروابط والمصادر الرسمية¶
- صفحة المنتج: https://tidyfactor.com/products/tidyfactor-go
- المعاينة الحية التفاعلية: https://tidyfactor.com/go/
- بوابة التوثيق الفني: https://tidyfactor.com/documentation
- مستودع GitHub: https://github.com/TidyFactor/TidyFactor-Go