SSD Nodes Learn 🎉 VPS $5.50/மாதம் முதல்
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-13

Seafile vs Nextcloud: எது சிறந்தது? ஒப்பீடு

Seafile மற்றும் Nextcloud இடையே உள்ள வேறுபாடுகளை அறியுங்கள். கோப்பு ஒத்திசைவு வேகம், RAM பயன்பாடு, காப்புப்பிரதி மற்றும் குறியாக்க முறைகளை ஒப்பிட்டு உங்கள் தேவைக்கு ஏற்றதை தேர்வு

Seafile மற்றும் Nextcloud: சுருக்கமான பதில்

Seafile மற்றும் Nextcloud ஆகியவற்றுக்கு இடையேயான வேறுபாடு, ஒரு கோப்பு (file) server-ஐ அடைந்த பிறகு அது எவ்வாறு கையாளப்படுகிறது என்பதில் உள்ளது. Seafile ஒவ்வொரு கோப்பையும் சிறு தொகுதிகளாகப் (blocks) பிரித்து, Seafile-ஆல் மட்டுமே வாசிக்கக்கூடிய ஒரு object store-ல் சேமிக்கிறது; இதனால் sync வேகம் அதிகமாக இருக்கும், ஆனால் backup எடுக்கும் பணி இரண்டு நிலைகளைக் கொண்டதாக மாறும். Nextcloud உங்கள் கோப்பை நேரடியாக disk-ல் ஒரு கோப்பாகவே எழுதுகிறது. மேலும், இது calendar, contacts, documents மற்றும் share links போன்ற பல வசதிகளைக் கொண்ட ஒரு தளத்தின் ஒரு அங்கமாகவே sync-ஐக் கருதுகிறது. இந்த அடிப்படை வேறுபாட்டின் அடிப்படையில் முடிவெடுங்கள், ஏனெனில் மற்ற அனைத்து அம்சங்களும் இதிலிருந்தே உருவாகின்றன.

ஆகஸ்ட் 2026 நிலவரப்படி, Seafile 13.0 தொடரிலும், Nextcloud 34 தொடரிலும் உள்ளன. இவை இரண்டுமே முதிர்ச்சியடைந்த மென்பொருள்கள், மேலும் இவை தங்களின் சேமிப்பு மாதிரியை (storage model) மாற்றப்போவதில்லை.

Seafile கோப்புகளைச் சேமிக்கும் விதம்

Seafile ஒரு library-ஐ, git ஒரு repository-ஐ வடிவமைக்கும் அதே முறையில் வடிவமைக்கிறது. நிர்வாகி கையேடு (admin manual) அதன் உட்புற மாதிரியை Repo, Commit, FS மற்றும் Block என்று குறிப்பிடுகிறது; ஒரு repo என்பது library என்றும் அழைக்கப்படுகிறது. ஒவ்வொரு கோப்பும் content defined chunking (CDC - தரவிலிருந்தே block எல்லைகளைத் தீர்மானிக்கும் ஒரு algorithm) மூலம் மாறுபட்ட நீளம் கொண்ட தொகுதிகளாகப் பிரிக்கப்படுகிறது. கையேட்டின்படி, ஒரு தொகுதியின் சராசரி அளவு சுமார் 8 MB ஆகும். தொகுதிகள் அவற்றின் உள்ளடக்கத்தின் பெயரிலேயே அழைக்கப்படுகின்றன. எனவே, ஒரு பெரிய கோப்பின் இரண்டு பதிப்புகளில் மாறாத அனைத்து தொகுதிகளும் பகிரப்படுகின்றன; மேலும், இரண்டு வெவ்வேறு library-களில் உள்ள ஒரே மாதிரியான தொகுதிகளும் பகிரப்படுகின்றன.

Relational database-ல் library-கள் குறித்த மிகக் குறைந்த அளவிலான metadata மட்டுமே சேமிக்கப்படுகிறது. மற்ற அனைத்தும், அதாவது commits, directory objects மற்றும் blocks, data directory-க்கு அடியில் சேமிக்கப்படுகின்றன. 12 மற்றும் 13 series-ல் பயன்படுத்தப்படும் Docker அமைப்பில் இது /opt/seafile-data/seafile/seafile-data ஆகும். அங்கு ls கட்டளையை இயக்குவதால் பயனுள்ள தகவல் எதுவும் கிடைக்காது, ஏனெனில் அங்கு Invoices/2026/march.pdf-க்கு பதிலாக hash பெயர்களைக் கொண்ட directories மட்டுமே இருக்கும்.

Sync செயல்பாடும் இதே மாதிரியைப் பின்பற்றுகிறது. Client, server-இடம் என்ன மாற்றங்கள் நிகழ்ந்துள்ளன என்று கேட்கிறது, block hashes பட்டியலைப் பெறுகிறது, பின்னர் தன்னிடம் இல்லாத தொகுதிகளை மட்டும் பதிவிறக்கம் செய்கிறது. இதனால்தான் பெரிய library-களிலும் Seafile சிறப்பாகச் செயல்படுகிறது: மாற்றப்பட்ட தொகுதிகளுக்கு ஏற்பவே தரவு பரிமாற்றம் அமைகிறது, மாறாக அந்தத் தொகுதிகளைக் கொண்ட கோப்பின் முழு அளவிற்கு ஏற்ப அல்ல.

