أدلة التخصصات·6 min read·

تفعيل وضع تعدد المستأجرين في VeloCMS المستضاف ذاتيًا

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

يُشحن VeloCMS المستضاف ذاتيًا في وضع المثيل الفردي افتراضيًا — مدونة واحدة، قاعدة بيانات واحدة، مع كامل الميزات. إن أردت تشغيل مدونات مستقلة متعددة من تثبيت واحد — سواء كنت تدير منصة SaaS صغيرة، أو وكالة تستضيف مواقع عملاء، أو مجموعة من المدونات ذات الصلة — فبإمكانك التحويل إلى وضع تعدد المستأجرين بمجرد تغيير متغير بيئة واحد.

ما الذي يفعله وضع تعدد المستأجرين

في وضع تعدد المستأجرين، ينشئ VeloCMS قاعدة بيانات PocketBase منفصلة لكل مدونة (مستأجر). منشورات المستأجر A وأعضاؤه وإعداداته معزولة تمامًا عن بيانات المستأجر B. تتولى قاعدة البيانات الرئيسية (Master) إدارة المصادقة والفوترة وسجل المستأجرين. يصل كل مستأجر إلى مدونته عبر subdomain.yourdomain.com، دون أي إمكانية للاطلاع على بيانات الآخرين.

الانتقال من وضع المثيل الفردي إلى وضع تعدد المستأجرين هجرة أحادية الاتجاه — لا يوجد تراجع آلي. نفّذ ذلك على تثبيت جديد أو خذ نسخة احتياطية كاملة قبل إجراء التحويل.

المتطلبات الأساسية

  • سجل DNS بالبدل (wildcard): *.yourdomain.com يشير إلى عنوان IP خادمك.
  • شهادة SSL بالبدل (wildcard) لـ *.yourdomain.com، سواء عبر Let's Encrypt مع تحدي DNS في Certbot، أو wildcard محمي بوكيل Cloudflare.
  • تثبيت VeloCMS عبر Docker Compose مع صلاحية الوصول إلى ملف .env.

تفعيل وضع تعدد المستأجرين

افتح ملف .env وغيّر VELOCMS_MODE=single إلى VELOCMS_MODE=multi. اضبط أيضًا NEXT_PUBLIC_PLATFORM_DOMAIN=yourdomain.com (النطاق الجذر — سيُخدَّم المستأجرون على *.yourdomain.com). أعد تشغيل الحاويات: docker compose down && docker compose up -d. سيُشغّل الإقلاع الأول في وضع تعدد المستأجرين هجرة قاعدة البيانات الرئيسية تلقائيًا.

# .env changes required for multi-tenant
VELOCMS_MODE=multi
NEXT_PUBLIC_PLATFORM_DOMAIN=yourdomain.com
NEXT_PUBLIC_SITE_URL=https://yourdomain.com

إنشاء المستأجر الأول

بعد تفعيل وضع تعدد المستأجرين، تُنشأ حسابات المستأجرين الجديدة عبر تدفق التسجيل على yourdomain.com/signup، تمامًا كما هو الحال في النسخة المستضافة. يحصل المستأجر على نطاق فرعي على their-blog.yourdomain.com. وبإمكانك بوصفك مشغّل الخادم الاطلاع على جميع المستأجرين من لوحة تحكم PocketBase الرئيسية على :8090/admin — ابحث عن مجموعة tenants.

ضمانات عزل المستأجرين

قاعدة بيانات كل مستأجر مثيل PocketBase مستقل في مجلده الخاص. لا يمكن لحساب مستأجر مخترَق قراءة بيانات مستأجر آخر. تفرض قواعد API على كل مجموعة ملكية المستأجر على مستوى قاعدة البيانات — حتى لو وُجدت ثغرة في الكود التطبيقي، تظل قواعد قاعدة البيانات خط الدفاع الثاني.