Syncthing dhidi ya Nextcloud: ipi bora kwa VPS yako?
Chagua kati ya Syncthing na Nextcloud kwa kuelewa tofauti za usanifu. Syncthing inafaa kwa vifaa binafsi, wakati Nextcloud inahitaji PHP na database kwa usimamizi wa seva.
Syncthing dhidi ya Nextcloud: tofauti inayoamua chaguo lako
Ulinganisho wa Syncthing dhidi ya Nextcloud unatokana na tofauti moja ya kimuundo, na kila kitu kingine kinatokana na hapo. Syncthing ni mfumo wa peer-to-peer. Kila kifaa kinahifadhi folda nzima, na hakuna nakala inayochukuliwa kuwa ndiyo kuu au ya msingi. Nextcloud ni seva. Mashine moja huhifadhi faili, akaunti za watumiaji huwekwa mbele ya faili hizo, na wateja (clients) hupakua nakala zao.
Hii ndiyo sababu Syncthing haina kiungo cha kushiriki (share link) wala mwonekano wa wavuti wa hati zako. Hakuna nakala kuu ya kuhudumia, kwa hivyo hakuna kitu ambacho kivinjari kinaweza kukiomba. Nextcloud hutoa vyote viwili, na ili kufanya hivyo inahitaji PHP runtime, database server, web server na reverse proxy kwa ajili ya TLS (transport layer security).
Chagua Syncthing wakati kila kifaa kinachohusika ni chako. Chagua Nextcloud wakati kivinjari au mtu mwingine anahitaji kufikia faili hizo.
Kile ambacho VPS inafanya katika kila usanifu
VPS inayotumia Nextcloud ndiyo hifadhi ya data zako. Ukifuta nakala ya ndani kwenye kompyuta yako, faili bado itakuwepo kwenye seva, kwa sababu seva ndiyo ilikuwa chanzo asilia.
VPS inayotumia Syncthing inafanya kazi tofauti: inafanya kazi kama kifaa (peer) kinachowaka muda wote. Syncthing huhamisha data moja kwa moja kati ya vifaa viwili vilivyo mtandaoni kwa wakati mmoja. Kompyuta mbili ambazo hazijawahi kuwashwa kwa pamoja haziwezi kusawazisha data, hata usubiri kwa muda gani. Ongeza kifaa cha tatu kwenye VPS ambayo haizimi kamwe na tatizo hilo litaisha. Kompyuta A inatuma data saa 09:00, kompyuta B inachota data saa 22:00, na VPS inahifadhi folda hiyo katikati ya muda huo.
Hiyo ni kazi yenye manufaa ya kweli, na ni madai madogo kuliko kusema "mbadala wa Dropbox". Syncthing haitakupa kamwe kiungo cha kutuma kwa mteja. Ikiwa hilo ndilo hitaji lako, sitisha hapa na usome muhtasari wa mbadala wa Dropbox unaoweza kujiendeshea mwenyewe badala yake.
Gharama ya kila moja kwenye VPS ndogo
Syncthing ni binary moja ya Go. Husikiliza kwenye socket, huweka index ya faili zako kwenye database ya ndani, na huo ndio mzigo mzima. Tangu toleo la 2.0, index hiyo ni SQLite badala ya LevelDB, kwa hivyo kuboresha kutoka toleo la 1.x hufanya migration ya mara moja wakati wa kuanzisha programu kwa mara ya kwanza. Kwenye seti kubwa ya folda, migration hiyo inaweza kuchukua muda mrefu. Iache ikamilike. Hakuna kingine kinachohitaji kusakinishwa, na hakuna kingine kinachohitaji kufanyiwa patching.
Nextcloud inahitaji zaidi. Kufikia Agosti 2026, Nextcloud 35 inasaidia PHP 8.3 hadi 8.5 ikiwa na MariaDB au PostgreSQL nyuma yake, ikihudumiwa na Apache 2.4 au nginx pamoja na php-fpm. Mwongozo wa admin unapendekeza "kiwango cha chini cha 512MB ya RAM kwa kila mchakato", na php-fpm huendesha michakato kadhaa ya worker kwa wakati mmoja.
Kwenye VPS ya 1 GB, Syncthing inafanya kazi vizuri lakini Nextcloud inabana. Hiyo haimaanishi Nextcloud ni chaguo lisilo sahihi. Inamaanisha ni jukumu kubwa zaidi, ikiwa na vipengele vinne vya kusasisha badala ya kimoja. Njia ya container iliyoainishwa katika mwongozo wa Nextcloud kwenye VPS unaohusu Docker, TLS na backups ndiyo njia rahisi zaidi ya kubeba mzigo huo. Kuongeza uhariri wa hati kupitia kivinjari huongeza mahitaji hayo zaidi, jambo ambalo ulinganisho wa OnlyOffice na Collabora unalichambua kwa seva ya 2 hadi 4 GB.
Sakinisha Syncthing kwenye VPS
Ubuntu inatoa kifurushi cha syncthing, lakini kimepitwa na wakati kwa kiasi kikubwa ikilinganishwa na toleo la msanidi. Tumia hazina (repository) rasmi ya mradi huu.
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
syncthing --versionsyncthing --version inapaswa kuchapisha mstari unaoanza na syncthing v2. v1 hapo inamaanisha kuwa apt bado inapendelea kifurushi cha usambazaji (distribution package). Weka kipaumbele (pin) kwa hazina ya msanidi juu yake kisha usakinishe tena.
printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.prefIendeshe kama huduma ya mfumo (system service) chini ya akaunti ya kawaida ya mtumiaji, ili ianze wakati wa boot hata kama hakuna aliyelog in.
sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.servicesystemctl status inapaswa kuchapisha active (running). Faili za usanidi na faharasa (index) huwekwa kwenye /home/youruser/.local/state/syncthing, na faili ya usanidi ni config.xml. Usakinishaji uliofanywa kabla ya Syncthing 1.27 huviweka kwenye ~/.config/syncthing badala yake, kwa hivyo kagua njia zote mbili kabla ya kunakili chochote kati ya mashine.
Kisha fungua milango (ports). Syncthing hutumia 22000/TCP kwa itifaki ya kusawazisha, 22000/UDP kwa usafirishaji wa QUIC, na 21027/UDP kwa ugunduzi wa ndani (local discovery). Ugunduzi hutumia broadcast na multicast, ambazo hazivuki mtandao wa Internet, kwa hivyo kwenye VPS unahitaji milango miwili ya kwanza pekee.
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw statusufw status inapaswa kuorodhesha sheria zote mbili. Ikiwa inachapisha Status: inactive, ufw haichuji chochote na firewall ya mtandao ya mtoa huduma wako ndiyo pekee inayofanya kazi. Kagua paneli hiyo pia, kwa sababu ni kidhibiti tofauti kwenye seva nyingi. Kifaa cha mbali kinachokwama kwenye Disconnected wakati huduma inaendelea kwa kawaida inamaanisha mojawapo ya firewall hizo mbili bado imefungwa.
Fikia GUI ya Syncthing bila kuichapisha hadharani
GUI (kiolesura cha picha) ya wavuti husikiliza kwenye 127.0.0.1:8384 kwa chaguomsingi, kwa hivyo hujibu tu kutoka kwa seva yenyewe. Chaguomsingi hiyo ni ya kinga, kwa sababu GUI hubeba ufunguo wa API (kiolesura cha programu) ambao unaweza kubadilisha kila njia ya folda kwenye mashine hiyo.
Usiifungue kwa ulimwengu kama hatua ya kwanza. Nyaraka ziko wazi kuhusu kile ambacho kuunganisha kwenye anwani ya mtandao hukupa: "kubainisha anwani ya LAN ya kompyuta yako HAKUTAZUIA ufikiaji kwa vifaa vilivyo kwenye mtandao wako wa ndani pekee!" Badala yake, peleka port hiyo kupitia SSH kutoka kwa kompyuta yako ndogo (laptop).
ssh -L 8384:127.0.0.1:8384 youruser@your.vps.exampleFungua http://127.0.0.1:8384 kwenye kivinjari chako cha ndani wakati kikao hicho kikiwa kinaendelea. Handaki hilo hufungwa pamoja na kikao cha SSH, kwa hivyo hakuna kinachosalia kusikiliza baadaye.
Ikiwa unahitaji GUI ifikike moja kwa moja, weka vitambulisho kwanza. Hakuna kivinjari kwenye seva, kwa hivyo fanya hivyo kutoka kwa mstari wa amri (command line).
sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service-H ni muhimu, kwa sababu bila hiyo sudo huhifadhi saraka ya nyumbani ya root na unahariri config.xml isiyo sahihi. Mstari mmoja (dash) kama thamani ya nenosiri huifanya syncthing generate kusoma nenosiri kutoka kwa ingizo la kawaida (standard input), jambo ambalo hulizuia lisionekane kwenye historia ya shell yako, na thamani hiyo hufanyiwa hashing kabla ya kuandikwa kwenye faili. Washa HTTPS kwenye mipangilio ya GUI mara tu utakapoweza kuingia.
Kwa nini Syncthing hueneza makosa yako
FAQ ya Syncthing inajibu swali la backup yenyewe: "Syncthing si programu nzuri ya backup kwa sababu mabadiliko yote kwenye faili zako (kuhariri, kufuta, n.k.) yataenezwa kwenye vifaa vyako vyote."
Ukifuta folda kwa bahati mbaya kwenye laptop yako, Syncthing hufanya kazi kama ilivyosanifiwa. Inafuta folda hiyo kila mahali, ndani ya sekunde chache. Sync inamaanisha makubaliano, na makubaliano yanajumuisha kukubali kuwa faili haipo tena.
Versioning ya faili ndiyo njia ya kuzuia hili, na imezimwa isipokuwa ukiwasha mwenyewe. Nyaraka zinasema kuwa versioning "kwa chaguo-msingi imewekwa kuwa 'no file versioning', yaani hakuna nakala za zamani za faili zinazohifadhiwa." Mikakati minne inapatikana kwa kila folda. Trash Can huhifadhi nakala moja ya kila faili iliyofutwa au kubadilishwa kutokana na mabadiliko ya mbali. Simple huhifadhi idadi maalum ya matoleo ya zamani kwa kila faili. Staggered hupunguza historia kadiri inavyozeeka, ikihifadhi nakala za kila saa kwa siku moja, nakala za kila siku kwa mwezi, na kadhalika. External hukabidhi kila uamuzi kwa amri unayoandika. Nakala za zamani huenda kwenye saraka ya .stversions ndani ya folda iliyoshirikiwa.
Weka Staggered kwenye peer ya VPS na uache laptop zikiwa na versioning imezimwa. Peer inayowaka kila wakati ndiyo itabeba historia, na laptop zitabaki zikiwa nyepesi.
Nextcloud hushughulikia hili vizuri zaidi na bado si backup. Faili zilizofutwa huenda kwenye pipa la takataka na marekebisho huhifadhiwa na programu ya Versions, lakini zote hupunguzwa kiotomatiki diski inapojaa. Mchakato kwenye laptop yako unaosimba faili (encrypt) utasinikisha matoleo hayo yaliyosimbwa, na nakala nzuri zitafutwa kulingana na ratiba yake yenyewe.
Zana yoyote kati ya hizi inahitaji backup halisi chini yake: snapshots zinazochukuliwa na programu tofauti, zilizoandikwa mahali ambapo mteja wa sync hawezi kufikia, na zilizorejeshwa angalau mara moja ili ujue kuwa urejeshaji unafanya kazi. Ulinganisho wa restic na BorgBackup unaelezea ni ipi kati ya hizo unayopaswa kuielekeza kwenye saraka ya data.
Jinsi migogoro inavyotofautiana kati ya zana hizi mbili
Zana zote mbili hutengeneza faili ya mgogoro wakati pande mbili zinapobadilisha faili moja kati ya usawazishaji (syncs). Kinachotofautiana ni nani anayeiona.
Syncthing hubadilisha jina la nakala iliyoshindwa na kuwa <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>. Nakala yenye muda wa marekebisho wa zamani zaidi ndiyo inayoshindwa. Wakati muda unapokuwa sawa, kifaa chenye thamani kubwa zaidi katika biti 63 za kwanza za kitambulisho chake cha kifaa (device ID) ndicho kinachoshindwa, jambo ambalo ni la kubahatisha lakini hutoa jibu sawa kwenye kila kifaa (peer). Kisha inakuja sehemu ambayo watu hawajaiandaa: faili hizo "huchukuliwa kama faili za kawaida baada ya kutengenezwa, kwa hivyo husambazwa kati ya vifaa". Kila kifaa hupokea nakala ya mgogoro. Kuisafisha ni kufuta mara moja ambayo husawazishwa kote, lakini utaiona kwenye mashine zako zote kwanza.
Mteja wa desktop wa Nextcloud huandika <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>, kwa mfano mydata (conflicted copy 2018-04-10 093612).txt, na kwa chaguo-msingi haipakii (upload) faili hiyo. Mwongozo wa mteja hutoa sababu: mwandishi wa mabadiliko ndiye mtu bora wa kuyatatua, na kuonyesha mgogoro kwa watumiaji wengine huleta mkanganyiko tu. Weka OWNCLOUD_UPLOAD_CONFLICT_FILES=1 katika mazingira ya mteja (client's environment) ikiwa unataka tabia tofauti.
Kwa hivyo, mgogoro wa Syncthing ni tukio la mfumo mzima (cluster-wide), wakati mgogoro wa Nextcloud hubaki kwenye desktop moja tu.
Aina za folda hufanya Syncthing kuwa salama zaidi kwenye seva
Syncthing ina aina tatu za folda, na kuchagua aina sahihi kwenye VPS huondoa hatari nyingi za ajali.
- Send & Receive ndiyo chaguo-msingi. Mabadiliko husafiri katika pande zote mbili.
- Send Only hupuuza kila kitu kinachotumwa na cluster. Itumie mahali ambapo kifaa kinapaswa kuchapisha data pekee. Inapopoteza usawaziko, GUI huonyesha kitufe chekundu cha "Override Changes", ambacho husukuma hali ya ndani kwenda kwa kila mtu.
- Receive Only hutumia mabadiliko kutoka kwa cluster na haitumi kamwe marekebisho ya ndani kurudi. Itumie kwenye VPS inayofanya kazi kama hifadhi (archive). Marekebisho ya ndani hapo huibua kitufe chekundu cha "Revert Local Changes" badala yake.
Folda ya aina ya Receive Only kwenye VPS ikiwa na Staggered versioning imewashwa hukupa kioo chenye matoleo (versioned mirror). Kufuta faili kwenye laptop bado kutatekelezwa, kwa sababu kufuta ni mabadiliko halali ya cluster, lakini nakala ya zamani huenda kwenye .stversions badala ya kupotea kabisa.
Ni ipi unapaswa kuchagua
Safu 7 zilizo hapa chini zinaangazia sababu ambazo watu huuliza swali hili mara kwa mara.
The data behind this chart
[
{
"label": "Keep two of my own laptops in sync",
"pick": "Syncthing",
"notes": "No accounts to manage. The VPS is the peer that is always awake."
},
{
"label": "Send a download link to a client",
"pick": "Nextcloud",
"notes": "Syncthing has no public link sharing at all."
},
{
"label": "Open a file from a borrowed browser",
"pick": "Nextcloud",
"notes": "The Syncthing GUI shows sync state, never file contents."
},
{
"label": "Sync 200 GB between machines I own",
"pick": "Syncthing",
"notes": "Peers transfer directly. The VPS copy is optional."
},
{
"label": "Phone photo upload with a store app",
"pick": "Nextcloud",
"notes": "The official Syncthing Android app ended in December 2024."
},
{
"label": "Calendar and contacts alongside files",
"pick": "Nextcloud",
"notes": "Syncthing syncs files. That is the entire feature set."
},
{
"label": "1 GB VPS with nothing else to spare",
"pick": "Syncthing",
"notes": "One Go binary against PHP plus a database plus a web server."
}
]Angalia safu ya kwanza. Kusawazisha kompyuta zako mbili za mkononi kunaashiria Syncthing, na hiyo ndiyo hali ambapo VPS inafaa kama kifaa ambacho hakilali kamwe. Kila safu inayohusisha kivinjari, kiungo (link), au mtu mwingine inaashiria upande mwingine.
Ikiwa Nextcloud inaendelea kushinda lakini ukubwa wake unakutia wasiwasi, ulinganisho wa Seafile na Nextcloud ndilo jambo linalofuata la kusoma, kwa sababu Seafile hudumisha mfumo wa seva kwa kutumia injini tofauti ya usawazishaji (sync engine) iliyo chini yake.
Kutumia zote mbili kwenye VPS moja
Hizi si huduma zinazokatazana. Kutumia Syncthing kuhamisha faili kati ya mashine zako huku Nextcloud ikishughulikia ushirikiano na kalenda ni mpangilio wa kawaida.
Kuna kanuni moja ukifanya hivi: usielekeze kamwe Syncthing kwenye saraka ya data ya Nextcloud. Nextcloud hufuatilia kila faili kwenye database yake, kwa hivyo faili zinazoonekana kwenye diski kutoka nje hubaki zimefichika kwenye kiolesura cha wavuti hadi database itakapozitambua. Kutoka kwenye saraka ya usakinishaji wa Nextcloud:
sudo -u www-data php occ files:scan --allAmri hiyo huchapisha idadi ya faili na folda ilizochanganua. Kuiendesha kwa kutumia kipima muda ni suluhisho la muda tu, si usanifu bora. Ipe kila zana saraka yake binafsi. Ikiwa bado unaamua ni nini kinachopaswa kuwepo kwenye seva yako, mwongozo wa nini cha kujihostia mwaka 2026 ni mahali pazuri pa kuanzia kuliko kuchagua zana ya kusawazisha kwanza.
FAQ
Je, Syncthing inaweza kuchukua nafasi ya Dropbox?
Kwa sehemu tu ambapo vifaa vyako mwenyewe vinasawazishwa. Syncthing haina viungo vya kushiriki hadharani wala akaunti za watumiaji, na kiolesura chake cha wavuti hakiwezi kuonyesha yaliyomo kwenye faili, kwa sababu hakuna nakala kuu ambayo kivinjari kinaweza kuiomba. Programu rasmi ya Android ilisitishwa baada ya toleo lake la Desemba 2024 na haipatikani tena kwenye Play Store, hivyo usaidizi wa simu sasa unategemea toleo la jamii (community fork). Ikiwa unahitaji kumtumia mtu kiungo, unahitaji seva, jambo linalomaanisha Nextcloud au kitu kama hicho.
Je, Syncthing ni hifadhi ya nakala (backup)?
Hapana, na mradi wenyewe unasema hivyo moja kwa moja. Ufutaji na mabadiliko huenea kwenye kila kifaa, hivyo ufutaji wa bahati mbaya hupotea kila mahali ndani ya sekunde chache. Kuwasha uwezo wa file versioning kwa kila folda, hasa Staggered kwenye kifaa kinachowaka muda wote, hukupa muda wa kurejesha faili kupitia saraka ya .stversions. Hii si mbadala wa snapshots zinazochukuliwa na zana tofauti kwenye hifadhi tofauti.
Kwa nini siwezi kuona faili zangu kwenye GUI ya wavuti ya Syncthing?
Kwa sababu GUI ni jopo la kudhibiti hali ya usawazishaji, si kivinjari cha faili. Inaonyesha folda, vifaa, maendeleo ya uhamishaji na idadi ya migogoro (conflicts), na haiorodheshi wala kufungua yaliyomo kwenye faili. Hilo linatokana na usanifu wa peer-to-peer: faili zako huishi kwenye vifaa vyako, na GUI iliyo kwenye VPS inasimamia tu mchakato wa kuzisogeza.
Ni bandari (ports) zipi Syncthing inahitaji ziwe wazi kwenye VPS?
22000/TCP kwa itifaki ya usawazishaji na 22000/UDP kwa usafirishaji wa QUIC. Bandari 21027/UDP hubeba ugunduzi wa ndani (local discovery) kupitia broadcast na multicast, ambayo haisafiri kwenye Internet, kwa hivyo iache ikiwa imefungwa kwenye seva ya umma. Acha GUI kwenye 8384 ikiwa imefungwa kwenye 127.0.0.1 na uifikie kupitia SSH tunnel. Angalia firewall ya mtandao ya mtoa huduma wako pamoja na ufw, kwa sababu ni vidhibiti tofauti.
Je, ninaweza kuendesha Syncthing na Nextcloud kwenye VPS moja?
Ndiyo, na ni jambo linalowezekana kwenye seva yenye 2 GB ya RAM au zaidi. Weka saraka zao zikiwa tofauti. Nextcloud huorodhesha faili kwenye hifadhidata yake, kwa hivyo chochote ambacho Syncthing inaandika kwenye hifadhi ya Nextcloud kitabaki kisionekane kwenye kiolesura cha wavuti hadi occ files:scan itakapofanya kazi. Zana mbili zinazoandika kwenye saraka moja pia huzalisha faili za migogoro (conflict files) ambazo hakuna hata moja inayozitarajia.