Nextcloud உங்கள் கோப்புகளை எவ்வாறு சேமிக்கிறது

Nextcloud கோப்புகளை நீங்கள் எதிர்பார்க்கும் வட்டில் (disk) சேமிக்கிறது. data/<username>/files/ பாதை, பயனர் இணைய இடைமுகத்தில் (web interface) காண்பதை அப்படியே பிரதிபலிக்கிறது. oc_filecache என்ற தரவுத்தள அட்டவணை, கோப்புகளின் அளவு, மாற்றப்பட்ட நேரம் மற்றும் etags ஆகியவற்றுடன் அதே கோப்பு அமைப்பை (tree) பிரதிபலிக்கிறது; வட்டை விட இந்த அட்டவணையையே Nextcloud நம்புகிறது.

Desktop client, HTTPS வழியாக WebDAV (web distributed authoring and versioning) மூலம் தொடர்பு கொள்கிறது. ஒவ்வொரு கோப்பிற்கும் குறைந்தது ஒரு கோரிக்கை (request) தேவைப்படுகிறது; இதனால்தான் Nextcloud ஒரு bulk upload API-ஐச் சேர்த்துள்ளது: பல சிறிய கோப்புகளைப் பதிவேற்றுவது மெதுவாக இருக்கும் என்று developer manual விளக்குகிறது, ஏனெனில் network bandwidth முழுமையாகப் பயன்படுத்தப்படுவதில்லை, எனவே சிறிய கோப்புகள் ஒன்றாக இணைக்கப்படுகின்றன. பெரிய கோப்புகள் chunking API வழியாகச் செல்கின்றன, மேலும் desktop client-ன் இயல்புநிலை chunk அளவு 5 MiB ஆகும் (OWNCLOUD_CHUNK_SIZE இயல்புநிலையாக 5242880 bytes-ஐக் கொண்டுள்ளது).

வட்டில் கோப்புகள் இருப்பதால், உங்களிடம் ஏற்கனவே உள்ள எந்தக் கருவியாலும் உங்கள் தரவைப் படிக்க முடியும். இதன் குறைபாடு என்னவென்றால், Nextcloud-க்குத் தெரியாமல் செய்யப்படும் மாற்றங்களை அது கண்டறியாது. தரவு அடைவுக்குள் (data directory) நேரடியாகக் கோப்புகளை நகலெடுத்தால், நீங்கள் scan செய்யும் வரை அவை இணைய இடைமுகத்தில் தெரியாது:

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

Admin manual, rescan செய்ய வேண்டிய இந்தச் சூழல்களைத் துல்லியமாகக் குறிப்பிடுகிறது: தரவு அடைவுக்குள் நேரடியாகக் கோப்புகளை நகலெடுத்த பிறகு, ஒரு migration-க்கு பிறகு, மற்றும் file cache முரண்பாடுகளை நீங்கள் ஆராயும்போது.

எது பெரிய library-ஐ வேகமாக sync செய்யும்?

Seafile, குறிப்பாக இரண்டு கடினமான சூழல்களில் சிறப்பாகச் செயல்படுகிறது: பல்லாயிரக்கணக்கான சிறிய கோப்புகள் மற்றும் பெரிய கோப்புகளில் மீண்டும் மீண்டும் செய்யப்படும் மாற்றங்கள். இதன் block-level deduplication நுட்பத்தினால், 4 GB disk image-ல் நடுப்பகுதியில் மாற்றம் ஏற்பட்டால், அந்த மாற்றமடைந்த blocks மட்டுமே upload செய்யப்படும். Nextcloud தனது bulk upload வசதி மூலம் சிறிய கோப்புகளுக்கான இடைவெளியைக் குறைத்தாலும், பெரிய கோப்புகளுக்கான இடைவெளியை அதனால் குறைக்க முடியாது; ஏனெனில் அது முழு கோப்பையும் ஒரு அலகாகவே (unit of transfer) கையாளுகிறது.

எனது வார்த்தையை மட்டும் நம்ப வேண்டாம், vendor-கள் வழங்கும் benchmark-களையும் நம்ப வேண்டாம். உங்களது பயன்பாட்டிற்கு இணையான ஒரு library-ஐ உருவாக்கி, நேரத்தைக் கணக்கிடுங்கள்:

mkdir -p ~/synctest && cd ~/synctest
for i in $(seq 1 20000); do head -c 4096 /dev/urandom > "file_$i.bin"; done
du -sh ~/synctest

