لماذا تستضيف سحابتك الخاصة على خادم VPS
تخزين ملفاتك لدى مزوّد موجَّه للعامة يعني قبول الحصص، ورسوم التخزين المتزايدة، وعدم اليقين بشأن مكان إقامة البيانات. السحابة الخاصة المستضافة ذاتياً تجعلك مالكاً لقرصك (Drive): مزامنة على الحاسوب والهاتف، ومشاركة بالرابط، وتحرير تشاركي للمستندات، وتقويم/جهات اتصال عبر CalDAV/CardDAV، وكل ذلك على عتادك أنت. يتجاوز Nextcloud مجرد التخزين بمتجر تطبيقات غنيّ (Talk للمكالمات المرئية، وOffice للتحرير، وFlow للأتمتة). أما ownCloud، في نسخته التاريخية بلغة PHP، فيبقى مدير ملفات متيناً وأخفّ؛ وجيله الجديد Infinite Scale، المكتوب بلغة Go، يتبنّى بنية خدمات مصغّرة أسرع بكثير وعديمة الحالة (stateless). يعتمد الاختيار على حاجتك: مجموعة كاملة أم تخزين عالي الأداء.
ما توفّره سحابة خاصة مستضافة ذاتياً
- مزامنة متعددة الأجهزة دون حصة مفروضة، محدودة فقط بقرص خادم VPS الخاص بك.
- بيانات ومستندات مستضافة محلياً: تحكّم كامل في مكان الإقامة والوصول.
- مشاركة بالرابط مع كلمة مرور، ومدة صلاحية، وصلاحيات دقيقة.
- استبدال عدة خدمات (قرص، تقويم، جهات اتصال، مكالمات مرئية) بمنصّة واحدة.
- تشفير من جهة الخادم وأثناء السكون قابل للضبط وفق متطلباتك.
- كلفة يمكن توقّعها مرتبطة بخادم VPS بدلاً من حجم البيانات المخزَّنة.
| المعيار | Nextcloud | ownCloud |
|---|---|---|
| منظومة التطبيقات | متجر تطبيقات غنيّ جداً (Talk، Office، Flow…) | أكثر محدودية، متمحور حول الملفات |
| البنية | متجانس (monolith) بلغة PHP | PHP (تاريخي) أو Infinite Scale بلغة Go (خدمات مصغّرة) |
| الأداء على الأحجام الكبيرة | جيد، وقد يثقل مع كثرة التطبيقات | ممتاز مع Infinite Scale (عديم الحالة) |
| التحرير التشاركي | Nextcloud Office / OnlyOffice مدمجان | عبر تكامل OnlyOffice/Collabora |
| المؤتمرات المرئية | Nextcloud Talk أصلي | غير أصلي |
| قاعدة البيانات | MariaDB/PostgreSQL موصى بهما | MariaDB/PostgreSQL موصى بهما |
| الذاكرة الموصى بها | 2 إلى 4 غيغابايت | 2 غيغابايت (PHP)، متغيّرة لـ Infinite Scale |
| الملمح المستهدف | مجموعة تعاونية كاملة | تخزين عالي الأداء ومُقتصَد |
المتطلبات العتادية والبرمجية
السحابة الخاصة ثقيلة على إدخال/إخراج القرص (I/O)، وهو العامل الحاسم. بالنسبة لـ Nextcloud كما لـ ownCloud (PHP)، جهّز خادم VPS بـ 2 vCPU و4 غيغابايت من الذاكرة، مع قرص NVMe و40 غيغابايت من المساحة على الأقل (تُحدَّد بحسب ملفاتك). لا تستخدم SQLite في الإنتاج أبداً: MariaDB أو PostgreSQL إلزاميتان، وRedis موصى به بشدة لقفل الملفات والتخبئة. أما ownCloud Infinite Scale، لكونه عديم الحالة وبلغة Go، فيتحمّل التكوينات الصغيرة للمعالج بشكل أفضل. تحتاج إلى Docker Compose v2، ونطاق مخصّص (cloud.mydomain.com)، ووسيط عكسي HTTPS، وعناية خاصة بحدّ الرفع (client_max_body_size، php_upload_max_filesize) للملفات الكبيرة.
انشر سحابتك الخاصة على خادم VPS
تجهيز قاعدة البيانات وRedis
في docker-compose، صرّح عن mariadb:11 (أو postgres:16) بوحدة تخزين دائمة وبيانات اعتماد مخصّصة، إضافة إلى خدمة redis:alpine. تتحمّل هذه الحاويات الحمل الحقيقي؛ أما SQLite فسيعطّلك بمجرد بضعة مستخدمين.
إعداد حاوية التطبيق
استخدم صورة nextcloud:apache (أو owncloud/server) موجِّهاً MYSQL_HOST وREDIS_HOST وبيانات الاعتماد. حدّد NEXTCLOUD_TRUSTED_DOMAINS=cloud.mydomain.com، وإلا فسترفض النسخة الاتصالات الخارجية.
ربط وحدة تخزين البيانات
اربط وحدة تخزين مخصّصة على /var/www/html/data (Nextcloud) لعزل ملفات المستخدمين عن بقية الحاوية وتسهيل النسخ الاحتياطي ونمو التخزين.
التشغيل وإنهاء التثبيت
نفّذ docker compose up -d، وانتظر التهيئة، ثم أكمل الإعداد عبر واجهة الويب أو بسطر الأوامر بـ occ maintenance:install. أنشئ حساب المدير.
الوسيط العكسي وHTTPS والملفات الكبيرة
وجّه cloud.mydomain.com عبر Caddy/Traefik مع Let's Encrypt. ارفع client_max_body_size إلى 10G على الأقل من جهة الوسيط ووائم php_upload_max_filesize للسماح برفع الملفات الكبيرة دون خطأ 413.
تفعيل cron والنسخ الاحتياطية
حوّل المهام الخلفية إلى وضع cron (لا AJAX) للموثوقية، عبر حاوية cron مخصّصة. ثم جدوِل تفريغاً لقاعدة البيانات + لقطة لوحدة تخزين البيانات إلى تخزين خارجي.
في Nextcloud، تأتي غالبية تحذيرات شاشة الإدارة من إعدادات وسيط عكسي منسيّة: تذكّر أن تحدّد overwriteprotocol => https وoverwrite.cli.url وقائمة trusted_proxies في config.php، وإلا فستولّد روابط المشاركة عناوين http مكسورة. فعّل أيضاً ذاكرة APCu المخبّأة إضافةً إلى Redis لتخفيف العبء عن قاعدة البيانات مع كل تحميل للصفحة. بالنسبة لـ ownCloud، إذا بلغ الأداء سقفه على الأحجام الكبيرة، فقيّم الانتقال إلى Infinite Scale الذي يزيل عنق الزجاجة الخاص بـ PHP.