SSD Nodes Learn 🎉 VPS $4.99/माह से
गाइड Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-08-07

Seafile बनाम Nextcloud: आपके लिए कौन सा बेहतर है?

Seafile और Nextcloud के बीच सही चुनाव करें। Seafile फाइलों को ब्लॉक्स में विभाजित कर तेज़ सिंक देता है, जबकि Nextcloud एक पूर्ण ऐप प्लेटफॉर्म है। प्रदर्शन और बैकअप की तुलना देखें।

Seafile बनाम Nextcloud: संक्षिप्त उत्तर

Seafile और Nextcloud के बीच का अंतर केवल एक बात पर निर्भर करता है: सर्वर पर पहुँचने के बाद फ़ाइल का स्वरूप क्या होता है। Seafile प्रत्येक फ़ाइल को ब्लॉक्स में विभाजित करता है और उन्हें एक ऐसे ऑब्जेक्ट स्टोर में रखता है जिसे केवल Seafile ही पढ़ सकता है, इसलिए सिंक तेज़ होता है और बैकअप दो चरणों वाली प्रक्रिया बन जाती है। Nextcloud आपकी फ़ाइल को डिस्क पर एक फ़ाइल के रूप में ही लिखता है, और सिंक को एक ऐसे प्लेटफ़ॉर्म की एक सुविधा मानता है जो कैलेंडर, संपर्क, दस्तावेज़ और शेयर लिंक भी चलाता है। इस अंतर के आधार पर निर्णय लें, क्योंकि बाकी सब कुछ इसी से तय होता है।

अगस्त 2026 तक, Seafile 13.0 सीरीज़ पर है और Nextcloud 34 सीरीज़ पर है। दोनों ही परिपक्व सॉफ़्टवेयर हैं, और इनमें से कोई भी अपने स्टोरेज मॉडल को बदलने वाला नहीं है।

Seafile आपकी फाइलों को कैसे स्टोर करता है

Seafile एक लाइब्रेरी को उसी तरह मॉडल करता है जैसे git एक रिपॉजिटरी को मॉडल करता है। एडमिन मैनुअल आंतरिक मॉडल को Repo, Commit, FS और Block के रूप में बताता है, और यह भी उल्लेख करता है कि एक रिपो को लाइब्रेरी भी कहा जाता है। प्रत्येक फाइल को content defined chunking (CDC, एक एल्गोरिदम जो डेटा से ही ब्लॉक की सीमाएं चुनता है) द्वारा परिवर्तनीय लंबाई के ब्लॉकों में विभाजित किया जाता है, और मैनुअल लगभग 8 MB का औसत ब्लॉक आकार बताता है। ब्लॉकों का नाम उनकी सामग्री के आधार पर रखा जाता है, इसलिए एक बड़ी फाइल के दो संस्करण उन सभी ब्लॉकों को साझा करते हैं जो नहीं बदले हैं, और दो लाइब्रेरी भी समान ब्लॉकों को साझा करती हैं।

रिलेशनल डेटाबेस में लाइब्रेरी के बारे में केवल थोड़ी मात्रा में मेटाडेटा होता है। बाकी सब कुछ, यानी कमिट, डायरेक्टरी ऑब्जेक्ट्स और ब्लॉक, डेटा डायरेक्टरी के अंतर्गत स्थित होते हैं। 12 और 13 सीरीज में उपयोग किए जाने वाले Docker लेआउट में यह /opt/seafile-data/seafile/seafile-data है। वहां ls चलाने से आपको कोई उपयोगी जानकारी नहीं मिलती है, क्योंकि आप हैश नामों से भरी डायरेक्टरी देखते हैं, न कि Invoices/2026/march.pdf

सिंक भी इसी मॉडल का पालन करता है। क्लाइंट सर्वर से पूछता है कि क्या बदला है, ब्लॉक हैश की एक सूची प्राप्त करता है, और केवल उन ब्लॉकों को फेच करता है जो उसके पास पहले से नहीं हैं। यही कारण है कि Seafile एक बड़ी लाइब्रेरी पर भी अच्छा प्रदर्शन करता है: ट्रांसफर किए गए बाइट्स उन ब्लॉकों के अनुपात में होते हैं जो बदले हैं, न कि उस फाइल के आकार के अनुपात में जिसमें वे शामिल हैं।