அந்த directory-ஐ ஒவ்வொரு server-லும் உள்ள synced folder-ல் இட்டு, client எப்போது பணியை முடிக்கிறது என்பதைக் கவனியுங்கள். வேகத்திற்கு இணையாக நம்பகத்தன்மையும் முக்கியம். Seafile client முதலில் blocks-ஐ upload செய்து, இறுதியாகவே அவற்றை இணைக்கும் commit-ஐ எழுதுகிறது. எனவே, upload பாதியில் தடைபட்டாலும், library பாதி எழுதப்பட்ட நிலையில் இருக்காது; மாறாக முந்தைய commit நிலையிலேயே பாதுகாப்பாக இருக்கும்.

சிறிய VPS-ல் ஒவ்வொன்றிற்கும் தேவையானவை

Seafile ஆவணங்கள் "குறைந்தது 2G RAM மற்றும் 2-core CPU (> 2GHz)" தேவை என்று குறிப்பிடுகின்றன. Nextcloud ஆவணங்கள் ஒரு PHP process-க்குத் தேவையான நினைவகத்தை அடிப்படையாகக் கொண்டுள்ளன: ஒரு process-க்கு குறைந்தபட்சம் 128 MB மற்றும் பரிந்துரைக்கப்படுவது 512 MB. இதை உங்கள் worker எண்ணிக்கையுடன் பெருக்கி, அதனுடன் database, cache மற்றும் preview generation ஆகியவற்றிற்கான நினைவகத்தைச் சேர்க்க வேண்டும். ஒரு சிறிய குழுவிற்கு நான் பயன்படுத்தும் தொடக்க அளவீடுகள் கீழே கொடுக்கப்பட்டுள்ளன. இவை வெறும் தொடக்கப் புள்ளிகளே, இறுதி அளவீடுகள் அல்ல.

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. எனவே, நினைவகத் தேவையை வைத்து இரண்டில் ஒன்றை முடிவு செய்ய முடியாது. Syncthing 1 GB RAM மற்றும் 1 core-ல் இயங்குகிறது; இதைக் கருத்தில் கொள்வதே நியாயமானது. நினைவகத்தை விட, இவற்றின் செயல்பாட்டு நுணுக்கங்களே அதிகம் வேறுபடுகின்றன. Seafile 3 SQL database-களைப் பராமரிக்கிறது, Nextcloud 1 database-ஐப் பராமரிக்கிறது. Seafile-ன் இயல்புநிலை Docker deployment, நீங்கள் முதலில் தரவிறக்கம் செய்யும் கோப்புகளிலிருந்து server, 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 மற்றும் database கடவுச்சொற்கள், ஆரம்ப நிர்வாகி கணக்கு (admin account) மற்றும் JWT_PRIVATE_KEY ஆகியவற்றை அமைக்கவும். அந்த key-க்கு குறைந்தது 32 எழுத்துகள் கொண்ட ஒரு சீரற்ற சரம் (random string) தேவை என்று கையேடு கூறுகிறது. இது முதல் தொடக்கத்தின்போதே வாசிக்கப்படும், எனவே stack-ஐ இயக்குவதற்கு முன்பே அதை உருவாக்கவும்:

openssl rand -base64 40
docker compose up -d

முதல் தொடக்கமானது மூன்று database-களையும் நிர்வாகி பயனரையும் உருவாக்குகிறது. TLS மற்றும் reverse proxy உள்ளிட்ட Nextcloud-ன் சமமான முடிவுகள் Docker, TLS மற்றும் backups உடன் VPS-ல் Nextcloud-ஐ நிறுவுவதற்கான வழிகாட்டி-யில் விவரிக்கப்பட்டுள்ளன.

காப்புப்பிரதிகள் (backups) எவ்வாறு வேறுபடுகின்றன?

மக்கள் குறைவாக மதிப்பிடும் ஒரு அம்சம் இது, மேலும் இரண்டு தயாரிப்புகளும் இங்குதான் பெரிதும் வேறுபடுகின்றன.

Seafile-ஐப் பொறுத்தவரை, வரிசைமுறை கட்டாயமானது. கையேட்டின் விதியின்படி, முதலில் SQL-ஐயும், அதன் பிறகு தரவு அடைவையும் (data directory) காப்புப்பிரதி எடுக்க வேண்டும். அப்போதுதான் தரவுத்தளத்தில் உள்ள ஒவ்வொரு பதிவும் ஒரு சரியான பொருளைக் (object) குறிக்கும், இதனால் நூலகங்கள் (libraries) சிதையாது. இதை மாற்றினால், உங்கள் snapshot-ல் இல்லாத ஒரு தொகுதியை (block) தரவுத்தள வரிசை குறிக்க நேரிடும்.

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 image-ல் mysql கட்டளைத் தொடர் நீக்கப்பட்டுவிட்டது (deprecated). ஒரு கோப்பிற்கு redirect செய்யும்போது docker exec-லிருந்து -t flag-ஐ நீக்கவும், ஏனெனில் TTY வரியின் முடிவுகளை மாற்றி எழுதி dump-ஐப் பாதிக்கும்.

