SSD Nodes Learn 🎉 VPS من $5.50/شهر
الأدلة Matt Connorبقلم Matt Connor

أفضل بدائل Nextcloud للاستضافة الذاتية

قارن بدائل Nextcloud حسب حاجتك: مزامنة الملفات فقط، خادم أخف وأسرع، تخزين كائنات، أو SFTP، مع توضيح تكلفة نقل شجرة ملفاتك الحالية.

ما بدائل Nextcloud التي تستحق الاستضافة الذاتية؟

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

يرتّب هذا الدليل الخيارات حسب تلك المهمة: المزامنة فقط، أو المزامنة مع خادم أسرع، أو تخزين الكائنات مع عميل فوقه، أو الوصول البسيط إلى الملفات عن بُعد. يوضح كل قسم ما يحتاج إليه الخادم على VPS صغير (خادم خاص افتراضي)، وما سيحدث لشجرة المجلدات الحالية لديك. إذا كنت تنتقل من Dropbox أو Google Drive بدلاً من خادم Nextcloud تشغّله بالفعل، فابدأ من ذلك الجانب عبر الاستعراض الأوسع لبدائل Dropbox ذاتية الاستضافة.

لماذا يصبح Nextcloud بطيئاً على VPS صغير

للبطء أسباب يمكن تحديدها، ومعرفتها تساعدك على معرفة ما إذا كان الانتقال سيحل المشكلة فعلاً.

كل تحميل لصفحة يشغل عاملاً من PHP. تذكر متطلبات Nextcloud الرسمية الذاكرة لكل عملية: 128 MB كحد أدنى و512 MB كقيمة موصى بها، وذلك اعتباراً من August 2026. هذه ليست إجمالي ذاكرة الخادم. ويشكّل تجمع يضم عشرة عمال ميزانية ذاكرة فعلية على خطة بسعة 2 GB، لذلك يخفض مسؤولو النظام قيمة pm.max_children في إعدادات تجمع PHP-FPM، ثم تصطف الطلبات خلف العمال المتاحين. فتبدو الواجهة بطيئة بينما يكون القرص غير مشغول.

تنمو قاعدة البيانات مع عدد الملفات، لا مع حجمها بالبايت. يحتوي جدول ذاكرة التخزين المؤقت للملفات، oc_filecache تحت بادئة الجداول الافتراضية، على صف واحد لكل ملف ومجلد في كل مساحة تخزين يعرفها الخادم. وتُعد مكتبة صور تضم 300,000 ملف صغير جدولاً كبيراً، بينما تكون 300 GB من ملفات الفيديو في 400 ملف جدولاً صغيراً. وتقرأ المشاركة والبحث وفاحص الملفات هذا الجدول.

sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'

يفسر عدد يبلغ الملايين بطء قائمة الملفات بدرجة أفضل من أي اختبار لأداء القرص. إذا كان مثيلك يستخدم بادئة جداول مختلفة أو PostgreSQL، فعدّل الاستعلام.

تتنافس المهام الخلفية مع واجهة الويب على الموارد. يوصي دليل Nextcloud بإدخال system cron يشغّل cron.php كل خمس دقائق. ويجري إنشاء المعاينات وفحص الملفات هناك، على وحدة المعالجة المركزية نفسها التي تخدم متصفحك.

تُعد الترقيات الرئيسية عملية ترحيل لقاعدة البيانات. يدخل المثيل في وضع الصيانة ويرد على كل طلب باستخدام Nextcloud is in maintenance mode, please try again later إلى أن يكتمل الترحيل. وعلى VPS صغير يحتوي على oc_filecache كبير، تكون هذه الفترة طويلة بما يكفي لملاحظتها.

