Mbadala Bora wa Dropbox wa Kujihudumia, Ukilinganisha
Linganisha Nextcloud, Seafile, Syncthing na object storage kwa topology ya sync, gharama halisi kwenye VPS ndogo, na sababu sync si backup.
Ni mbadala gani ya Dropbox ya kujihudumia unayopaswa kutumia?
Mibadala minne ya Dropbox ya kujihudumia inafaa kuzingatiwa: Nextcloud, Seafile, Syncthing, na object storage yenye client juu yake. Haiwezi kubadilishana moja kwa moja. Nextcloud inafaa kwa nyumba au timu ndogo ambayo watu wengine wanahitaji kupokea files. Seafile inafaa kwa mtu au timu inayosawazisha idadi kubwa sana ya files ndogo, ambapo kasi ya sync ni muhimu kuliko jinsi data inavyoonekana kwenye disk. Syncthing inafaa kwa mtu mmoja anayesawazisha vifaa vyake mwenyewe, ambapo hakuna mtu wa nje anayehitaji link. Object storage inafaa kwa archive: bytes za gharama nafuu ambazo hufungui mara kwa mara.
Chagua kulingana na jinsi sync inavyofanya kazi kabla ya kulinganisha features. Orodha za features zinafanana. Topology, yaani mashine inayohifadhi copy ambayo kila mashine nyingine inakubaliana nayo, ndiyo huamua kama bado utaridhika baada ya miezi sita.
Topolojia ya usawazishaji: seva kuu ya kumbukumbu, au peers bila seva
Miundo miwili inazingatiwa, na sehemu kubwa ya maelezo yanayofuata inategemea chaguo utakalochagua.
Seva kuu ya kumbukumbu. Nextcloud, Seafile na object storage hufanya kazi kwa njia hii. Mashine moja, kwa kawaida VPS (virtual private server), huhifadhi nakala yenye mamlaka. Kila kifaa huwasiliana na mashine hiyo. Laptop yako inaweza kuwa imezimwa kwa mwezi mmoja, kisha ikiwashwa husawazisha mabadiliko yenyewe. Simu yenye nafasi ya 6 GB inaweza kuhifadhi sehemu ya data, huku seva ikihifadhi kila kitu. Browser inaweza kufikia faili, na hilo ndilo linalowezesha share links.
Peers bila seva. Syncthing hufanya kazi kwa njia hii. Vifaa hutafutana na kubadilishana orodha za faili moja kwa moja kupitia connection iliyosimbwa kwa njia fiche. Hakuna nakala yenye mamlaka: faili huwa kwenye vifaa vinavyoihifadhi tu, na hakuna mahali pengine. Vifaa viwili lazima viwe online kwa wakati mmoja ili mabadiliko yapitishwe kati yake. Hakuna URL ya kumpa mtu, kwa sababu hakuna mashine inayohudumia ukurasa.
Madhara manne yanafuata, na mara nyingi watu huyatambua baadaye.
- Kumtumia faili mtu ambaye hatasakinisha software kunahitaji seva kuu ya kumbukumbu. Link ni URL, na URL inahitaji process inayosikiliza kwenye port.
- Kufikia faili zako kutoka kwenye mashine usiyoidhibiti, kwa mfano laptop ya kazini, kunahitaji seva kuu ya kumbukumbu.
- Kifaa kilichokuwa kimezimwa kwa wiki kadhaa husawazisha mabadiliko kutoka kwenye seva kinapoamka. Katika usanidi wa peers, husawazisha mabadiliko tu wakati kifaa kingine kinachoshikilia data hiyo pia kiko online. Ndiyo maana watumiaji wengi wa Syncthing huendesha instance moja kwenye VPS kama peer inayopatikana kila wakati.
- Matumizi ya storage huhesabiwa kwa njia tofauti. Seva kuu ya kumbukumbu huhifadhi nakala moja kamili, pamoja na data ambayo kila kifaa huhifadhi locally. Peers wanne wanaoshiriki folder moja huhifadhi nakala nne kamili, kwa sababu kila peer huhifadhi folder nzima.
Nextcloud: watumiaji, vikundi na viungo vya umma
Nextcloud ni programu ya wavuti ya PHP. Huhifadhi faili zako kama faili za kawaida ndani ya saraka ya data na kuzifuatilia katika database. Unaweza kushiriki folda na mtumiaji, na kikundi, au kupitia kiungo cha umma chenye password na tarehe ya kuisha. Historia ya matoleo huwashwa kwa chaguo-msingi, na faili zilizofutwa huenda kwanza kwenye trash bin. Clients za desktop zinapatikana kwa Linux, macOS na Windows, na apps za iOS na Android ni rasmi. Ikiwa sababu yako ya kuacha Dropbox ni kwamba watu wengine wanahitaji kupokea faili zako, hili ndilo jibu la moja kwa moja.
Gharama yake ni vipengele vingi vinavyotegemeana. Usakinishaji wa kawaida huendesha web server, PHP-FPM (msimamizi wa michakato ya PHP), database kama MariaDB au PostgreSQL, na Redis kwa ajili ya file locking. Kazi ya nyuma huendeshwa kila baada ya dakika tano kupitia cron au systemd timer. Kwenye VPS yenye 1 GB itaanza kufanya kazi, kisha upload kubwa au command ndefu ya matengenezo ya occ itakutana na out-of-memory killer. Chukulia 2 GB kuwa kiwango cha chini kwa watumiaji wachache, na tarajia kuhitaji 4 GB utakapoanzisha apps zaidi. Gharama nyingine ni upgrades: apps za app store hutengenezwa kwa core release maalum, kwa hiyo hakikisha apps unazotegemea zinaunga mkono major version inayofuata kabla ya kufanya upgrade.
Nextcloud huwa polepole wakati account moja ina mamia ya maelfu ya faili ndogo, kwa sababu kila faili ni row katika file cache table na ni faili halisi kwenye disk, huku desktop client ikizipitia moja baada ya nyingine. Kwa matumizi ya nyumbani, hali hii haitokei. Sizing, TLS (transport layer security) na backups zimeelezwa katika usakinishaji wa Nextcloud unaotumia Docker wenye TLS na backups, ambako ndipo pa kwenda baada ya kuamua.
Onyo moja kuhusu upeo. Nextcloud inaweza pia kuendesha calendar, contacts, notes na photo library yako, na kila app unayowasha huongeza kazi za nyuma pamoja na kipengele kingine kinachoweza kuzuia upgrade. Ikiwa photos ndilo tatizo halisi, tool maalum huzishughulikia vizuri zaidi: tazama Immich kama mbadala wa Google Photos unaojihifadhi mwenyewe. Ikiwa documents na wikis ndizo tatizo halisi, angalia mbadala za Notion zinazojihifadhi mwenyewe badala ya kuongeza apps nyingi kwenye file server yako.
Seafile: imeundwa kwa ajili ya idadi kubwa sana ya faili ndogo
Seafile hugawanya kila faili kuwa blocks na kuzihifadhi katika object store ya ndani inayotumia content hash kama anwani, kwa wazo lilelile ambalo git hutumia kwa objects zake. Kitengo cha kusawazisha na kushiriki ni library, badala ya mpangilio wa folders. Kwa sababu client hupakia blocks na commit moja, badala ya kutuma request moja kwa kila faili, kusawazisha directory yenye faili ndogo 100,000 hukamilika kwa kasi kubwa zaidi kuliko itifaki ya faili moja moja. Blocks zinazofanana huhifadhiwa mara moja, hivyo nakala ya pili ya faili kubwa hugharimu nafasi ndogo sana.
Hasara ni kwamba faili zako kwenye seva hazibaki kuwa faili za kawaida. Ukifungua storage directory, utakuta object files zenye majina ya hexadecimal. Kutoa data kunahitaji Seafile client au tools za Seafile za export na fsck. Backups bado hufanya kazi, kwa sababu objects hizo ni files za kawaida, lakini huwezi kurejesha spreadsheet moja kwa kutumia cp. Amua sasa ikiwa hilo linakubalika, kwa sababu hiyo ndiyo sifa ambayo watu hujuta baadaye.
Seafile hutoa community edition na paid professional edition, na mgawanyo wa vipengele kati ya hizo hubadilika kutoka release moja hadi nyingine. Kwa hiyo, soma terms za sasa kwenye tovuti yao kabla ya kupanga team ukitegemea feature fulani. Official desktop na mobile clients zinapatikana. Encrypted libraries husimbwa kwenye client, hivyo seva huhifadhi ciphertext ambayo haiwezi kusoma. Ukipoteza passphrase, library hiyo haisomeki, hata kwako. Kufungua encrypted library kwenye browser kunamaanisha kuipa web session passphrase hiyo, kwa hiyo kiwango cha juu cha uhakikisho huo kinapatikana kwenye desktop na mobile clients.
Gharama ya rasilimali iko karibu na Nextcloud. Unaendesha database, memory cache na application processes mbili, kwa hiyo 2 GB ndiyo kiwango cha chini kinachofaa tena.
Syncthing: hakuna cha kuingia
Syncthing ni binary moja ya Go. Hufuatilia folda, huwatafuta peers wake kupitia discovery server au relay, na husawazisha moja kwa moja kati ya vifaa. Hakuna akaunti wala ukurasa wa kuingia kwa watu unaosawazisha nao. Unaunganisha vifaa viwili kwa kutumia ID na kukubali folda kila upande. Ndiyo huduma inayohitaji kazi ndogo zaidi kuendesha hapa, kwa sababu ina vipengele vichache vya kuendesha.
Unachokosa ni kipengele kizima cha kushiriki. Kifungu chake kinasema Device pairing only, no links. Huwezi kumpa mteja, mhasibu au ndugu link. Mobile ni pengo lingine: Android app, no official iOS. FAQ rasmi ya mradi inaeleza wazi: "There are no plans by the current Syncthing team to officially support iOS in the foreseeable future", kwa sababu iOS inaweka vikwazo vikubwa kwa uchakataji wa nyuma, hali inayofanya usawazishaji unaotegemeka kuwa mgumu. Watumiaji wa iOS hubaki na programu za third-party.
Matumizi ya rasilimali ni madogo, lakini kuna jambo moja muhimu kujua. Syncthing huhifadhi index entry kwa kila faili inayosawazishwa, kwa hiyo matumizi ya memory na muda wa scan ya kwanza huongezeka kulingana na idadi ya faili, si jumla ya ukubwa wake. Kuhash folder kubwa kwa mara ya kwanza kutaendelea kutumia CPU kwa muda, kisha matumizi yatatulia. Kwenye mpango mdogo zaidi wa VPS, hufanya kazi vizuri.
Conflicts hushughulikiwa kwa kuhifadhi pande zote mbili. Vifaa viwili vikibadilisha faili moja wakati haviwezi kuwasiliana, Syncthing hubadilisha jina la copy moja na kuihifadhi kando ya nyingine, hivyo utapata faili kama notes.sync-conflict-20260802-141530-K7MB3QT.md. Hakuna kinachopotea. Pia hakuna kinachounganishwa kiotomatiki, na utalazimika kutatua hali hiyo kwa mkono.
Object storage yenye client: bytes za bei nafuu, si folda ya kusawazisha
Object storage ni bucket inayooana na S3 (simple storage service), iwe umejiendeshea mwenyewe kwa MinIO au umeikodisha kutoka kwa mtoa huduma. Unaifikia kwa tool: rclone kutoka kwenye command line, au desktop client inayoonyesha bucket kama drive. Kushiriki hutumia presigned URL, yaani kiungo unachozalisha ambacho kina muda wake wa kuisha. Versioning ni setting ya bucket: Bucket versioning, off by default, kwa hiyo iwashe unapounda bucket, kwa sababu haitumiki kwa objects ulizopakia hapo awali.
Tatizo huanza unapochukulia bucket kama folda ya kusawazisha. Kwa kawaida hakuna kinachofuatilia directory yako ya Documents. rclone bisync hufanya two-way sync, na documentation ya rclone inaeleza wazi kwamba inahitaji uangalifu. Object storage hufanya vizuri sana ikiwa sehemu ya chini ya mfumo: target ya backup au storage layer iliyo nyuma ya application. Object storage ya S3 inayooana, inayojiendesha mwenyewe kwa MinIO inaeleza upande wa server.
Gharama ya resources hapa ni ya aina tofauti. MinIO ni binary moja na hutumia resources chache inapokuwa idle. Gharama unayolipa kwa kweli ni disk, na kwenye VPS hiyo humaanisha block volume unayokodisha kwa gigabyte, pamoja na bandwidth unayotumia kuhamisha objects kuingia na kutoka. Hakuna mojawapo ya gharama hizi inayoonekana kwenye free -h, kwa hiyo soma gharama halisi ya VPS kwa mwezi kabla ya kuamua ukubwa wa archive.
Kushiriki, wateja wa simu na versioning ikilinganishwa
The data behind this chart
[
{
"tool": "Nextcloud",
"sharing": "Public links, users and groups",
"mobile": "Official iOS and Android apps",
"versioning": "On by default, plus trash"
},
{
"tool": "Seafile",
"sharing": "Public links with password and expiry",
"mobile": "Official iOS and Android apps",
"versioning": "Library history and snapshots"
},
{
"tool": "Syncthing",
"sharing": "Device pairing only, no links",
"mobile": "Android app, no official iOS",
"versioning": "Optional per folder, off by default"
},
{
"tool": "Object storage",
"sharing": "Presigned URLs you generate",
"mobile": "Third party clients only",
"versioning": "Bucket versioning, off by default"
}
]Chaguo zote 4 zinagawanyika katika mwelekeo mmoja. Chaguo tatu zinaweza kumpa faili mtu usiyemjua ambaye ana browser pekee. Chaguo moja huwasiliana tu na vifaa ambavyo tayari unamiliki. Kipengele cha versioning cha Seafile, Library history and snapshots, kinahitaji maelezo: history huhifadhiwa kwa kila library, kwa hiyo kufuta library hufuta history yake pia.
Kutoa data yako tena
Gharama ya kuhamia mfumo mwingine ni rahisi kuikagua sasa, lakini ni ghali kuigundua baadaye. Kwa hiyo, ikague kabla hujajifunga kwenye mfumo.
Nextcloud huhifadhi faili halisi katika directories halisi, kwa hiyo tar ya data directory hukupa nyaraka zako hata kama application haitawahi kuanza tena. Syncthing hufanya hivyo kwenye kila peer, na huu ndio mpango thabiti zaidi wa kuhamia mfumo mwingine: faili hukaa moja kwa moja kwenye kila device. Object store ya Seafile inahitaji Seafile au export tools zake ili kuunganisha tena blocks kuwa faili. Object storage inahitaji rclone au zana inayolingana nayo, ambayo inapatikana kwa command moja.
Usawazishaji si nakala rudufu, na pengo hilo ndilo linalosababisha watu kupoteza data
Kila zana hapa hunakili mabadiliko kati ya mashine. Kufuta ni mabadiliko. Ukiondoa folda kwenye laptop yako, client huiambia server, server huitumia, na kila kifaa kingine huiondoa pia. Ransomware hutumia njia hiyo hiyo: husimba faili kwa njia fiche kwenye mashine ya ndani, client huona faili zilizobadilishwa, kisha hupakia matoleo yaliyosimbwa. Usawazishaji ulifanya kazi ipasavyo. Data yako bado imepotea.
Vikapu vya taka na historia ya matoleo hupunguza athari hii. Pia huisha muda, vinaweza kumwagwa na account ileile iliyosababisha kosa, na hukaa kwenye disk ileile kama nakala inayotumika. Volume iliyoharibika huchukua faili pamoja na historia yake.
Backup ni nakala tofauti, kwenye hardware tofauti, inayochukuliwa kwa ratiba na ambayo umejaribu kuirejesha angalau mara moja. Fanya backup ya database katika utekelezaji huo huo pamoja na faili. Kurejesha Nextcloud data directory bila database yake hukupa instance isiyojua kuwa faili hizo zipo, na occ files:scan inayofuata hurejesha faili huku ikipoteza shares na historia ya matoleo iliyokuwa kwenye tables hizo. Backup za restic zilizopangwa kutoka VPS inaeleza toleo hili lililosimbwa na lenye deduplication, pamoja na jinsi ya kujaribu restore badala ya kudhani kuwa itafanya kazi.
Ningechagua nini
Nextcloud, kwa watu wengi wanaosoma haya. Baada ya kuacha Dropbox, jambo ambalo watu hukosa ni kumpa kiungo mtu ambaye hatawahi kusakinisha chochote, na kufungua faili kwenye simu. Nextcloud hufanya yote hayo kupitia clients rasmi bila tier ya kulipia, na 2 GB ya RAM ni gharama inayofaa kwa hilo. Kuna hali mbili pekee ninazozingatia. Ikiwa folder ni yako tu kila wakati na itatumika kwenye hardware unayomiliki tu, tumia Syncthing. Hutanahitaji server ya ku-patch wala web login ya kulinda. Ikiwa unasawazisha working directory yenye mamia ya maelfu ya faili, tumia Seafile. Kubali storage yake isiyo wazi badala ya kasi hiyo. Object storage iwe chini ya chaguo lako lolote kama backup target, si mbele yake kama sync tool.
FAQ
Je, Syncthing ni hifadhi rudufu ya laptop yangu?
Hapana. Syncthing hunakili mabadiliko kati ya vifaa, na kufuta faili ni mabadiliko kama mengine yoyote. Kwa hiyo, faili unayofuta kimakosa hutoweka kutoka kwenye kila kifaa kilichooanishwa ndani ya sekunde chache. Versioning ya faili kwa kila folda husaidia, na huwa imezimwa hadi uiwashe kwenye kila folda. Weka backup halisi kwenye hardware tofauti, ifanye kwa ratiba, na urejeshe kutoka humo mara moja ili uthibitishe kuwa urejeshaji unafanya kazi.
Je, ninaweza kuendesha Nextcloud na Syncthing kwenye VPS moja?
Ndiyo. Zinasikiliza ports tofauti na hazipingani. Usielekeze folda ya Syncthing kwenye data directory ya Nextcloud. Nextcloud hufuatilia kila faili kwenye database, kwa hiyo faili zinazoonekana kwenye disk chini yake hubaki hazionekani hadi uendeshe occ files:scan, na faili zinazoondolewa chini yake huacha database rows zinazoelekeza mahali pasipo na kitu. Ipe Syncthing directory yake, au iunganishe directory hiyo kwenye Nextcloud kama external storage ili Nextcloud ijue kuichunguza.
Ni ipi inayokuruhusu kushiriki link na mtu asiye na account?
Nextcloud na Seafile zote huunda public links, zikiwa na chaguo la password na tarehe ya kuisha. Object storage hukupa presigned URL ambayo huacha kufanya kazi yenyewe baada ya muda ulioweka. Syncthing haina chaguo hili. Mfumo wake wa kushiriki unategemea device pairing, kwa hiyo mtu mwingine lazima asakinishe Syncthing, akupe device ID, na akubali folda hiyo.
Seva inahitaji disk kiasi gani?
Kwa server of record, panga nafasi ya kutosha kwa ukubwa kamili wa data inayoshirikiwa, pamoja na nafasi ya version history na trash, na nafasi ya kufanya kazi kwa uploads zinazoendelea. Version history ndiyo sehemu ambayo watu wengi huikadiria chini: kuhifadhi kila version ya faili ya 2 GB inayobadilika kila siku huongeza matumizi ya disk haraka, kwa hiyo weka retention policy mapema. Kuweka data kwenye volume tofauti huzuia ongezeko hilo kujaa root filesystem, ambako disk ikijaa husimamisha seva nzima badala ya upload moja.