இரண்டு பகுதிகளும் தனித்தனியாகப் பிடிக்கப்படுவதால், அவை மாறுபடலாம். எந்தவொரு மீட்டெடுப்பிற்குப் பிறகும், அதை நம்புவதற்கு முன்பு சேமிப்பகத்தைச் சரிபார்க்கவும்:

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 கோப்புறை, தரவு கோப்புறை, ஏதேனும் custom apps மற்றும் உங்கள் theme, அத்துடன் அந்த dump ஆகியவற்றை வைத்திருக்கவும். இரண்டு பகுதிகளையும் ஒரே தருணத்திலிருந்து மீட்டெடுக்கவும். தரவு அடைவு தரவுத்தளத்தை விடப் புதியதாக இருந்தால், file cache-க்குத் தெரியாத கோப்புகளைப் பயனர்கள் காண்பார்கள், அதை occ files:scan --all சரிசெய்யும். தரவுத்தளம் புதியதாக இருந்தால், cache வரிசைகள் இல்லாத கோப்புகளைக் குறிக்கும், அப்போது occ files:cleanup சேமிப்பக அட்டவணையில் பொருந்தாத cache உள்ளீடுகளை நீக்கும்.

எப்படியிருப்பினும், பல சிறிய கோப்புகளைக் கையாளக்கூடிய மற்றும் வரலாற்றைத் தக்கவைக்கக்கூடிய ஒரு காப்புப்பிரதி நிரல் உங்களுக்குத் தேவை, அதைத்தான் restic மற்றும் BorgBackup வெவ்வேறு விதமாகச் செய்கின்றன.

Desktop மற்றும் mobile-க்கான Clients

Seafile இரண்டு desktop மென்பொருள்களை வழங்குகிறது. Syncing client நீங்கள் தேர்ந்தெடுக்கும் libraries-ன் local நகலை வைத்திருக்கும். Drive client (SeaDrive) உங்கள் libraries-ஐ ஒரு virtual drive-ஆக mount செய்து, தேவைப்படும்போது மட்டும் தரவிறக்கம் செய்யும்: Windows-ல் இது Microsoft-ன் cloud files API-ஐப் பயன்படுத்துகிறது, macOS-ல் பதிப்பு 3.0 ஒரு Finder extension-ஆக உள்ளது, மேலும் Linux-ல் 3.0.12 பதிப்பிலிருந்து இது AppImage-ஆக வழங்கப்பட்டு ~/SeaDrive-ல் mount செய்யப்படுகிறது. Encrypted libraries மூன்று desktop தளங்களிலும் வேலை செய்யும். Mobile apps கோப்புகளை அணுகுவதற்காக மட்டுமே உருவாக்கப்பட்டுள்ளன, அந்த வேலையை மட்டுமே அவை செய்கின்றன.

Nextcloud-ன் desktop client-ம் virtual files வசதியை வழங்குகிறது, மேலும் அதன் mobile apps முழு தளத்தையும் உள்ளடக்கியுள்ளன, எனவே கோப்புகளை அணுகுவதோடு calendar, contacts, Talk மற்றும் notes ஆகியவையும் கிடைக்கின்றன. உங்கள் பயனர்கள் mobile-ஐ அதிகம் பயன்படுத்துபவர்களாக இருந்து, கோப்புகளைத் தாண்டி கூடுதல் வசதிகளை விரும்பினால், இது அன்றாட பயன்பாட்டில் ஒரு பெரிய மாற்றத்தை ஏற்படுத்தும்.

Seafile-ல் ஒரு முக்கியமான விஷயத்திற்குத் திட்டமிடல் அவசியம்: library என்பது sharing, sync, permissions மற்றும் encryption ஆகியவற்றின் அடிப்படை அலகாகும். 500 GB தரவை ஒரே library-ல் பதிவேற்றும் முன் உங்கள் library அமைப்பை முடிவு செய்யுங்கள், ஏனெனில் ஒரு library-லிருந்து மற்றொன்றுக்கு கோப்புகளை நகர்த்துவது என்பது rename செய்வதல்ல, அது ஒரு copy மற்றும் delete செயல்முறையாகும். எனவே, கோப்பின் வரலாறு (file history) அதனுடன் மாறாது.

Encryption: ஒவ்வொன்றும் எதைப் பாதுகாக்கிறது

Seafile-ன் encrypted libraries client-side முறையில் செயல்படுகின்றன. கடவுச்சொல் (password) ஒருபோதும் server-ல் சேமிக்கப்படுவதில்லை. கடவுச்சொல் மற்றும் library id ஆகியவற்றிலிருந்து பெறப்பட்ட ஒரு magic token, library-யுடன் சேமிக்கப்படும்; இதன் மூலம் sync செய்வதற்கு முன்பாக client கடவுச்சொல்லைச் சரிபார்க்க முடியும். கோப்புக்கான திறவுகோல் (file key), உங்கள் கடவுச்சொல்லிலிருந்து பெறப்பட்ட key மற்றும் IV (initialisation vector) ஆகியவற்றைப் பயன்படுத்தி AES 256/CBC முறையில் குறியாக்கம் செய்யப்படுகிறது; கோப்பின் தரவு அந்த file key-ஐக் கொண்டு குறியாக்கம் செய்யப்படுகிறது.