حدّد أولاً ما الذي ستحتفظ به

  • لمزامنة مجلد واحد بين أجهزة تملكها، من دون واجهة ويب: استخدم Syncthing.
  • للمزامنة بين عدة أشخاص، مع واجهة ويب وتطبيقات للهواتف وروابط مشاركة: استخدم Seafile.
  • لتخزين كمية كبيرة من البيانات بتكلفة منخفضة والوصول إليها من البرامج النصية وأدوات النسخ الاحتياطي: استخدم تخزين الكائنات مع عميل.
  • لقراءة ملفاتك وكتابتها عن بُعد من دون تثبيت برنامج خادم جديد: استخدم SFTP أو WebDAV.
  • لتحرير المستندات معاً في المتصفح أو مشاركة تقويم بين عدة أشخاص: استمر في استخدام Nextcloud، أو اقبل تشغيل خدمتين.

Syncthing: مزامنة الملفات دون تطبيق خادم

يحافظ Syncthing على ملفاتك كملفات عادية. لا توجد قاعدة بيانات للمحتوى ولا واجهة ويب تعرض مستنداتك. يحتفظ كل جهاز ينضم إلى مجلد بنسخة كاملة منه، ويحافظ Syncthing على تطابق النسخ.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
sudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384

يعني السطر الذي يعرض 127.0.0.1:8384 أن واجهة الويب تعمل ومربوطة بـlocalhost فقط، وهذا هو الإعداد المطلوب على VPS عام. يمكنك الوصول إليها عبر نفق SSH: ssh -L 8384:127.0.0.1:8384 you@your-vps، ثم افتح http://127.0.0.1:8384 على حاسوبك المحمول. عدم وجود مستمع على المنفذ 8384 يعني أن الخدمة فشلت في البدء، ويبيّن journalctl -u syncthing@$USER -n 50 السبب.

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

القرص هو التكلفة الفعلية. لا يوجد تخزين على جانب الخادم، لأن Syncthing ليس خادماً. يحتاج مجلد حجمه 200 GB ومشترك بين VPS وحاسوب محمول إلى 200 GB على كليهما. وهذا عكس Nextcloud، حيث يحتفظ الخادم بكل شيء ويختار العملاء ما يريدون مزامنته. استخدم مجلدات انتقائية ومجلد receive only على VPS إذا كان الغرض من VPS أن يكون هدفاً للنسخ الاحتياطي لا نظيراً.

الترحيل هو سبب اختياره. وجّه Syncthing إلى شجرة المجلدات الموجودة لديك بالفعل. لا توجد عملية استيراد أو رفع أو تحويل. أضف المجلد على VPS، ثم أضفه على الحاسوب المحمول باستخدام معرّف المجلد نفسه، ودع الطرفين يتقاربان. إذا كان الملف نفسه موجوداً بشكل مختلف على الطرفين عند أول اتصال، فسيحتفظ Syncthing بالنسختين ويعيد تسمية إحداهما إلى filename.sync-conflict-20260809-142530-ABCD123.txt. ظهور هذه الملفات طبيعي أثناء المزامنة الأولى، وليس علامة على فشل.

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

Seafile: مزامنة سريعة مع خادم أخف

يقسم Seafile العمل إلى جزأين. يعرض تطبيق ويب مكتوب بلغة Python، يسمى Seahub، الواجهة، بينما تتولى عملية C منفصلة حركة المزامنة. لا تمر عمليات نقل الملفات عبر تطبيق الويب، ولذلك يظل رفع ملف كبير سريعاً بينما يستخدم شخص آخر الواجهة. صدر الإصدار 13.0 في 5 January 2026.

sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.yml

عدّل .env قبل بدء أي شيء. يضبط هذا الملف SEAFILE_SERVER_HOSTNAME وINIT_SEAFILE_ADMIN_EMAIL وINIT_SEAFILE_ADMIN_PASSWORD وSEAFILE_MYSQL_DB_PASSWORD وJWT_PRIVATE_KEY، ويجب أن تكون قيمة هذه الأخيرة سلسلة عشوائية لا يقل طولها عن 32 محرفاً. ويحدد الملف أيضاً لبرنامج compose أي ملفات YAML التي تم تنزيلها يجب قراءتها، ولذلك تعمل التنزيلات الأربعة كحزمة واحدة.