Nextcloud आपकी फाइलों को कैसे स्टोर करता है

Nextcloud फाइल को डिस्क पर वहीं रखता है जहाँ आप अपेक्षा करते हैं। पथ data/<username>/files/ उस संरचना को दर्शाता है जो उपयोगकर्ता को वेब इंटरफेस में दिखाई देती है। एक डेटाबेस टेबल, oc_filecache, उसी ट्री को आकार, संशोधन समय और etags के साथ दर्शाती है, और Nextcloud डिस्क के बजाय इस टेबल पर भरोसा करता है।

डेस्कटॉप क्लाइंट HTTPS पर WebDAV (web distributed authoring and versioning) का उपयोग करता है। प्रत्येक फाइल के लिए कम से कम एक अनुरोध की आवश्यकता होती है, यही कारण है कि Nextcloud ने एक बल्क अपलोड API जोड़ा है: डेवलपर मैनुअल बताता है कि कई छोटी फाइलों को अपलोड करना उतना तेज नहीं होता जितना हो सकता है क्योंकि नेटवर्क बैंडविड्थ का पूरा उपयोग नहीं हो पाता है, इसलिए छोटी फाइलों को एक साथ पैक किया जाता है। बड़ी फाइलें इसके बजाय chunking API के माध्यम से जाती हैं, और डेस्कटॉप क्लाइंट का डिफ़ॉल्ट चंक आकार 5 MiB है (OWNCLOUD_CHUNK_SIZE डिफ़ॉल्ट रूप से 5242880 बाइट्स है)।

डिस्क पर फाइलों को रखने का लाभ यह है कि आपके पास मौजूद हर टूल आपके डेटा को पढ़ सकता है। इसकी कीमत यह है कि Nextcloud अपनी जानकारी के बिना किए गए बदलावों को नहीं देख पाता है। यदि आप फाइलों को सीधे डेटा डायरेक्टरी में कॉपी करते हैं, तो वे वेब इंटरफेस में तब तक अदृश्य रहती हैं जब तक आप स्कैन नहीं करते:

sudo -E -u www-data php occ files:scan --all -vv

एडमिन मैनुअल rescan के लिए ठीक इन्हीं मामलों का उल्लेख करता है: फाइलों को सीधे डेटा डायरेक्टरी में कॉपी करने के बाद, माइग्रेशन के बाद, और जब आप फाइल कैश की विसंगतियों की जांच कर रहे हों।

बड़ी लाइब्रेरी को सिंक करने में कौन सा तेज़ है?

Seafile, उन दो स्थितियों में जो प्रदर्शन को प्रभावित करती हैं: हज़ारों छोटी फाइलें, और बड़ी फाइलों में बार-बार किए गए बदलाव। इसका मैकेनिज्म ब्लॉक-लेवल डिडुप्लीकेशन (block level deduplication) है, इसलिए यदि 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 क्लाइंट पहले ब्लॉक अपलोड करता है और अंत में उस कमिट (commit) को लिखता है जो उन्हें रेफर करता है, इसलिए बीच में अपलोड रुकने पर भी लाइब्रेरी आधे-अधूरे ट्री के बजाय अपने पिछले कमिट पर ही रहती है।

एक छोटे VPS पर प्रत्येक की आवश्यकताएं

Seafile के दस्तावेज़ "कम से कम 2G RAM और 2-core CPU (> 2GHz)" की मांग करते हैं। इसके विपरीत, Nextcloud प्रति PHP process मेमोरी की आवश्यकता बताता है: न्यूनतम 128 MB और प्रति process 512 MB की अनुशंसा की जाती है। इसे आप अपने worker count से गुणा करते हैं और फिर इसमें डेटाबेस, कैश और प्रीव्यू जनरेशन की मेमोरी जोड़ते हैं। नीचे वे शुरुआती बिंदु दिए गए हैं जिनका उपयोग मैं एक छोटी टीम के लिए करूँगा। ये केवल शुरुआती बिंदु हैं, सटीक माप नहीं।