ஆவணப்படுத்தப்பட்ட வரம்புகளைப் படிக்கவும், ஏனெனில் பலர் அவற்றைக் கவனிப்பதில்லை. ஒரு encrypted library கோப்பின் உள்ளடக்கத்தை மட்டுமே குறியாக்கம் செய்கிறது. கோப்பு மற்றும் கோப்புறைகளின் பெயர்கள் (folder and file names), கோப்பின் அளவுகள் அல்லது திருத்த வரலாறு (edit history) ஆகியவை குறியாக்கம் செய்யப்படுவதில்லை. ஒரு web browser மூலம் encrypted library-ஐப் பார்ப்பது end-to-end பாதுகாப்பு அல்ல: நீங்கள் கடவுச்சொல்லை உள்ளிடும்போது, server அதைப் பயன்படுத்தி file key-ஐ decrypt செய்கிறது, மேலும் அந்த கடவுச்சொல்லை ஒரு மணி நேரம் நினைவகத்தில் (memory) வைத்திருக்கும். ஒரு encrypted library தரவின் ஒருமைப்பாட்டை (integrity) உறுதிப்படுத்தாது என்று கையேடு தெளிவாகக் கூறுகிறது, ஏனெனில் server admin கோப்பின் உள்ளடக்கத்தின் ஒரு பகுதியை மாற்றினால், அதை client-ஆல் கண்டறிய முடியாது.

Nextcloud-ல் குழப்பத்தை ஏற்படுத்தும் வகையில் ஒரே மாதிரியான பெயர்களைக் கொண்ட இரண்டு அம்சங்கள் உள்ளன. Server side encryption என்பது கோப்புகளை அவை சேமிக்கப்படும்போது (at rest) குறியாக்கம் செய்கிறது, ஆனால் திறவுகோல்களை அதே server-லேயே வைத்திருக்கிறது. எனவே, இது external storage-ல் உள்ள தரவைப் பாதுகாப்பதில் பயனுள்ளதாக இருக்குமே தவிர, server-ல் root access கொண்ட ஒருவரிடமிருந்து உங்களைப் பாதுகாப்பதில் பெரிய அளவில் உதவாது. End to end encryption app, client-ல் தேர்ந்தெடுக்கப்பட்ட கோப்புறைகளை குறியாக்கம் செய்கிறது. வடிவமைப்பின்படி, server-ஆல் அவற்றைப் படிக்க முடியாது; எனவே web interface, server side search மற்றும் previews ஆகியவற்றால் அந்த கோப்புறைகளுக்குள் உள்ளவற்றைப் பார்க்க முடியாது.

இந்த இரண்டு தயாரிப்புகளின் குறியாக்கமும், encrypted backup-க்கு மாற்றாகாது. backup-ஐத் தனியாகக் குறியாக்கம் செய்யவும்.

Calendar, contacts, office மற்றும் app platform

இந்த அம்சம் முழுமையடையவில்லை. Nextcloud தனது core-ல் CalDAV (WebDAV வழியாக calendar) மற்றும் CardDAV (WebDAV வழியாக contacts) ஆகியவற்றை வழங்குகிறது. ஆவணங்களுக்காக Collabora அல்லது OnlyOffice-ஐ ஒருங்கிணைக்கிறது, மேலும் மற்ற அனைத்து தேவைகளுக்கும் ஒரு app store-ஐக் கொண்டுள்ளது. Seafile 13, கூட்டு ஆவணங்கள் மற்றும் wiki பக்கங்களுக்காக SeaDoc-ஐ வழங்குகிறது, ஆனால் அதோடு நின்றுவிடுகிறது. இதில் calendar அல்லது address book வசதி இல்லை.

இந்த platform-ஐப் பயன்படுத்துவதற்கு ஒரு விலை உள்ளது, அதுவே upgrades ஆகும். நீங்கள் நிறுவும் ஒவ்வொரு app-ம் Nextcloud upgrade-ஐத் தடுக்கலாம் அல்லது upgrade-க்குப் பிறகு சரியாகச் செயல்படாமல் போகலாம். எனவே, பயனர்கள் எவ்வளவு அதிகமாகச் சார்ந்திருக்கிறார்களோ, அவ்வளவு கவனமாக உங்கள் upgrade window-ஐத் திட்டமிட வேண்டும். Seafile குறைவான பணிகளையே செய்வதால், அதில் பாதிப்புகள் ஏற்பட வாய்ப்பு குறைவு. Seafile Professional பதிப்பில் மட்டுமே ஆவணங்களுக்குள் full text search மற்றும் folder level permissions போன்ற வசதிகள் கட்டண உரிமத்தின் கீழ் கிடைக்கின்றன என்பதை கவனத்தில் கொள்க. எனவே, நீங்கள் எதிர்பார்க்கும் வசதி நீங்கள் பயன்படுத்தத் திட்டமிட்டுள்ள பதிப்பில் உள்ளதா என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.

ஒவ்வொன்றும் தோல்வியடையும் விதம்