cd /opt/seafile
sudo docker compose up -d
sudo docker compose ps

يجب أن تعرض كل حاوية حالة التشغيل. إعادة تشغيل حاوية في حلقة تعني في الغالب أن قيمة مفقودة من .env، ويحدد sudo docker compose logs seafile اسم القيمة المفقودة.

الموارد. توصي وثائق Seafile بذاكرة RAM لا تقل عن 2 GB ووحدة CPU ذات نواتين بتردد يتجاوز 2 GHz، وفقاً للحالة في August 2026. اعتبر ذلك الحد الأدنى للحزمة بأكملها، لأن نشر Docker يشغّل أيضاً MariaDB وReverse Proxy ‏Caddy ومحرر SeaDoc. خصص 4 GB إذا كان سيستخدمه أكثر من شخص أو شخصين، أو لا تشغّل الحاويات الاختيارية.

مشكلة الترحيل الأساسية هي تنسيق التخزين. لا يحتفظ Seafile بملفاتك كملفات عادية. يقسم كل ملف إلى كتل ضمن /opt/seafile-data ويسجل شجرته في قاعدة البيانات. لا يمكنك توجيه Seafile إلى دليل موجود وجعله يظهر كمكتبة، ولذلك يتطلب النقل إجراء رفع كامل مرة واحدة لكل ما تملكه. ويعني التصميم نفسه أنه لا يمكنك استخراج البيانات باستخدام cp: تتم الاستعادة عبر الخادم، باستخدام seaf-fsck لفحوص الاتساق، أو عبر نقطة التركيب للقراءة فقط seaf-fuse.

يحتوي rclone على واجهة خلفية أصلية لـSeafile، وتحول عملية الرفع إلى أمر واحد قابل للاستئناف بدلاً من جلسة سحب وإفلات طويلة.

rclone config
rclone copy /srv/files seafile:MyLibrary --progress

تدرج وثائق rclone الإصدارات من Seafile 6.x إلى 9.x ضمن الإصدارات المختبرة، ولذلك شغّله على مجلد صغير أولاً وتحقق من النتيجة قبل تمرير terabyte واحد عبره.

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

Object storage with a sync client on top

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

rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucket

تقارن rclone check كلا الجانبين وفقاً للحجم وقيمة التجزئة، وتطبع عدد الملفات المختلفة. أي قيمة أخطاء غير الصفر تعني أن النسخ غير مكتمل، لذلك شغّل copy مرة أخرى قبل حذف المصدر. توقّع أمرين: لا يحتوي التخزين الكائني على أدلة، بل على بادئات للمفاتيح فقط، لذلك لا يبقى المجلد الفارغ بعد النسخ؛ كما أن رفع --transfers بالتزامن مع حجم كتل S3 هو ما يزيد استهلاك rclone للذاكرة، لذلك اترك القيمتين الافتراضيتين على VPS بسعة 1 GB.

WebDAV العادي أو SFTP عندما تحتاج إلى ملفات بعيدة فقط

غالباً لا تحتاج إلى إضافة أي شيء لاستبدال الحل الحالي بأقل تكلفة. إذا كان VPS يشغّل OpenSSH، فلديك بالفعل خادم ملفات. لا يتطلب SFTP خدمة daemon إضافية، ولا قاعدة بيانات، ولا PHP، ولا ترقية قد تتعطل يوم الأحد.

sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writes

بالنسبة إلى العملاء الذين يدعمون WebDAV، ومنهم معظم تطبيقات إدارة الملفات على الهواتف، يمكن لـrclone تقديم شجرة الملفات نفسها.

sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/files

