Seafile أم Nextcloud: أيهما أفضل لمزامنة الملفات؟
قارن Seafile وNextcloud في سرعة المزامنة واستهلاك RAM والنسخ الاحتياطي والتشفير، مع فرق التخزين: كتل بمتوسط 8 MB مقابل ملفات على القرص.
Seafile مقابل Nextcloud: الإجابة المختصرة
تتمحور المقارنة بين Seafile وNextcloud حول اختلاف واحد: ما الذي يصبح عليه الملف بعد وصوله إلى الخادم. يقسّم Seafile كل ملف إلى كتل، ويخزّنها في مخزن كائنات لا يستطيع قراءته إلا Seafile، لذلك تكون المزامنة سريعة وتصبح عملية النسخ الاحتياطي مؤلفة من جزأين. يكتب Nextcloud ملفك على القرص بوصفه ملفاً عادياً، ويتعامل مع المزامنة باعتبارها إحدى ميزات منصة تشغّل أيضاً التقويمات وجهات الاتصال والمستندات وروابط المشاركة. احسم اختيارك بناءً على هذا الاختلاف، لأن بقية التفاصيل تترتب عليه.
اعتباراً من October 2026، يعمل Seafile ضمن السلسلة 13.0، بينما يعمل Nextcloud ضمن السلسلة 35. كلاهما ناضج، ولا يُتوقع أن يغيّر أيٌّ منهما نموذج التخزين لديه قريباً.
كيف يخزّن Seafile ملفاتك
يمثّل Seafile المكتبة بالطريقة التي يمثّل بها git المستودع. يعرّف دليل الإدارة النموذج الداخلي على أنه Repo وCommit وFS وBlock، ويذكر أن repo تُسمّى أيضاً library. يُقسَّم كل ملف إلى blocks بأطوال متغيرة باستخدام تقسيم تحدده المحتويات (CDC، وهي خوارزمية تختار حدود blocks من البيانات نفسها)، ويذكر الدليل أن متوسط حجم block يبلغ نحو 8 MB. أما التحميلات عبر واجهة الويب فهي الاستثناء: إذ يقسم file server الملفات هناك إلى blocks ذات حجم ثابت، يبلغ 8 MB افتراضياً. تُسمّى blocks وفق محتوياتها، لذلك تشترك نسختان من ملف كبير واحد في كل block لم يتغير، كما تشترك مكتبتان في blocks المتطابقة.
تحتفظ قاعدة البيانات العلائقية بكمية صغيرة فقط من metadata الخاصة بالمكتبات. أما كل شيء آخر، أي commits وكائنات الأدلة وblocks، فيوجد ضمن data directory. في تخطيط Docker المستخدم في السلسلتين 12 و13، يكون ذلك /opt/seafile-data/seafile/seafile-data. لا يفيدك تشغيل ls هناك، لأنك سترى أدلة مليئة بأسماء hash، وليس Invoices/2026/march.pdf.
تتبع المزامنة النموذج نفسه. يطلب العميل من الخادم معرفة التغييرات، ويتلقى قائمة من block hashes، ثم يجلب blocks التي لا يملكها مسبقاً فقط. لذلك يعمل Seafile بكفاءة مع مكتبة كبيرة: تتناسب وحدات bytes المنقولة مع blocks التي تغيرت، لا مع حجم الملف الذي يحتوي عليها.
كيفية تخزين Nextcloud لملفاتك
يضع Nextcloud الملف على القرص في المكان الذي تتوقعه. يعكس المسار data/<username>/files/ ما يراه المستخدم في واجهة الويب. ويعكس جدول قاعدة البيانات oc_filecache شجرة الملفات نفسها، مع الأحجام وأوقات التعديل وetags، لكن Nextcloud يعتمد على الجدول بدلاً من القرص.
يتصل عميل سطح المكتب عبر WebDAV (تأليف الويب وإدارة الإصدارات) باستخدام HTTPS. يتطلب كل ملف طلباً واحداً على الأقل، ولذلك أضاف Nextcloud واجهة API للتحميل بالجملة. يوضح دليل المطوّر أن تحميل ملفات صغيرة كثيرة أبطأ مما ينبغي لأن عرض نطاق الشبكة لا يُستخدم بالكامل، لذلك تُجمع الملفات الصغيرة معاً. أما الملفات الكبيرة فتستخدم واجهة API للتقسيم إلى أجزاء. يبدأ عميل سطح المكتب بأجزاء حجمها 100 MiB (تكون chunkSize افتراضياً 104857600 بايت)، ويمكنه ضبط الحجم ديناميكياً بين حد أدنى قدره 5 MiB وحد أقصى قدره 100 MiB.
تتمثل فائدة تخزين الملفات على القرص في أن كل أداة تملكها مسبقاً يمكنها قراءة بياناتك. أما التكلفة فهي أن Nextcloud لا يلاحظ التغييرات التي تُجرى من دونه. إذا نسخت الملفات مباشرة إلى دليل البيانات، فستظل غير مرئية في واجهة الويب حتى تفحصها:
sudo -E -u www-data php occ files:scan --all -vvيسمي دليل المسؤول هذه الحالات تحديداً لإعادة الفحص: بعد نسخ الملفات مباشرة إلى دليل البيانات، وبعد إجراء ترحيل، وعند التحقيق في حالات عدم اتساق ذاكرة التخزين المؤقت للملفات.
أيّهما يزامن مكتبة كبيرة بسرعة أكبر؟
Seafile، في الحالتين اللتين تسبّبان أكبر المشكلات: وجود عشرات الآلاف من الملفات الصغيرة، وتكرار تعديل الملفات الكبيرة. تعتمد الآلية على إزالة التكرار على مستوى الكتل، لذلك تُرفع بضع كتل فقط من صورة قرص بحجم 4 GB إذا تغيّر الجزء الأوسط منها. يقلّص Nextcloud الفارق مع الملفات الصغيرة باستخدام الرفع المجمّع، لكنه لا يستطيع سدّ الفارق مع الملفات الكبيرة، لأن وحدة النقل لديه هي الملف بأكمله.
لا تعتمد على تقديري لحجم الفارق، ولا على اختبار أداء من مورّد. أنشئ مكتبة تشبه مكتبتك وقِس الزمن:
mkdir -p ~/synctest && cd ~/synctest
for i in $(seq 1 20000); do head -c 4096 /dev/urandom > "file_$i.bin"; done
du -sh ~/synctestضع هذا الدليل في مجلد متزامن على كل خادم، وراقب حتى يكتمل عمل العميل. الموثوقية مهمة بقدر السرعة. يرفع عميل Seafile الكتل أولاً، ثم يكتب عملية الإيداع التي تشير إليها أخيراً، لذلك يترك الرفع المنقطع المكتبة عند عملية الإيداع السابقة بدلاً من ترك شجرة مكتوبة جزئياً.
ما تحتاجه كل خدمة على VPS صغير
تطلب وثائق Seafile "ذاكرة RAM بسعة 2G على الأقل ووحدة CPU ثنائية النواة (بتردد > 2GHz)". أما Nextcloud فتحدد الذاكرة لكل عملية PHP بدلاً من ذلك: 128 MB كحد أدنى و512 MB موصى بها لكل عملية. اضرب هذه القيمة في عدد العاملين لديك قبل إضافة متطلبات قاعدة البيانات وذاكرة التخزين المؤقت وإنشاء المعاينات. فيما يلي نقاط البداية التي سأستخدمها لفريق صغير. هذه نقاط بداية وليست قياسات.
البيانات وراء هذا الرسم البياني
[
{
"label": "Seafile CE 13",
"start_ram_gb": 4,
"start_cpu_cores": 2,
"sql_databases": 3
},
{
"label": "Nextcloud 35",
"start_ram_gb": 4,
"start_cpu_cores": 2,
"sql_databases": 1
},
{
"label": "Syncthing 2",
"start_ram_gb": 1,
"start_cpu_cores": 1,
"sql_databases": 0
}
]تنتمي الخدمتان إلى الفئة نفسها، وهي 4 GB من RAM مع 2 نوى. لذلك لا يحدد استهلاك الموارد الاختيار بينهما. يعمل Syncthing بذاكرة 1 GB وعلى 1 نواة، وهذا هو السبب العملي للنظر فيه. تختلف المكونات التشغيلية بينهما أكثر مما تختلف الذاكرة. يحتفظ Seafile بعدد 3 من قواعد بيانات SQL، بينما يحتفظ Nextcloud بعدد 1. كما أن النشر الافتراضي لـSeafile عبر Docker يشغّل الخادم وMariaDB وRedis وSeaDoc وCaddy من ملفات تنزّلها أولاً:
mkdir /opt/seafile
cd /opt/seafile
wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
nano .envفي .env، عيّن SEAFILE_SERVER_HOSTNAME، وكلمتي مرور root وقاعدة البيانات في MySQL، وحساب المسؤول الأولي، وJWT_PRIVATE_KEY. يتطلب الدليل سلسلة عشوائية لا يقل طولها عن 32 محرفاً لهذا المفتاح. وتُقرأ هذه السلسلة عند التشغيل الأول، لذا أنشئها قبل تشغيل المكدس:
openssl rand -base64 40
docker compose up -dينشئ التشغيل الأول قواعد البيانات الثلاث ومستخدم المسؤول. أما الإعدادات المناظرة في Nextcloud، بما فيها TLS وReverse Proxy، فتجدها في دليل Nextcloud على VPS باستخدام Docker وTLS والنسخ الاحتياطية.
كيف تختلف النسخ الاحتياطية؟
هذا هو المحور الذي يستهين به الناس، وهو موضع الاختلاف الأكبر بين المنتجين.
بالنسبة إلى Seafile، ترتيب الخطوات إلزامي. تقضي قاعدة الدليل بإنشاء نسخة احتياطية من SQL أولاً، ثم من دليل البيانات، لأن كل سجل في قاعدة البيانات سيشير عندئذٍ إلى كائن صالح، فلا تتلف المكتبات. إذا عكست الترتيب، فقد يشير صف في قاعدة البيانات إلى كتلة لم تلتقطها اللقطة.
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt ccnet_db > ccnet_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seafile_db > seafile_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seahub_db > seahub_db.sql
rsync -az /opt/seafile-data/seafile /backup/data/توجد نقطتان في هذين السطرين. استخدم mariadb-dump، لأن دليل Seafile يوصي بسلسلة الأوامر mariadb: إذ يجري التخلص تدريجياً من أسماء mysql في إصدارات MariaDB الأحدث، وبدءاً من MariaDB 11.0 لم تعد صورة Docker الرسمية تتضمن الاسم mysqldump إطلاقاً. لا يزال ملف Compose الخاص بـSeafile 13 يستخدم MariaDB 10.11 افتراضياً، لذلك يهم هذا الأمر أكثر عند الانتقال إلى صورة قاعدة بيانات أحدث. احذف العلم -t من docker exec عند إعادة التوجيه إلى ملف، لأن TTY يعيد كتابة نهايات الأسطر ويتلف ملف التفريغ.
تُلتقط الجزآن بشكل منفصل، لذلك قد يختلف أحدهما عن الآخر. بعد أي استعادة، افحص المخزن قبل الاعتماد عليه:
docker exec -it seafile bash
cd /opt/seafile/seafile-server-latest
./seaf-fsck.shعند فقدان شيء ما، تسمي الأداة الكائن:
Block 650fb22495b0b199cff0f1e1ebf036e548fcb95a is missing.
Repo ca1a860d HEAD commit is corrupted, need to restore to an old version.خطط أيضاً لجمع البيانات غير المستخدمة. تؤدي إزالة التكرار إلى إبقاء كتل الملفات والمكتبات المحذوفة حتى تشغّل ./seaf-gc.sh من الدليل نفسه، ويعرض التشغيل ما عثر عليه، مثل GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.. إذا تخطيت هذه الخطوة لمدة عام، فستواصل نسخك الاحتياطية استهلاك مساحة لبيانات حذفها المستخدمون.
تواجه Nextcloud المشكلة ذات الجزأين نفسها، لكن في صورة مختلفة، لأن دليل البيانات وقاعدة البيانات يجب أن يصفا الشجرة نفسها:
sudo -E -u www-data php occ maintenance:mode --on
rsync -Aavx /srv/nextcloud/ /backup/nextcloud-dirbkp/
mariadb-dump --single-transaction --default-character-set=utf8mb4 -u nextcloud -p"$DB_PASS" nextcloud > /backup/nextcloud-sqlbkp.bak
sudo -E -u www-data php occ maintenance:mode --offاحتفظ بمجلد الإعداد، ومجلد البيانات، وأي تطبيقات مخصصة، ونسقك، إضافة إلى ملف التفريغ. استعد الجزأين من اللحظة نفسها. إذا كان دليل البيانات أحدث من قاعدة البيانات، فسيرى المستخدمون ملفات لا يعرفها مخزن الملفات المؤقت، ويصلح occ files:scan --all ذلك. وإذا كانت قاعدة البيانات أحدث، فستشير صفوف الذاكرة المؤقتة إلى ملفات لم تعد موجودة، ويزيل occ files:cleanup إدخالات الذاكرة المؤقتة التي لا يقابلها إدخال في جدول التخزين.
في كلتا الحالتين، تحتاج إلى برنامج نسخ احتياطي يتعامل مع عدد كبير من الملفات الصغيرة ويحافظ على السجل التاريخي، وهذا ما تفعله restic وBorgBackup بشكل مختلف.
العملاء على أجهزة سطح المكتب والأجهزة المحمولة
يوفّر Seafile برنامجين لأجهزة سطح المكتب. يحتفظ عميل المزامنة بنسخة محلية من المكتبات التي تحددها. أما عميل Drive (SeaDrive)، فيثبت مكتباتك كمحرك أقراص افتراضي وينزّل الملفات عند الوصول إليها: يستخدم على Windows واجهة Microsoft لملفات السحابة، ويأتي على macOS في الإصدار 3.0 على شكل إضافة Finder، بينما يأتي على Linux في صورة AppImage منذ الإصدار 3.0.12 ويثبّت المكتبات في ~/SeaDrive. على Windows وmacOS، تبقى المكتبات المشفّرة مخفية في عميل Drive إلى أن تختارها من قائمة tray وتدخل كلمة المرور. وُجدت تطبيقات الأجهزة المحمولة للوصول إلى الملفات، وهذا كل ما تحاول فعله.
يوفّر عميل Nextcloud لأجهزة سطح المكتب أيضاً ملفات افتراضية، بينما تتولى تطبيقاته المحمولة بقية وظائف المنصة. لذلك تصل التقويمات وجهات الاتصال وTalk والملاحظات إلى جانب الوصول إلى الملفات. إذا كان المستخدمون يعتمدون على الهواتف ويريدون أكثر من الملفات، فهذه نقطة اختلاف حقيقية في الاستخدام اليومي.
تستحق إحدى خصائص Seafile التخطيط المسبق: المكتبة هي وحدة المشاركة والمزامنة والصلاحيات والتشفير. حدّد تخطيط مكتباتك قبل تحميل 500 GB في مكتبة واحدة، لأن النقل بين المكتبات يتكوّن من نسخ ثم حذف، وليس إعادة تسمية. لذلك لا ينتقل سجل الملف معها.
التشفير: ما الذي يحميه كل خيار فعلياً
مكتبات Seafile المشفّرة تستخدم التشفير من جهة العميل. لا تُخزَّن كلمة المرور على الخادم مطلقاً. يُخزَّن مع المكتبة رمز مميز مشتق من كلمة المرور ومعرّف المكتبة، حتى يتمكن العميل من التحقق من كلمة المرور قبل مزامنة المكتبة. يُشفَّر مفتاح الملف باستخدام مفتاح وIV (متجه التهيئة) مشتقين من كلمة المرور عبر AES 256/CBC، ثم تُشفَّر بيانات الملف باستخدام مفتاح الملف.
اقرأ القيود الموثقة، لأن كثيراً من المستخدمين يتجاهلونها. تُشفِّر المكتبة المشفّرة محتوى الملفات فقط. لا تُشفَّر أسماء المجلدات والملفات، ولا أحجام الملفات أو سجل التعديلات. لا يُعد تصفح مكتبة مشفّرة في متصفح الويب تشفيراً من طرف إلى طرف: تكتب كلمة المرور، ويستخدمها الخادم لفك تشفير مفتاح الملف، ثم يحتفظ بكلمة المرور مؤقتاً في الذاكرة لمدة ساعة واحدة. يوضح الدليل أيضاً أن المكتبة المشفّرة لا تضمن سلامة البيانات، لأن مسؤول الخادم يستطيع تغيير جزء من محتوى ملف، ولا يستطيع العميل اكتشاف ذلك.
يوفّر Nextcloud ميزتين اسمهما متشابه بشكل مربك. يشفّر التشفير من جهة الخادم الملفات وهي غير مستخدمة، لكنه يحتفظ بالمفاتيح على الخادم نفسه. لذلك فهو يحمي البيانات الموجودة على وحدة تخزين خارجية بدرجة أفضل بكثير من حمايتها من شخص يملك صلاحيات root على الخادم. يشفّر تطبيق التشفير من طرف إلى طرف مجلدات تختارها على العميل، وبحسب تصميمه لا يستطيع الخادم قراءتها. لذلك لا تستطيع واجهة الويب، والبحث من جهة الخادم، والمعاينات عرض محتوى هذه المجلدات أيضاً.
لا يحل التشفير في أي من المنتجين محل نسخة احتياطية مشفّرة. شفّر النسخة الاحتياطية بشكل مستقل.
التقويم وجهات الاتصال والمكتب ومنصة التطبيقات
هذا المحور ليس متقارباً. يوفّر Nextcloud بروتوكول CalDAV (التقويم عبر WebDAV) وبروتوكول CardDAV (جهات الاتصال عبر WebDAV) ضمن النواة، ويتكامل مع Collabora أو OnlyOffice للمستندات، كما يوفّر متجر تطبيقات لبقية الاحتياجات. يوفّر Seafile 13 تطبيق SeaDoc للمستندات التعاونية وصفحات wiki، ويمكنه فتح ملفات Office وتحريرها عبر خادم OnlyOffice تنشره بشكل منفصل، ويتوقف عند هذا الحد. لا يتوفر فيه تقويم ولا دفتر عناوين.
للمنصة تكلفة، وهذه التكلفة هي الترقيات. كل تطبيق تثبّته يمثل عنصراً إضافياً قد يمنع ترقية Nextcloud أو يتسبب في سلوك غير صحيح بعدها. لذلك، كلما زاد اعتماد المستخدمين على هذه التطبيقات، احتجت إلى مزيد من الحذر عند تحديد نافذة الترقية. لدى Seafile عناصر أقل قد تتعطل لأنه يوفّر وظائف أقل. لاحظ أيضاً أن Seafile Professional، وليس Community Edition، هو الذي يضيف البحث الكامل داخل المستندات والصلاحيات على مستوى المجلدات. يعمل Professional دون ترخيص مدفوع لما يصل إلى ثلاثة مستخدمين، ويتطلب ترخيصاً بعد ذلك. لذلك، تأكد من أن الميزة التي تعتمد عليها متوفرة في الإصدار الذي تخطط لتشغيله.
نمط الفشل الذي يُعرَف به كل منها
يفشل Seafile عندما لا تعود قاعدة البيانات ومخزن الكائنات متزامنين. قد ترى مكتبة لا تفتح، أو ملفات تختفي، ويعرض seaf-fsck.sh الكتلة المفقودة. لا توجد شجرة ملفات يمكن إصلاحها يدوياً، لذلك تتطلب الاستعادة تفريغ قاعدة البيانات ومخزن الكائنات، مع استعادتهما بالترتيب الصحيح. اختبر هذه الاستعادة مرة واحدة على VPS احتياطي، لأن النسخة الاحتياطية التي لم تستعدها من قبل ليست إلا تخميناً.
يفشل Nextcloud عندما تختلف ذاكرة التخزين المؤقت للملفات عن محتوى القرص، ويحدث ذلك عادةً لأن شيئاً ما كتب في دليل البيانات من دون إبلاغ Nextcloud. قد ترى ملفاً على القرص لا تعرضه واجهة الويب، أو مجلداً يظهر بحجم غير صحيح، ويكون occ files:scan هو الإصلاح. وتتمثل مشكلتاه الأخريان في بطء البروتوكول عند التعامل مع ملفات صغيرة كثيرة، ولا تعالج زيادة عدد CPU ذلك، وفي استهلاك PHP للذاكرة. غالباً ما تتسبب معاينات الصور ومقاطع الفيديو الكبيرة في الارتفاع المفاجئ للاستهلاك، لذلك خصص 512 MB لكل عملية وأنشئ المعاينات في مهمة مجدولة بدلاً من إنشائها أثناء الطلبات.
لا هذا ولا ذاك: Syncthing إذا كنت تريد مزامنة الملفات فقط
إذا كان احتياجك الفعلي هو عكس مجلد واحد بين الأجهزة، فكلتا الخدمتين تقدمان وظائف أكثر مما تحتاج. لا يحتوي Syncthing على خادم أو حسابات. كل جهاز هو نظير، ويصبح VPS النظير الذي يظل قيد التشغيل عندما يدخل حاسوبك المحمول في وضع السكون. الإصدار الحالي هو Syncthing 2، وتأتي الحزم من مستودع المشروع نفسه:
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شغّله كمستخدم عادي، وليس كـroot، حتى تكون ملكية الملفات التي ينشئها مناسبة:
sudo systemctl enable --now syncthing@youruser
systemctl status syncthing@youruserترتبط واجهة الويب بالعنوان 127.0.0.1:8384 افتراضياً، لذلك لا يمكن الوصول إليها من الإنترنت، وهذا هو الإعداد الافتراضي الصحيح. صِل إليها عبر نفق SSH من حاسوبك المحمول:
ssh -L 8384:127.0.0.1:8384 youruser@your-serverثم افتح http://127.0.0.1:8384 على حاسوبك المحمول. تستخدم المزامنة نفسها المنفذ 22000 عبر TCP وQUIC، بينما يستخدم الاكتشاف المحلي UDP 21027، وهذا لا يعمل عبر الإنترنت. على VPS، افتح المنفذ 22000 واترك الواجهة مغلقة:
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udpما تتخلى عنه هو جميع ميزات الخادم: لا توجد روابط مشاركة للأشخاص الذين لا يشغّلون Syncthing، ولا متصفح ملفات عبر الويب، ولا حسابات مستخدمين، ولا سلة مهملات على الخادم إلا إذا فعّلت حفظ إصدارات الملفات لكل مجلد. والمفاجأة المعتادة هي ملف التعارض. إذا عدّلت الملف نفسه على جهازين أثناء تعذر اتصالهما ببعضهما، فستحصل على ملف شقيق اسمه مثل notes.sync-conflict-20260806-142233-ABCD1EF.md. لا يظهر أي تحذير بذلك، لذا ابحث عن sync-conflict من وقت إلى آخر.
إذا لم تكن تريد مجلداً متزامناً، بل حاوية تكتب التطبيقات البيانات إليها، فهذه أداة مختلفة أيضاً: راجع تخزين الكائنات المتوافق مع S3 والمستضاف ذاتياً. وللاطلاع على المجال الأوسع، يغطي الدليل التجميعي لبدائل Dropbox المستضافة ذاتياً ما لم يدخل في هذه المقارنة.
قاعدة اتخاذ القرار
- اختر Seafile إذا كانت المهمة تتمثل في مزامنة البيانات على نطاق واسع: عدد كبير من الملفات، وملفات كبيرة، وعدة أجهزة، مع قبول استخدام مخزن بيانات لا يستطيع قراءته إلا Seafile.
- اختر Nextcloud إذا كانت المهمة تتمثل في استخدام منصة: التقويمات، وجهات الاتصال، والمستندات، وروابط المشاركة، مع الاحتفاظ بملفات عادية على القرص يستطيع أي برنامج نسخ احتياطي قراءتها.
- اختر Syncthing إذا كانت المهمة تتمثل في مجلد مطابق ولا شيء غير ذلك.
اتخذ القرار بعناية الآن، لأن الترحيل بين Seafile وNextcloud هو القيد الفعلي. لا توجد أداة تحويل. ستزامن كل شيء إلى عميل، ثم ترفعه إلى الخادم الآخر، وستدفع تكلفة ذلك من النطاق الترددي والوقت، بينما يظل سجل الإصدارات وروابط المشاركة في الخادم القديم. إن تحديد سعة اختيار اليوم لتناسب السنوات الثلاث المقبلة أقل تكلفة من التبديل في السنة الثانية.
FAQ
هل Seafile أسرع من Nextcloud لمزامنة المكتبات الكبيرة؟
نعم، في الحالتين اللتين تسببان المشكلات عادةً، ولسبب يمكنك التحقق منه. يقسّم Seafile الملفات إلى كتل يبلغ متوسط حجمها نحو 8 MB، وينقل الكتل التي تغيّرت فقط. لذلك يؤدي التعديل داخل ملف كبير إلى نقل بضع كتل. أما وحدة النقل في Nextcloud فهي الملف كاملاً، ولذلك يعيد التعديل نفسه رفع الملف بأكمله. كما تستهلك الملفات الصغيرة الكثيرة طلب WebDAV واحداً على الأقل لكل ملف، ولهذا تعمل واجهة الرفع المجمّع فيه على تجميع الملفات الصغيرة. قِس الزمن على VPS الخاص بك قبل الالتزام، لأن وحدة المعالجة المركزية والقرص ووصلة الشبكة لديك مهمة بقدر أهمية البروتوكول.
هل يمكنني نسخ Seafile احتياطياً بتشغيل rsync على دليل البيانات؟
نعم، ولكن مع قواعد البيانات وبالترتيب الموثّق فقط. يذكر دليل Seafile ضرورة نسخ SQL احتياطياً أولاً، ثم دليل البيانات، لأن كل سجل في قاعدة البيانات يشير عندئذٍ إلى كائن موجود في النسخة الاحتياطية. ينسخ الأمر rsync -az /opt/seafile-data/seafile /backup/data/ العناصر conf وseafile-data وseahub-data، لكنه غير قابل للاستعادة بمفرده، لأن مخزن الكائنات لا يحتوي على شجرة ملفات قابلة للقراءة، وقاعدة البيانات هي فهرسه. بعد استعادة الجزأين، شغّل seaf-fsck.sh واقرأ مخرجاته قبل الوثوق بالنتيجة.
هل أحتاج إلى Nextcloud إذا كنت أريد مزامنة الملفات فقط؟
لا. Nextcloud منصة، وتستهلك التقويمات وجهات الاتصال ومتجر التطبيقات الذاكرة ووقت إدارة الترقية، سواء استخدمتها أم لا. لمزامنة الملفات فقط، يُعد Seafile المنتج الأخف وبروتوكوله أسرع، بينما يُعد Syncthing أخف منه لأنه لا يتطلب جانب خادم لتشغيله. اختر Nextcloud عندما تريد التطبيقات الإضافية، وليس كخيار افتراضي.
هل تخفي مكتبة Seafile المشفّرة أسماء ملفاتي؟
لا. تشفّر المكتبة المشفّرة محتوى الملفات على العميل، ولا تصل كلمة المرور إلى الخادم. لكن أسماء المجلدات والملفات وأحجامها وسجل التعديلات تظل ظاهرة على الخادم. يؤدي فتح مكتبة مشفّرة في واجهة الويب أيضاً إلى إرسال كلمة المرور إلى الخادم، حيث يفك تشفير مفتاح الملف ويحتفظ بكلمة المرور في الذاكرة لمدة ساعة واحدة. إذا كانت الأسماء نفسها حساسة، فأبقِ تلك المكتبة خارج واجهة الويب، واستخدم التشفير في طبقة أخرى.
ما مقدار RAM الذي ينبغي تخصيصه لـSeafile أو Nextcloud على VPS؟
ابدأ بـ 4 GB و2 أنوية لأيٍّ منهما مع عدد قليل من المستخدمين، ثم راقب الذاكرة أثناء إنشاء المعاينات والبحث. تحدد وثائق Seafile الخاصة بها الحد الأدنى عند 2 GB من RAM ومعالج من نواتين بتردد أعلى من 2 GHz. توصي وثائق Nextcloud بتخصيص 512 MB لكل عملية PHP، وعليك ضرب ذلك في عدد العاملين قبل إضافة قاعدة البيانات وذاكرة التخزين المؤقت. يعمل Syncthing بشكل مريح ضمن 1 GB.