ChartStarting point for about five users, and SQL databases per stack
The data behind this chart
[
  {
    "label": "Seafile CE 13",
    "start_ram_gb": 4,
    "start_cpu_cores": 2,
    "sql_databases": 3
  },
  {
    "label": "Nextcloud 34",
    "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 cores के साथ, इसलिए footprint के आधार पर इनमें से किसी एक को चुनना निर्णायक नहीं है। Syncthing 1 GB RAM और 1 core पर चलता है, और यही इसे चुनने का वास्तविक कारण है। इनके काम करने के तरीके में मेमोरी से अधिक अंतर है। Seafile 3 SQL डेटाबेस रखता है जबकि Nextcloud 1 रखता है। Seafile का डिफ़ॉल्ट Docker डिप्लॉयमेंट सर्वर, MariaDB, Memcached, 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, MySQL root और डेटाबेस पासवर्ड, शुरुआती एडमिन अकाउंट, और JWT_PRIVATE_KEY सेट करें। मैनुअल के अनुसार इस key के लिए कम से कम 32 अक्षरों की एक रैंडम स्ट्रिंग आवश्यक है। यह पहली बार शुरू होने पर पढ़ी जाती है, इसलिए stack को up करने से पहले इसे जनरेट कर लें:

openssl rand -base64 40
docker compose up -d

पहली बार शुरू करने पर तीन डेटाबेस और एडमिन यूजर बन जाते हैं। Nextcloud के लिए समान निर्णय, जिसमें TLS और reverse proxy शामिल हैं, Docker, TLS और बैकअप के साथ VPS पर Nextcloud गाइड में विस्तार से बताए गए हैं।

बैकअप में क्या अंतर है?

यह वह मुख्य बिंदु है जिसे लोग कम आंकते हैं, और यहीं पर दोनों उत्पाद सबसे अधिक भिन्न हैं।

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 कमांड श्रृंखला को deprecated कर दिया गया है। जब आप किसी फाइल में रीडायरेक्ट करते हैं तो docker exec से -t फ्लैग हटा दें, क्योंकि TTY लाइन एंडिंग्स को फिर से लिख देता है और डंप को खराब कर देता है।

दोनों हिस्सों को अलग-अलग कैप्चर किया जाता है, इसलिए उनमें अंतर (drift) आ सकता है। किसी भी रिस्टोर के बाद, उस पर भरोसा करने से पहले स्टोर की जांच करें:

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.

Garbage collection की भी योजना बनाएं। Deduplication का अर्थ है कि हटाई गई फाइलें और हटाई गई लाइब्रेरी अपने ब्लॉक तब तक रखती हैं जब तक आप उसी डायरेक्टरी से ./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

config फोल्डर, data फोल्डर, किसी भी कस्टम ऐप्स और अपनी थीम, साथ ही उस डंप को सुरक्षित रखें। दोनों हिस्सों को एक ही समय के बिंदु से रिस्टोर करें। यदि डेटा डायरेक्टरी डेटाबेस से नई है, तो उपयोगकर्ता ऐसी फाइलें देखते हैं जिनके बारे में फाइल कैश को जानकारी नहीं होती, और occ files:scan --all इसे रिपेयर करता है। यदि डेटाबेस नया है, तो कैश पंक्तियाँ उन फाइलों की ओर संकेत करती हैं जो अब मौजूद नहीं हैं, और occ files:cleanup उन कैश प्रविष्टियों को हटा देता है जिनका स्टोरेज टेबल में कोई मिलान नहीं होता।

किसी भी स्थिति में आपको एक ऐसे बैकअप प्रोग्राम की आवश्यकता है जो कई छोटी फाइलों को संभाल सके और इतिहास (history) बनाए रखे, जो कि restic और BorgBackup के काम करने का अलग तरीका है

डेस्कटॉप और मोबाइल पर क्लाइंट्स

Seafile दो डेस्कटॉप प्रोग्राम प्रदान करता है। सिंकिंग क्लाइंट आपके द्वारा चुनी गई लाइब्रेरी की एक स्थानीय प्रति (local copy) रखता है। ड्राइव क्लाइंट (SeaDrive) आपकी लाइब्रेरी को एक वर्चुअल ड्राइव के रूप में माउंट करता है और एक्सेस करने पर फाइलें डाउनलोड करता है: Windows पर यह Microsoft की cloud files API का उपयोग करता है, macOS पर संस्करण 3.0 एक Finder extension है, और Linux पर यह 3.0.12 के बाद से AppImage के रूप में आता है और ~/SeaDrive पर माउंट होता है। एन्क्रिप्टेड लाइब्रेरी तीनों डेस्कटॉप प्लेटफॉर्म पर काम करती हैं। मोबाइल ऐप्स केवल फाइलों तक पहुँचने के लिए हैं, और वे यही करने का प्रयास करते हैं।

Nextcloud का डेस्कटॉप क्लाइंट भी वर्चुअल फाइल्स की सुविधा देता है, और इसके मोबाइल ऐप्स पूरे प्लेटफॉर्म को साथ लाते हैं, इसलिए फाइल एक्सेस के साथ-साथ कैलेंडर, कॉन्टैक्ट्स, Talk और नोट्स भी उपलब्ध हो जाते हैं। यदि आपके उपयोगकर्ता फोन का अधिक उपयोग करते हैं और उन्हें फाइलों के अलावा भी बहुत कुछ चाहिए, तो दैनिक उपयोग में यह एक बड़ा अंतर है।

Seafile के बारे में एक विवरण योजना बनाने योग्य है: लाइब्रेरी ही शेयरिंग, सिंक, अनुमतियों (permissions) और एन्क्रिप्शन की इकाई है। 500 GB डेटा को एक ही लाइब्रेरी में डालने से पहले अपनी लाइब्रेरी लेआउट तय कर लें, क्योंकि एक लाइब्रेरी से दूसरी लाइब्रेरी में फाइल ले जाना वास्तव में एक कॉपी और डिलीट की प्रक्रिया है, न कि केवल नाम बदलना, इसलिए फाइल का इतिहास (history) उसके साथ स्थानांतरित नहीं होता है।

Encryption: प्रत्येक क्या सुरक्षित करता है

Seafile की encrypted libraries client-side होती हैं। पासवर्ड कभी भी सर्वर पर स्टोर नहीं होता है। पासवर्ड और library id से बना एक magic token library के साथ स्टोर किया जाता है, ताकि client sync करने से पहले पासवर्ड की जाँच कर सके। file key को आपके पासवर्ड से प्राप्त key और IV (initialisation vector) का उपयोग करके AES 256/CBC के साथ encrypt किया जाता है, और file data को उस file key से encrypt किया जाता है।

दस्तावेजीकृत सीमाओं (documented limits) को पढ़ें, क्योंकि लोग अक्सर इन्हें अनदेखा कर देते हैं। एक encrypted library केवल file contents को encrypt करती है। Folder और file के नाम encrypt नहीं होते हैं, और न ही file का आकार या edit history encrypt होती है। वेब ब्राउज़र में encrypted library को ब्राउज़ करना end-to-end नहीं है: आप पासवर्ड टाइप करते हैं, सर्वर इसका उपयोग file key को decrypt करने के लिए करता है, और यह पासवर्ड को एक घंटे के लिए memory में cache कर लेता है। मैनुअल में यह भी स्पष्ट है कि एक encrypted library integrity सुनिश्चित नहीं करती है, क्योंकि सर्वर एडमिन file के contents के किसी हिस्से को बदल सकता है और client इसका पता नहीं लगा सकता है।

Nextcloud में भ्रमित करने वाले समान नामों वाली दो सुविधाएँ हैं। Server side encryption files को at-rest encrypt करती है लेकिन keys को उसी सर्वर पर रखती है, इसलिए यह external storage पर रखे गए डेटा को उस स्थिति की तुलना में बेहतर सुरक्षित करती है जब कोई व्यक्ति box पर root access रखता हो। End to end encryption app client पर चुने गए folders को encrypt करती है, और डिज़ाइन के अनुसार सर्वर उन्हें पढ़ नहीं सकता है, इसलिए वेब इंटरफ़ेस, server side search और previews भी उन folders के अंदर नहीं देख सकते हैं।

किसी भी उत्पाद का encryption, encrypted backup का विकल्प नहीं है। Backup को अलग से encrypt करें।

Calendars, contacts, office और app platform

यह axis पूर्ण नहीं है। Nextcloud core में CalDAV (calendar over WebDAV) और CardDAV (contacts over WebDAV) प्रदान करता है, documents के लिए Collabora या OnlyOffice को integrate करता है, और बाकी सब चीजों के लिए एक app store उपलब्ध कराता है। Seafile 13 collaborative documents और wiki pages के लिए SeaDoc प्रदान करता है, और यहीं तक सीमित रहता है। इसमें कोई calendar या address book नहीं है।

इस platform की एक कीमत है, और वह कीमत है upgrades। आपके द्वारा install किया गया प्रत्येक app एक ऐसी चीज है जो Nextcloud upgrade को रोक सकता है या उसके बाद गलत व्यवहार कर सकता है, इसलिए आपके users जिस हद तक इन पर निर्भर हैं, आपका upgrade window उतना ही अधिक सावधानी भरा हो जाता है। Seafile में टूटने की संभावना कम है क्योंकि यह कम काम करता है। यह भी ध्यान दें कि Seafile Professional, न कि Community Edition, वह संस्करण है जो paid licence के तहत documents के भीतर full text search और folder level permissions जोड़ता है, इसलिए सुनिश्चित करें कि जिस feature पर आप निर्भर हैं, वह उस edition में उपलब्ध है जिसे आप चलाने की योजना बना रहे हैं।

प्रत्येक के लिए ज्ञात विफलता मोड (failure mode)

Seafile तब विफल होता है जब database और object store के बीच तालमेल बिगड़ जाता है। आपको ऐसी library दिखाई देगी जो खुलेगी नहीं, या फाइलें गायब हो जाएंगी, और seaf-fsck.sh गायब ब्लॉक को प्रिंट करेगा। हाथ से सुधारने के लिए कोई file tree नहीं होती, इसलिए रिकवरी का अर्थ है आपका database dump और object store, जिन्हें सही क्रम में restore किया गया हो। उस restore को एक बार किसी spare VPS पर टेस्ट करें, क्योंकि जिस backup को आपने कभी restore नहीं किया, वह केवल एक अनुमान है।

Nextcloud तब विफल होता है जब file cache और disk के बीच असहमति होती है, आमतौर पर इसलिए क्योंकि किसी ने Nextcloud को बताए बिना data directory में कुछ लिख दिया है। आपको disk पर ऐसी फाइल दिखेगी जो web interface में सूचीबद्ध नहीं है, या किसी फोल्डर का आकार गलत होगा, और occ files:scan इसका समाधान है। इसकी अन्य दो कमजोरियाँ हैं: कई छोटी फाइलों पर protocol की गति, जिसे CPU की कोई भी मात्रा ठीक नहीं कर सकती, और PHP memory। बड़ी छवियों और वीडियो के previews के कारण आमतौर पर memory spike होती है, इसलिए प्रति process 512 MB रखें और previews को requests के दौरान बनाने के बजाय scheduled job में generate करें।

इनमें से कोई नहीं: Syncthing, यदि आपको केवल फाइल सिंक चाहिए

यदि आपकी वास्तविक आवश्यकता मशीनों के बीच एक फोल्डर को मिरर करने की है, तो दोनों ही उत्पाद आपकी जरूरत से कहीं अधिक जटिल हैं। Syncthing में कोई सर्वर या अकाउंट नहीं होता है। प्रत्येक डिवाइस एक पीयर (peer) है, और एक 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 खोलें। Sync स्वयं TCP और QUIC पर पोर्ट 22000 का उपयोग करता है, और लोकल डिस्कवरी UDP 21027 का उपयोग करती है, जो इंटरनेट पर काम नहीं करती है। VPS पर, केवल 22000 पोर्ट खोलें और इंटरफेस को बंद रखें:

sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp

आप जो खो देते हैं वह सर्वर की सभी विशेषताएं हैं: उन लोगों के लिए कोई शेयर लिंक नहीं जो Syncthing नहीं चलाते, कोई वेब फाइल ब्राउज़र नहीं, कोई यूजर अकाउंट नहीं, और सर्वर-साइड ट्रैश तब तक नहीं जब तक आप प्रति फोल्डर फाइल वर्ज़निंग सक्षम न करें। एक सामान्य आश्चर्य 'कॉन्फ्लिक्ट फाइल' है। यदि आप दो डिवाइस पर एक ही फाइल को तब एडिट करते हैं जब वे एक-दूसरे से कनेक्टेड नहीं होते, तो आपको notes.sync-conflict-20260806-142233-ABCD1EF.md जैसा एक सिबलिंग फाइल मिलता है। आपको कोई चेतावनी नहीं मिलती, इसलिए समय-समय पर sync-conflict के लिए सर्च करते रहें।

यदि आप सिंक किए गए फोल्डर के बजाय एक ऐसा बकेट चाहते हैं जिसमें एप्लिकेशन डेटा लिख सकें, तो वह एक अलग टूल है: self-hosted S3 compatible object storage देखें। व्यापक क्षेत्र के लिए, the roundup of self-hosted Dropbox alternatives उन विकल्पों को कवर करता है जो इस तुलना में शामिल नहीं किए गए हैं।

निर्णय लेने का नियम

  1. यदि आपका कार्य कई फाइलों, बड़ी फाइलों और कई उपकरणों के बीच सिंक (sync) करना है, और आप ऐसे डेटा स्टोर को स्वीकार कर सकते हैं जिसे केवल Seafile ही पढ़ सकता है, तो Seafile चुनें।
  2. यदि आपका कार्य एक प्लेटफॉर्म का उपयोग करना है, जिसमें कैलेंडर, संपर्क, दस्तावेज़ और शेयर लिंक शामिल हों, और आप चाहते हैं कि डिस्क पर फाइलें सामान्य रूप में रहें जिन्हें कोई भी बैकअप टूल पढ़ सके, तो Nextcloud चुनें।
  3. यदि आपका कार्य केवल एक फोल्डर को मिरर (mirror) करना है और इसके अलावा कुछ नहीं, तो Syncthing चुनें।

अभी सावधानीपूर्वक चुनाव करें, क्योंकि Seafile और Nextcloud के बीच माइग्रेशन ही वास्तविक लॉक-इन है। इसके लिए कोई कनवर्टर उपलब्ध नहीं है। आपको सब कुछ क्लाइंट पर सिंक करना होगा, उसे दूसरे सर्वर पर अपलोड करना होगा, और इसमें बैंडविड्थ और समय का खर्च होगा, जबकि वर्शन हिस्ट्री और शेयर लिंक पीछे ही छूट जाएंगे। आज के चुनाव को अगले तीन वर्षों के लिए सही आकार देना, दूसरे वर्ष में स्विच करने की तुलना में सस्ता है।

FAQ

क्या बड़ी libraries को सिंक करने के लिए Seafile, Nextcloud से तेज़ है?

हाँ, उन दो स्थितियों में जो आमतौर पर प्रदर्शन को प्रभावित करती हैं, और इसका एक कारण है जिसे आप सत्यापित कर सकते हैं। Seafile फाइलों को औसतन 8 MB के ब्लॉक्स में विभाजित करता है और केवल उन्हीं ब्लॉक्स को ट्रांसफर करता है जो बदले हैं, इसलिए एक बड़ी फाइल के भीतर किए गए बदलाव से केवल कुछ ब्लॉक्स ही ट्रांसफर होते हैं। Nextcloud की ट्रांसफर इकाई पूरी फाइल होती है, इसलिए उसी बदलाव के लिए पूरी फाइल दोबारा अपलोड होती है। साथ ही, कई छोटी फाइलों के लिए कम से कम एक WebDAV रिक्वेस्ट की आवश्यकता होती है, यही कारण है कि इसका bulk upload API छोटी फाइलों को एक साथ पैक करता है। किसी भी निर्णय पर पहुँचने से पहले अपने VPS पर दोनों का समय मापें, क्योंकि आपका CPU, डिस्क और नेटवर्क लिंक प्रोटोकॉल जितना ही महत्वपूर्ण है।

क्या मैं data directory पर rsync चलाकर Seafile का बैकअप ले सकता हूँ?

केवल databases के साथ और दस्तावेज़ों में बताए गए क्रम में ही ऐसा करें। Seafile का मैनुअल कहता है कि पहले SQL का बैकअप लें और उसके बाद data directory का, क्योंकि ऐसा करने पर प्रत्येक डेटाबेस रिकॉर्ड एक ऐसे ऑब्जेक्ट को संदर्भित करता है जो बैकअप में मौजूद है। कमांड rsync -az /opt/seafile-data/seafile /backup/data/, conf, seafile-data और seahub-data को कॉपी तो करती है, लेकिन यह अपने आप में रिस्टोर करने योग्य नहीं है, क्योंकि ऑब्जेक्ट स्टोर में कोई पठनीय फाइल ट्री नहीं होता और डेटाबेस ही इसका इंडेक्स है। दोनों हिस्सों को रिस्टोर करने के बाद, seaf-fsck.sh चलाएं और परिणाम पर भरोसा करने से पहले इसके आउटपुट को पढ़ें।

क्या मुझे केवल फाइल सिंक के लिए Nextcloud की आवश्यकता है?

नहीं। Nextcloud एक प्लेटफॉर्म है, और कैलेंडर, कॉन्टैक्ट्स और ऐप स्टोर के लिए आपको मेमोरी और अपग्रेड की देखभाल करनी पड़ती है, चाहे आप उनका उपयोग करें या न करें। केवल फाइल सिंक के लिए, Seafile एक हल्का उत्पाद है जिसका प्रोटोकॉल तेज़ है, और Syncthing इससे भी हल्का है क्योंकि इसमें चलाने के लिए कोई सर्वर-साइड नहीं होता। Nextcloud को तब चुनें जब आपको अतिरिक्त एप्लिकेशन चाहिए हों, न कि इसे डिफ़ॉल्ट के रूप में।

क्या एन्क्रिप्टेड Seafile लाइब्रेरी मेरे फाइल नामों को छिपाती है?

नहीं। एक एन्क्रिप्टेड लाइब्रेरी क्लाइंट पर फाइल की सामग्री को एन्क्रिप्ट करती है और पासवर्ड कभी सर्वर तक नहीं पहुँचता, लेकिन फोल्डर के नाम, फाइल के नाम, फाइल का आकार और एडिट हिस्ट्री सर्वर पर दिखाई देते रहते हैं। वेब इंटरफेस में एन्क्रिप्टेड लाइब्रेरी खोलने पर पासवर्ड सर्वर को भेजा जाता है, जो फाइल की की (key) को डिक्रिप्ट करता है और पासवर्ड को एक घंटे के लिए मेमोरी में रखता है। यदि फाइल के नाम संवेदनशील हैं, तो उस लाइब्रेरी को वेब इंटरफेस से दूर रखें और किसी अन्य स्तर पर एन्क्रिप्शन का उपयोग करें।

VPS पर मुझे Seafile या Nextcloud को कितनी RAM देनी चाहिए?

कुछ उपयोगकर्ताओं के लिए दोनों में से किसी के भी साथ 4 GB RAM और 2 cores से शुरुआत करें, फिर प्रीव्यू जनरेशन और सर्च के दौरान मेमोरी पर नज़र रखें। Seafile के अपने दस्तावेज़ 2 GB RAM और 2 GHz से ऊपर के 2 core CPU को न्यूनतम आवश्यकता बताते हैं। Nextcloud प्रति PHP प्रोसेस 512 MB RAM की सिफारिश करता है, जिसे डेटाबेस और कैश जोड़ने से पहले वर्कर काउंट से गुणा करना होता है। Syncthing 1 GB में आसानी से चल जाता है।