اربطه بـ127.0.0.1، وضع Reverse Proxy مع TLS (أمن طبقة النقل) أمامه. يرسل Basic Authentication في WebDAV كلمة المرور مع كل طلب، لذلك يعني استخدام HTTP العادي هنا إرسال كلمة المرور مرات عديدة في الدقيقة. تكلفة الترحيل تساوي صفراً لأن الملفات لا تنتقل من مكانها. لكن لا تتوفر مزامنة أو نسخة غير متصلة؛ فعند انقطاع الاتصال، تختفي الملفات من العميل حتى يعود الاتصال.

ما البدائل للتقويم وجهات الاتصال وتحرير المستندات

يؤدي الانتقال من Nextcloud إلى فقدان بعض الوظائف هنا، ومن المهم توضيحها. التقويمان وجهات الاتصال يعتمدان على CalDAV وCardDAV، أي مزامنة التقويمات وجهات الاتصال عبر HTTP، وRadicale هو البديل الصغير. يخزّن كل مجموعة كملفات على القرص، ويعمل باستهلاك عشرات الميغابايتات.

sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232

تتضمن الحزمة /usr/lib/systemd/system/radicale.service وملف الإعداد الافتراضي في /etc/radicale/config، وتستمع على localhost:5232. لا يوفّر Radicale واجهة لتحرير الأحداث، لذلك توجّه هاتفاً أو عميلاً على سطح المكتب إليه وتحرّر الأحداث من هناك.

استبدال تحرير المستندات عبر المتصفح أصعب. كل من OnlyOffice Docs وCollabora Online محرّك تحرير، وليس نظام تخزين؛ ويحتاج كل منهما إلى تطبيق مضيف يحتفظ بالملفات ويمرّر المستندات إليه. عند إزالة Nextcloud، تحتاج إلى مضيف آخر، مثل Seafile مع محرر SeaDoc الخاص به. يوضّح مقارنة OnlyOffice وCollabora المحرّك الذي ينبغي تشغيله بعد تحديد التطبيق المضيف له.

ابقَ على Nextcloud إذا انطبق أيٌّ مما يلي:

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

لا يوجد لهذه المهام خيار أخف ينفّذها كلها. والإجراء الصحيح هو إصلاح التثبيت بدلاً من التخلي عنه. تعمل معظم المثيلات البطيئة باستخدام PHP-FPM pool افتراضي من دون تهيئة ذاكرة تخزين مؤقت، وتحذّر صفحة النظرة العامة الإدارية في Nextcloud من غياب ذاكرة التخزين المؤقت. يقلّل تقليص عدد الملفات المتتبَّعة الأداءَ أكثر من أي تغيير منفرد آخر، لأن جدول ذاكرة تخزين الملفات المؤقتة هو الذي ينمو. يهيّئ تثبيت Nextcloud على VPS باستخدام Docker وTLS والنسخ الاحتياطية النظام بالطريقة التي تتجنب معظم هذه المشكلات.

ما الذي تتطلبه عملية الترحيل فعلياً، خياراً بعد خيار

  • Syncthing: لا توجد عملية استيراد. وجّهه إلى شجرة الملفات الموجودة لديك على الجانبين، ودعه يوفّق المحتوى بينهما.
  • SFTP أو WebDAV عبر شجرة الملفات نفسها: لا توجد عملية استيراد على الإطلاق، لأن أي ملفات لا تنتقل.
  • Object storage: نسخة كاملة واحدة عبر الشبكة، ويمكن استئنافها وبرمجتها، لكن المجلدات الفارغة لا تنتقل معه.
  • Seafile: رفع كامل واحد إلى libraries، لأن الخادم يحتفظ بالكتل بدلاً من الملفات.

أيّاً كان الخيار الذي تحدده، أنشئ أولاً نسخة سليمة من Nextcloud. توجد ملفات المستخدمين بصيغتها العادية داخل data directory، مع مجلد مستقل لكل مستخدم، ولذلك فإن rsync من تلك الشجرة هو مصدر ملفاتك. ضع المثيل في maintenance mode قبل النسخ، وإلا فستنسخ ملفات أثناء الكتابة إليها.

sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -l