Database மற்றும் object store ஆகியவற்றுக்கு இடையே ஒத்திசைவு குறையும்போது Seafile தோல்வியடையும். ஒரு library திறக்கப்படாமல் போவது அல்லது கோப்புகள் மறைவது போன்ற சிக்கல்களை நீங்கள் காண்பீர்கள்; அப்போது seaf-fsck.sh விடுபட்ட block-களைக் காட்டும். கைமுறையாகச் சரிசெய்ய file tree எதுவும் இல்லை என்பதால், database dump மற்றும் object store ஆகியவற்றைச் சரியான வரிசையில் மீட்டெடுப்பதே தீர்வாகும். இந்த மீட்பு முறையை ஒரு spare VPS-ல் ஒருமுறை சோதித்துப் பாருங்கள்; ஏனெனில், இதுவரை மீட்டெடுக்கப்படாத backup என்பது வெறும் யூகமே.

File cache மற்றும் disk ஆகியவற்றுக்கு இடையே முரண்பாடு ஏற்படும்போது Nextcloud தோல்வியடையும்; Nextcloud-க்குத் தெரியாமல் அதன் data directory-ல் ஏதேனும் மாற்றங்கள் செய்யப்படுவதே இதற்கு முக்கியக் காரணம். Disk-ல் உள்ள ஒரு கோப்பு web interface-ல் காட்டப்படாமல் இருப்பது அல்லது folder அளவு தவறாக இருப்பது போன்ற சிக்கல்கள் ஏற்படும்போது, occ files:scan மூலம் அதைச் சரிசெய்யலாம். இதன் மற்ற இரண்டு பலவீனங்கள்: அதிக எண்ணிக்கையிலான சிறிய கோப்புகளைக் கையாளும்போது ஏற்படும் protocol வேகம் (இதை CPU-வால் சரிசெய்ய முடியாது) மற்றும் PHP memory பயன்பாடு. பெரிய படங்கள் மற்றும் வீடியோக்களுக்கான previews உருவாக்கப்படும்போது memory பயன்பாடு திடீரென அதிகரிக்கும். எனவே, ஒவ்வொரு process-க்கும் 512 MB memory ஒதுக்குங்கள்; மேலும், previews-ஐ request நேரங்களில் உருவாக்காமல், scheduled job மூலம் உருவாக்குங்கள்.

இரண்டுமே இல்லை: கோப்பு ஒத்திசைவு (file sync) மட்டுமே தேவை என்றால் Syncthing

உங்களுக்குத் தேவை இரண்டு கணினிகளுக்கு இடையே ஒரு கோப்புறையை (folder) பிரதிபலிப்பது (mirror) மட்டுமே என்றால், இந்த இரண்டு மென்பொருட்களும் உங்களுக்குத் தேவையானதை விட அதிகப்படியானவை. Syncthing-க்கு சர்வர் அல்லது கணக்குகள் (accounts) தேவையில்லை. ஒவ்வொரு சாதனமும் ஒரு peer ஆகும்; உங்கள் மடிக்கணினி உறக்க நிலைக்குச் செல்லும்போது, எப்போதும் இயங்கிக்கொண்டிருக்கும் ஒரு VPS-ஐ நீங்கள் peer-ஆகப் பயன்படுத்தலாம். Syncthing 2 தற்போதைய பதிப்பாகும், இதன் தொகுப்புகள் (packages) அந்தத் திட்டத்தின் சொந்த repository-லிருந்து கிடைக்கின்றன:

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-ஆக இயக்காமல், ஒரு சாதாரண பயனராக இயக்கவும். அப்போதுதான் அது உருவாக்கும் கோப்புகள் சரியான ownership-ஐக் கொண்டிருக்கும்:

sudo systemctl enable --now syncthing@youruser
systemctl status syncthing@youruser

இதன் இணைய இடைமுகம் (web interface) இயல்பாகவே 127.0.0.1:8384-ல் இயங்கும். எனவே, இது இணையத்திலிருந்து நேரடியாக அணுக முடியாது; இதுவே சரியான இயல்புநிலை அமைப்பாகும். உங்கள் மடிக்கணினியிலிருந்து SSH tunnel மூலம் இதை அணுகவும்:

ssh -L 8384:127.0.0.1:8384 youruser@your-server

பிறகு மடிக்கணினியில் http://127.0.0.1:8384-ஐத் திறக்கவும். Syncthing, TCP மற்றும் QUIC வழியாக 22000 போர்ட்டைப் பயன்படுத்துகிறது. உள்ளூர் கண்டுபிடிப்புக்கு (local discovery) UDP 21027 பயன்படுத்தப்படுகிறது, இது இணையம் வழியாகச் செயல்படாது. ஒரு VPS-ல், 22000 போர்ட்டைத் திறந்து வைத்துவிட்டு, இணைய இடைமுகத்தை மூடி வைக்கவும்:

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

இதில் நீங்கள் இழப்பது சர்வர் சார்ந்த அம்சங்களைத்தான்: Syncthing பயன்படுத்தாதவர்களுக்கு கோப்புகளைப் பகிரும் இணைப்புகள் (share links) இருக்காது, இணைய வழி கோப்பு உலாவி (web file browser) இருக்காது, பயனர் கணக்குகள் இருக்காது, மேலும் கோப்பு பதிப்பு மேலாண்மையை (file versioning) ஒவ்வொரு கோப்புறைக்கும் நீங்கள் செயல்படுத்தாத வரை, சர்வர் பக்கத்தில் குப்பைத் தொட்டி (trash) வசதி இருக்காது. இதில் பொதுவாக ஏற்படும் ஆச்சரியம் என்னவென்றால், conflict கோப்புகள் உருவாவதுதான். இரண்டு சாதனங்கள் ஒன்றுடன் ஒன்று இணைய முடியாத நிலையில் ஒரே கோப்பைத் திருத்தினால், notes.sync-conflict-20260806-142233-ABCD1EF.md போன்ற பெயரில் ஒரு நகல் கோப்பு உருவாகும். இதைப் பற்றி எந்த எச்சரிக்கையும் வராது, எனவே அவ்வப்போது sync-conflict என்று தேடிப் பார்க்கவும்.

உங்களுக்குத் தேவை ஒத்திசைக்கப்பட்ட கோப்புறை அல்ல, மாறாக பயன்பாடுகள் தரவுகளை எழுதும் ஒரு bucket என்றால், அதற்கு வேறு கருவியைப் பயன்படுத்த வேண்டும்: self-hosted S3 compatible object storage என்பதைப் பார்க்கவும். இன்னும் விரிவான தகவல்களுக்கு, the roundup of self-hosted Dropbox alternatives இந்த ஒப்பீட்டில் விடுபட்ட பிற மாற்றுகளைப் பற்றி விளக்குகிறது.

முடிவெடுக்கும் விதி

  1. கோப்புகளை ஒத்திசைப்பதே (sync) உங்கள் பணி என்றால் Seafile-ஐத் தேர்ந்தெடுக்கவும்: அதிக எண்ணிக்கையிலான கோப்புகள், பெரிய கோப்புகள், பல சாதனங்கள் எனப் பயன்படுத்தலாம். ஆனால், Seafile-ஆல் மட்டுமே படிக்கக்கூடிய தரவு சேமிப்பகத்தை நீங்கள் ஏற்க வேண்டும்.
  2. ஒரு தளமாக (platform) பயன்படுத்த விரும்பினால் Nextcloud-ஐத் தேர்ந்தெடுக்கவும்: இதில் காலண்டர்கள், தொடர்புகள், ஆவணங்கள் மற்றும் பகிரும் இணைப்புகள் (share links) உள்ளன. கோப்புகள் வட்டில் சாதாரண வடிவில் இருப்பதால், எந்தவொரு backup கருவியாலும் அவற்றை வாசிக்க முடியும்.
  3. ஒரு கோப்புறையை அப்படியே பிரதிபலிப்பதே (mirrored folder) உங்கள் பணி என்றால் Syncthing-ஐத் தேர்ந்தெடுக்கவும்.

இப்போதே கவனமாகத் தேர்ந்தெடுங்கள், ஏனெனில் Seafile மற்றும் Nextcloud-க்கு இடையே மாறுவதுதான் உண்மையான சிக்கல் (lock-in). இதற்கு எந்த மாற்றும் கருவியும் (converter) இல்லை. நீங்கள் அனைத்து கோப்புகளையும் client-க்கு ஒத்திசைத்து, பின் மற்றொரு server-க்கு பதிவேற்ற வேண்டும். இதில் அதிக அலைவரிசையும் (bandwidth) நேரமும் செலவாகும்; மேலும் பழைய பதிப்பு வரலாறு (version history) மற்றும் பகிரும் இணைப்புகள் அனைத்தும் இழக்கப்படும். அடுத்த மூன்று ஆண்டுகளுக்குத் தேவையானதை இப்போதே சரியாகத் திட்டமிடுவது, இரண்டாம் ஆண்டில் மாற்றுவதை விடக் குறைந்த செலவாகும்.

FAQ

பெரிய libraries-ஐ sync செய்வதற்கு Nextcloud-ஐ விட Seafile வேகமானதா?

ஆம், பொதுவாகப் பாதிப்பை ஏற்படுத்தும் இரண்டு சூழல்களில் இது உண்மையாகிறது, அதற்கான காரணத்தை நீங்கள் சரிபார்க்கலாம். Seafile கோப்புகளை சராசரியாக 8 MB அளவுள்ள தொகுதிகளாகப் (blocks) பிரித்து, மாற்றப்பட்ட தொகுதிகளை மட்டுமே பரிமாற்றம் செய்கிறது; எனவே ஒரு பெரிய கோப்பில் சிறிய மாற்றம் செய்தாலும், சில தொகுதிகள் மட்டுமே பரிமாறப்படும். Nextcloud-ன் பரிமாற்ற அலகு முழு கோப்பாக இருப்பதால், அதே மாற்றத்திற்கு முழு கோப்பையும் மீண்டும் பதிவேற்ற வேண்டியிருக்கும். மேலும், பல சிறிய கோப்புகள் ஒவ்வொன்றிற்கும் குறைந்தபட்சம் ஒரு WebDAV கோரிக்கை தேவைப்படும், இதனால்தான் அதன் bulk upload API சிறிய கோப்புகளை ஒன்றாக இணைக்கிறது. உங்கள் CPU, disk மற்றும் network இணைப்பு ஆகியவை protocol-ஐப் போலவே முக்கியம் என்பதால், முடிவெடுப்பதற்கு முன் உங்கள் சொந்த VPS-ல் இரண்டையும் சோதித்துப் பாருங்கள்.