قارن هذا العدد مع العدد نفسه find في المصدر. يعني النقص عادةً أن الصلاحيات منعت rsync من قراءة شيء ما، وتظهر تلك الأخطاء أثناء التنفيذ.

توجد مشكلتان شائعتان في هذه النسخة. الملفات التي يمكن الوصول إليها عبر ميزة external storage في Nextcloud لا توجد داخل data directory أصلاً، لأنها موجودة على النظام البعيد الذي أُعدّ Nextcloud لاستخدامه. وإذا كان server-side encryption مفعّلاً في أي وقت، فالملفات الموجودة على القرص تكون مشفّرة، ولذلك يجب أن ينفّذ occ encryption:decrypt-all العملية قبل النسخ، وإلا فستنقل مجلداً من البيانات غير القابلة للقراءة. تحقّق من الأمرين قبل إلغاء أي عملية.

FAQ

هل يوجد بديل لـNextcloud يحافظ على بنية مجلداتي الحالية؟

نعم، Syncthing، أو أي إعداد عادي باستخدام SFTP أو WebDAV. يفهرس Syncthing الدليل الذي تحدده له ويحافظ على الأسماء والبنية نفسها على كل جهاز، لذلك لا تحتاج إلى خطوة استيراد أو رفع. يتطلب كل من Seafile وتخزين الكائنات تنفيذ عملية رفع كاملة مرة واحدة، لأن أياً منهما لا يخزن بياناتك كملفات عادية ضمن شجرة عادية. يقسم Seafile الملفات إلى كتل داخل دليل البيانات، بينما يستخدم تخزين الكائنات مفاتيح بدلاً من الأدلة.

هل سيعمل Seafile على VPS بسعة 2 GB من الذاكرة؟

تطلب وثائق Seafile ما لا يقل عن 2 GB من RAM ومعالجاً بـ2 نواة وبسرعة تتجاوز 2 GHz، وفقاً للحالة في August 2026. اعتبر ذلك الحد الأدنى من دون أي هامش، لأن نشر Docker يشغّل أيضاً MariaDB وCaddy ومحرر SeaDoc داخل حاويات مستقلة. بالنسبة إلى مستخدم واحد، سيكون ذلك كافياً. أما بالنسبة إلى أسرة أو فريق صغير، فانتقل إلى 4 GB، أو أخرج حاوية SeaDoc من الحزمة وتخلَّ عن تحرير المستندات داخل المتصفح.

لماذا تكون واجهة Nextcloud على الويب بطيئة رغم أن التنزيلات لا تزال سريعة؟

لأن المسارين ينفذان أعمالاً مختلفة. يبث التنزيل وحدات البايت من القرص، بينما يؤدي تحميل الصفحة إلى تشغيل PHP والاستعلام عن جدول ذاكرة التخزين المؤقت للملفات، وغالباً ما ينتظر عاملاً متاحاً في PHP-FPM. احسب عدد الصفوف في oc_filecache وتحقق من pm.max_children في مجموعة PHP-FPM قبل إلقاء اللوم على التخزين. يؤدي وجود جدول يضم ملايين الصفوف ومجموعة تحتوي على خمسة عمال إلى هذا النمط تحديداً.

هل يمكنني الإبقاء على Nextcloud للتقويمات ونقل الملفات فقط؟

نعم، وغالباً ما يكون هذا الحل الأقل تكلفة. زامن مجلداتك الكبيرة باستخدام Syncthing أو Seafile، واترك Nextcloud قيد التشغيل من أجل CalDAV وCardDAV وتحرير المستندات في المتصفح. تنمو قاعدة بيانات Nextcloud مع عدد الملفات التي يتتبعها، لذا فإن إزالة الأشجار الكبيرة منها هي ما يعيد سرعة الواجهة. احذفها من خلال واجهة الويب أو occ، وليس من دليل البيانات على القرص، وإلا فستحتفظ قاعدة البيانات بصفوف تشير إلى ملفات لم تعد موجودة.