data directory-ல் rsync இயக்குவதன் மூலம் Seafile-ஐ backup எடுக்க முடியுமா?

databases-உடன் சேர்த்து, ஆவணப்படுத்தப்பட்ட வரிசையில் மட்டுமே எடுக்க முடியும். Seafile கையேட்டின்படி, முதலில் SQL-ஐயும், அதன் பிறகு data directory-யையும் backup எடுக்க வேண்டும்; அப்போதுதான் ஒவ்வொரு database பதிவும் backup-ல் உள்ள ஒரு பொருளைக் குறிக்கும். rsync -az /opt/seafile-data/seafile /backup/data/ கட்டளை conf, seafile-data மற்றும் seahub-data ஆகியவற்றை நகலெடுக்கும், ஆனால் இது மட்டும் முழுமையாக மீட்டமைக்கக்கூடியது அல்ல. ஏனெனில் object store-ல் படிக்கக்கூடிய கோப்பு அமைப்பு (file tree) இருக்காது, database மட்டுமே அதன் குறியீடாக (index) செயல்படுகிறது. இரண்டையும் மீட்டெடுத்த பிறகு, seaf-fsck.sh கட்டளையை இயக்கி, அதன் வெளியீட்டைச் சரிபார்த்த பின்னரே முடிவை நம்புங்கள்.

எனக்கு file sync மட்டும் தேவைப்பட்டால் Nextcloud தேவையா?

இல்லை. Nextcloud என்பது ஒரு தளம் (platform). நீங்கள் பயன்படுத்தினாலும் இல்லாவிட்டாலும், அதன் calendar, contacts மற்றும் app store ஆகியவை நினைவகத்தை (memory) எடுத்துக்கொள்ளும் மற்றும் மேம்படுத்தும் பராமரிப்பு தேவைப்படும். வெறும் file sync-க்கு, Seafile வேகமான protocol கொண்ட இலகுவான தயாரிப்பாகும். Syncthing-க்கு server side தேவையில்லை என்பதால் அது இன்னும் இலகுவானது. கூடுதல் பயன்பாடுகள் தேவைப்படும்போது மட்டும் Nextcloud-ஐத் தேர்வு செய்யுங்கள், அதை இயல்பான தேர்வாகக் கருத வேண்டாம்.

Seafile-ல் encrypt செய்யப்பட்ட library எனது கோப்புப் பெயர்களை மறைக்குமா?

இல்லை. Encrypted library கோப்பின் உள்ளடக்கத்தை client-லேயே encrypt செய்கிறது, கடவுச்சொல் server-க்குச் செல்வதில்லை. ஆனால், folder பெயர்கள், கோப்புப் பெயர்கள், கோப்பு அளவுகள் மற்றும் திருத்த வரலாறு (edit history) அனைத்தும் server-ல் தெரியும் நிலையிலேயே இருக்கும். Encrypted library-ஐ web interface-ல் திறக்கும்போது கடவுச்சொல் server-க்கு அனுப்பப்படும்; அது file key-ஐ decrypt செய்து, கடவுச்சொல்லை ஒரு மணி நேரம் நினைவகத்தில் வைத்திருக்கும். கோப்புப் பெயர்களே ரகசியமானவை என்றால், அந்த library-ஐ web interface-ல் பயன்படுத்த வேண்டாம், வேறொரு அடுக்கில் (layer) encrypt செய்யுங்கள்.

VPS-ல் Seafile அல்லது Nextcloud-க்கு எவ்வளவு RAM ஒதுக்க வேண்டும்?

குறைந்த எண்ணிக்கையிலான பயனர்களுக்கு, இரண்டிற்கும் 4 GB RAM மற்றும் 2 cores-உடன் தொடங்குங்கள். பிறகு preview உருவாக்கம் மற்றும் தேடலின் போது நினைவகப் பயன்பாட்டைக் கவனியுங்கள். Seafile ஆவணங்கள் குறைந்தபட்சம் 2 GB RAM மற்றும் 2 GHz-க்கு மேல் வேகம் கொண்ட 2 core CPU-ஐ பரிந்துரைக்கின்றன. Nextcloud ஒரு PHP process-க்கு 512 MB RAM-ஐப் பரிந்துரைக்கிறது; இதை worker எண்ணிக்கையுடன் பெருக்கி, அதனுடன் database மற்றும் cache நினைவகத்தைச் சேர்க்க வேண்டும். Syncthing 1 GB RAM-ல் சிறப்பாக இயங்கும்.