Njia mbadala za Nextcloud kwa ajili ya self-hosting
Gundua njia mbadala za Nextcloud zinazofaa kwa mahitaji yako. Tunalinganisha programu za kusawazisha faili, hifadhi ya object storage, na SFTP pamoja na gharama za kuhamisha data.
Ni njia gani mbadala za Nextcloud zinazofaa kwa self-hosting?
Njia mbadala za Nextcloud zinazofaa kutumika ni zile zinazoondoa vipengele ambavyo hutumii. Nextcloud ni seva ya faili, kalenda, kitabu cha anwani, ofisi na jukwaa la programu ndani ya programu moja ya PHP, na unalipia yote hayo kila unapopakia ukurasa. Kwa hivyo, chagua mbadala kwa kutaja kazi moja unayohitaji, kisha angalia gharama za kuhamisha faili ulizonazo.
Mwongozo huu unapanga chaguzi kulingana na kazi hiyo: kusawazisha (sync) pekee, kusawazisha na seva ya haraka zaidi, hifadhi ya vitu (object storage) yenye mteja juu yake, au ufikiaji wa kawaida wa faili za mbali. Kila sehemu inaeleza mahitaji ya seva kwenye VPS (virtual private server) ndogo na nini kitatokea kwa muundo wa folda zako zilizopo. Ikiwa unatoka Dropbox au Google Drive badala ya kisanduku cha Nextcloud unachokiendesha tayari, muhtasari mpana wa njia mbadala za Dropbox za self-hosted unaanzia upande huo.
Kwa nini Nextcloud huwa polepole kwenye VPS ndogo
Ulegevu huu una visababishi unavyoweza kuvitambua, na kuvijua kutakusaidia kuamua kama kuhama seva kutatatua tatizo hilo.
Kila ukurasa unaopakiwa hutumia PHP worker. Mahitaji ya mfumo wa Nextcloud yanasema kumbukumbu kwa kila mchakato: kiwango cha chini ni 128 MB, na 512 MB kinapendekezwa, kuanzia Agosti 2026. Hiyo si jumla ya kumbukumbu ya seva. Kundi la workers kumi ni mzigo mkubwa wa kumbukumbu kwenye mpango wa 2 GB, kwa hivyo wasimamizi hupunguza pm.max_children katika usanidi wa kundi la PHP-FPM, na maombi huanza kupangwa kwenye foleni nyuma ya workers waliopo. Kiolesura huonekana polepole wakati diski haifanyi kazi.
Database hukua kulingana na idadi ya faili, si ukubwa wa data. Jedwali la cache ya faili, oc_filecache chini ya kiambishi awali cha jedwali (table prefix) chaguo-msingi, huhifadhi safu moja kwa kila faili na folda katika kila hifadhi inayotambuliwa na seva. Maktaba ya picha yenye faili ndogo 300,000 ni jedwali kubwa; faili za video za 300 GB zilizomo kwenye faili 400 ni jedwali dogo. Kushiriki, kutafuta, na kichanganuzi cha faili vyote husoma jedwali hilo.
sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'Idadi ya mamilioni ya faili inaelezea orodha ya faili inayochelewa vizuri zaidi kuliko kipimo chochote cha kasi ya diski. Ikiwa instance yako inatumia kiambishi awali tofauti cha jedwali au PostgreSQL, rekebisha swala (query) hilo.
Kazi za usuli (background jobs) hushindana na kiolesura cha wavuti. Mwongozo wa Nextcloud unapendekeza ingizo la cron la mfumo linaloendesha cron.php kila baada ya dakika tano. Utengenezaji wa hakikisho (preview generation) na uchanganuzi wa faili huendeshwa hapo, kwenye CPU ileile inayohudumia kivinjari chako.
Uboreshaji mkubwa (major upgrades) ni uhamiaji wa database. Instance huingia katika hali ya matengenezo (maintenance mode) na kujibu kila ombi kwa Nextcloud is in maintenance mode, please try again later hadi uhamiaji utakapokamilika. Kwenye VPS ndogo yenye oc_filecache kubwa, muda huo huwa mrefu kiasi cha kuonekana.
Amua kile unachohifadhi kwanza
- Sawazisha folda moja kati ya mashine unazomiliki, bila kiolesura cha wavuti: Syncthing.
- Sawazisha kwa watu kadhaa, ukiwa na kiolesura cha wavuti, wateja wa simu na viungo vya kushiriki: Seafile.
- Hifadhi data nyingi kwa gharama nafuu na uifikie kutoka kwenye hati (scripts) na zana za kuhifadhi nakala (backup): hifadhi ya vitu (object storage) pamoja na mteja (client).
- Soma na uandike faili zako ukiwa mbali bila programu mpya ya seva: SFTP au WebDAV.
- Hariri hati pamoja kwenye kivinjari, au shiriki kalenda kati ya watu: baki na Nextcloud, au kubali kuendesha huduma mbili.
Syncthing: usawazishaji wa faili bila programu ya seva
Syncthing huhifadhi faili zako kama faili za kawaida. Hakuna database ya maudhui na hakuna kiolesura cha wavuti kinachohudumia hati zako. Kila kifaa kinachojiunga na folda kinashikilia nakala kamili, na Syncthing huhakikisha nakala hizo zinafanana.
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 syncthingsudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384Mstari unaoonyesha 127.0.0.1:8384 unamaanisha kuwa kiolesura cha wavuti kinafanya kazi na kimefungwa kwenye localhost pekee, jambo ambalo ni sahihi kwa VPS ya umma. Ifikie kwa kutumia SSH tunnel: ssh -L 8384:127.0.0.1:8384 you@your-vps, kisha ufungue http://127.0.0.1:8384 kwenye kompyuta yako. Kutokuwepo kwa msikilizaji kwenye 8384 kunamaanisha huduma imeshindwa kuanza, na journalctl -u syncthing@$USER -n 50 inaeleza sababu.
Rasilimali. Syncthing haichapishi kiwango cha chini cha kumbukumbu kinachohitajika. Kiasi kinachotumika hufuata idadi ya faili zinazoorodheshwa badala ya ukubwa wake wa jumla, kwa sababu huhifadhi ingizo la index kwa kila faili katika kila folda iliyoshirikiwa. Utafutaji wa kwanza wa folda kubwa ni kazi ya CPU: Syncthing hufanya hashing ya kila faili kabla ya kulinganisha chochote. Tarajia hatua hiyo ya kwanza kuchukua muda kwenye vCPU iliyoshirikiwa, na tarajia kumbukumbu kuongezeka kulingana na idadi ya faili badala ya gigabytes.
Disk ndiyo gharama halisi. Hakuna uhifadhi wa upande wa seva, kwa sababu Syncthing si seva. Folda ya 200 GB inayoshirikiwa kati ya VPS na kompyuta inahitaji 200 GB kwenye vifaa vyote viwili. Hii ni kinyume na Nextcloud, ambapo seva hushikilia kila kitu na wateja huchagua cha kusawazisha. Tumia folda teule na folda ya receive only kwenye VPS ikiwa VPS inakusudiwa kuwa lengwa la backup badala ya kuwa peer.
Uhamiaji ndiyo sababu ya kuichagua. Elekeza Syncthing kwenye mti wa saraka (directory tree) ulionao tayari. Hakuna uingizaji (import), hakuna upakiaji (upload) na hakuna ubadilishaji. Ongeza folda kwenye VPS, iongeze kwenye kompyuta ukitumia folder ID ileile, na uache pande zote mbili zilingane. Ikiwa faili ileile ipo kwa njia tofauti pande zote mbili wakati wa mawasiliano ya kwanza, Syncthing huhifadhi zote mbili na kuibadilisha jina moja kuwa filename.sync-conflict-20260809-142530-ABCD123.txt. Kuona faili hizo ni jambo la kawaida kwenye usawazishaji wa kwanza, si hitilafu.
Unachokikosa. Hakuna akaunti, hakuna viungo vya kushiriki (share links) vya kutuma kwa watu wengine, na hakuna njia ya kuvinjari faili zako kutoka kwenye kivinjari cha simu. Programu asilia ya Android haitunzwi tena na mradi wenyewe na toleo la jamii (community fork) ndilo linaloendeleza kazi hiyo, jambo ambalo ni muhimu ikiwa ufikiaji wa simu ndiyo lengo lako. Ulinganisho wa moja kwa moja wa Syncthing na Nextcloud hupitia mapungufu ya vipengele moja baada ya jingine.
Seafile: usawazishaji wa haraka na seva nyepesi
Seafile hugawa kazi katika sehemu mbili. Programu ya wavuti ya Python inayoitwa Seahub huchora kiolesura, na mchakato tofauti wa C hushughulikia trafiki ya usawazishaji. Uhamisho wako wa faili haupiti kwenye programu ya wavuti, ndiyo sababu upakiaji mkubwa unabaki kuwa wa haraka wakati mtu mwingine anabofya kwenye kiolesura. Toleo la 13.0 lilitolewa tarehe 5 Januari 2026.
sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.ymlHariri .env kabla ya kuanza jambo lolote. Huweka SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD na JWT_PRIVATE_KEY, ambayo lazima iwe mfuatano wa nasibu wa angalau vibambo 32. Faili hiyo pia huiambia compose ni faili zipi za YAML zilizopakuliwa za kusoma, ili vipakuliwa vyote vinne vifanye kazi kama stack moja.
cd /opt/seafile
sudo docker compose up -d
sudo docker compose psKila container inapaswa kuripoti hali ya kufanya kazi. Container inayojianzisha upya katika mzunguko karibu kila mara inakosa thamani katika .env, na sudo docker compose logs seafile hutaja ni ipi.
Rasilimali. Nyaraka za Seafile huomba angalau 2 GB ya RAM na CPU ya core 2 zaidi ya 2 GHz, kuanzia Agosti 2026. Ichukulie hiyo kama kiwango cha chini kwa stack nzima, kwa sababu usakinishaji wa Docker pia huanzisha MariaDB, Caddy reverse proxy na kihariri cha SeaDoc. Ipe 4 GB ikiwa zaidi ya watu mmoja au wawili wanaitumia, au acha container za hiari.
Changamoto ya uhamiaji ni muundo wa hifadhi. Seafile haihifadhi faili zako kama faili za kawaida. Hugawa kila moja katika vitalu (blocks) chini ya /opt/seafile-data na kurekodi mti wa faili kwenye database yake. Huwezi kuelekeza Seafile kwenye saraka iliyopo na kuifanya ionekane kama maktaba, kwa hivyo kuhamia ndani kunamaanisha kupakia upya kila kitu unachomiliki. Muundo huo huo unamaanisha huwezi kutoa data nje kwa kutumia cp: urejeshaji hupitia seva, seaf-fsck kwa ukaguzi wa uthabiti, au mount ya seaf-fuse ya kusoma pekee.
rclone ina backend ya asili ya Seafile, ambayo hugeuza upakiaji huo kuwa amri moja inayoweza kuendelezwa badala ya kipindi kirefu cha kuburuta na kuacha (drag-and-drop).
rclone config
rclone copy /srv/files seafile:MyLibrary --progressNyaraka za rclone huorodhesha Seafile 6.x hadi 9.x kama zilizojaribiwa, kwa hivyo iendeshe dhidi ya folda moja ndogo na uangalie matokeo kabla ya kusukuma terabyte kupitia hiyo.
Maktaba zilizosimbwa (Encrypted libraries) ndizo kipengele ambacho watu huhamia kwa ajili yake. Nenosiri huwekwa kwenye mteja (client), na seva huhifadhi vitalu ambavyo haiwezi kusoma. Onyo moja la kweli: kuhakiki faili kutoka kwa maktaba iliyosimbwa kwenye kivinjari hutuma nenosiri kwenye seva kwa kipindi hicho, kwa hivyo kuhakiki kwenye kivinjari na hifadhi ya zero-knowledge havipatikani kwa wakati mmoja. Ulinganisho wa Seafile na Nextcloud hufunika sehemu nyingine ya biashara ya vipengele.
Hifadhi ya vitu (object storage) na mteja wa kusawazisha (sync client) juu yake
Ikiwa lengo ni kuhifadhi data nyingi kwa gharama nafuu na kuzifikia kupitia script, endesha hifadhi ya vitu inayooana na S3 na uichukulie sync kama zana tofauti. Utapata uimara, uwezo wa kuhifadhi matoleo (versioning), na itifaki ambayo kila zana ya backup tayari inaitumia. Hutapata akaunti za watumiaji kwa maana ya file-server au kidhibiti faili ambacho mtu yeyote atafurahia kukitumia. Hifadhi ya vitu inayojiendesha yenyewe kwa kutumia MinIO inashughulikia upande wa seva.
rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucketrclone check inalinganisha pande zote mbili kwa ukubwa na hash na kuchapisha ni faili ngapi zinatofautiana. Kitu chochote zaidi ya makosa sifuri kinamaanisha nakala haijakamilika, kwa hivyo endesha copy tena kabla ya kufuta chanzo. Mambo mawili ya kutarajia: hifadhi ya vitu haina saraka (directories), ina viambishi awali vya funguo (key prefixes) pekee, kwa hivyo folda tupu haibaki baada ya kunakili; na kuongeza --transfers pamoja na ukubwa wa chunk wa S3 ndiko kunakoongeza matumizi ya kumbukumbu ya rclone, kwa hivyo yaache yote katika mipangilio yake ya awali kwenye VPS ya 1 GB.
WebDAV au SFTP ya kawaida unapohitaji tu faili za mbali
Mbadala wa bei nafuu mara nyingi ni kutoongeza kitu kipya. Ikiwa VPS yako inaendesha OpenSSH, tayari unayo seva ya faili. SFTP haihitaji daemon ya ziada, database, PHP, wala sasisho lolote linaloweza kuharibika siku ya Jumapili.
sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writesKwa wateja wanaotumia WebDAV, ikiwemo meneja wa faili wengi wa simu, rclone inaweza kutoa huduma ya faili hizo hizo.
sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/filesIunganishe kwenye 127.0.0.1 na uweke reverse proxy yenye TLS (transport layer security) mbele yake. Uthibitishaji wa kimsingi wa WebDAV hutuma nenosiri katika kila ombi, kwa hivyo HTTP ya kawaida hapa inamaanisha kutoa nenosiri mara nyingi kila dakika. Gharama ya kuhama ni sifuri, kwa sababu faili hazihami. Gharama yake ni kwamba hakuna usawazishaji (sync) na hakuna nakala ya nje ya mtandao: muunganisho unapokatika, faili hupotea kutoka kwa mteja hadi muunganisho urejee.
Nini kinachukua nafasi ya kalenda, anwani na uhariri wa nyaraka
Kuacha kutumia Nextcloud kuna gharama zake, na ni muhimu kufahamu gharama hizo. Kalenda na anwani hutumia itifaki za CalDAV na CardDAV (usawazishaji wa kalenda na anwani kupitia HTTP), na Radicale ndiyo mbadala mwepesi. Huhifadhi kila mkusanyiko kama faili kwenye diski na hutumia kiasi kidogo cha kumbukumbu (tens of megabytes).
sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232Kifurushi hiki husafirisha /usr/lib/systemd/system/radicale.service na usanidi wake chaguo-msingi katika /etc/radicale/config, kikisikiliza kwenye localhost:5232. Radicale haina kiolesura cha kuhariri matukio, kwa hivyo unaelekeza simu au programu ya kompyuta kwake na kufanya uhariri huko.
Uhariri wa nyaraka kupitia kivinjari ni mgumu zaidi kuubadilisha. OnlyOffice Docs na Collabora Online zote ni injini za uhariri, si hifadhi: kila moja inahitaji programu mwenyeji (host application) inayoshikilia faili na kukabidhi nyaraka kwa injini hiyo. Ukiondoa Nextcloud, utahitaji mwenyeji mwingine, kama vile Seafile pamoja na kihariri chake cha SeaDoc. Ulinganisho wa OnlyOffice na Collabora unaelezea injini ipi ya kutumia pindi utakapokuwa umeamua ni programu ipi itakayohudumu kama mwenyeji.
Endelea kutumia Nextcloud ikiwa mojawapo ya haya ni kweli
- Watu kadhaa wanashiriki kalenda moja na kitabu kimoja cha anwani, kwenye akaunti zilezile za faili.
- Unahariri hati za ofisi kwenye kivinjari, katika faili lilelile, wakati mmoja na mtu mwingine.
- Unahitaji viungo vya kushiriki faili moja-moja vyenye tarehe za mwisho na nywila, pamoja na ruhusa za vikundi.
- Watumiaji wako si wataalamu wa teknolojia, na programu za simu ndizo wanazotumia kikamilifu.
Kwa kazi hizo hakuna suluhisho jepesi linalofanya yote hayo, na hatua ya uaminifu ni kurekebisha usakinishaji badala ya kuuhama. Mifano mingi ya Nextcloud inayofanya kazi polepole hutumia pool ya kawaida ya PHP-FPM bila cache ya kumbukumbu iliyosanidiwa, na ukurasa wa muhtasari wa msimamizi wa Nextcloud hutoa onyo kuhusu cache inayokosekana. Kupunguza idadi ya faili zinazofuatiliwa husaidia zaidi kuliko mabadiliko mengine yoyote, kwa sababu jedwali la cache ya faili ndilo linalokua. Usakinishaji wa Nextcloud kwenye VPS yenye Docker, TLS na backups huweka mfumo huo kwa njia inayozuia matatizo mengi ya aina hii.
Gharama halisi ya uhamiaji, kwa kila chaguo
- Syncthing: hakuna uingizaji (import). Ielekeze kwenye saraka (tree) uliyonayo pande zote mbili na uiruhusu ilinganishe data.
- SFTP au WebDAV kwenye saraka hiyo hiyo: hakuna uingizaji wowote, kwa sababu hakuna kinachohamishwa.
- Object storage: nakala moja kamili ya mtandao, inayoweza kurejelewa na kuandikiwa script, na folda tupu hazihifadhiwi humo.
- Seafile: upakiaji mmoja kamili kwenye maktaba (libraries), kwa sababu seva huhifadhi blocks badala ya faili.
Chaguo lolote utakalochukua, kwanza pata nakala safi kutoka Nextcloud. Faili za mtumiaji hukaa chini ya saraka ya data katika mfumo wa kawaida, folda moja kwa kila mtumiaji, kwa hivyo rsync ya saraka hiyo ndiyo chanzo chako. Weka mfumo katika maintenance mode kabla ya kunakili, la sivyo utanakili faili zikiwa katikati ya kuandikwa.
sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -lLinganisha idadi hiyo na find ile ile kwenye chanzo. Upungufu kwa kawaida humaanisha ruhusa zimezuia rsync kusoma kitu fulani, na mfumo huchapisha makosa hayo wakati wa mchakato.
Kuna mitego miwili katika nakala hiyo. Faili zinazofikiwa kupitia kipengele cha external storage cha Nextcloud hazipo kwenye saraka ya data hata kidogo, kwa sababu hukaa kwenye mfumo wa mbali ambao Nextcloud iliambiwa kuutumia. Na ikiwa encryption ya upande wa seva iliwahi kuwashwa, faili zilizopo kwenye diski ni ciphertext, kwa hivyo occ encryption:decrypt-all lazima iendeshwe kabla ya kunakili au utahamisha folda ya data isiyosomeka. Hakikisha mambo yote mawili kabla ya kufuta chochote.
FAQ
Je, kuna mbadala wa Nextcloud unaohifadhi muundo wangu wa sasa wa folda?
Syncthing, na usanidi wowote wa kawaida wa SFTP au WebDAV. Syncthing hufanya index ya saraka unayoelekeza na kuhifadhi majina na mpangilio uleule kwenye kila kifaa, kwa hivyo hakuna hatua ya kuingiza data (import) wala kupakia (upload). Seafile na object storage zote zinahitaji kupakia data kikamilifu mara moja, kwa sababu hakuna kati ya hizo inayohifadhi data yako kama faili za kawaida katika mti wa saraka wa kawaida. Seafile hugawanya faili katika vizuizi (blocks) chini ya saraka yake ya data, na object storage hutumia funguo (keys) badala ya saraka.
Je, Seafile itaendesha kwenye VPS ya 2 GB?
Nyaraka za Seafile zinahitaji angalau 2 GB ya RAM na CPU ya core 2 yenye kasi zaidi ya 2 GHz, kuanzia Agosti 2026. Ichukulie hiyo kama kiwango cha chini kabisa bila nafasi ya ziada, kwa sababu Docker deployment pia huendesha MariaDB, Caddy na kihariri cha SeaDoc katika container zao. Kwa mtumiaji mmoja, inawezekana. Kwa kaya au timu ndogo, hamia kwenye 4 GB, au ondoa container ya SeaDoc kwenye stack na uache kutumia kihariri cha hati ndani ya kivinjari.
Kwa nini interface ya wavuti ya Nextcloud ni polepole wakati upakuaji (downloads) bado ni wa haraka?
Kwa sababu njia hizo mbili hufanya kazi tofauti. Upakuaji hutiririsha baiti kutoka kwenye diski, wakati upakiaji wa ukurasa huendesha PHP, huuliza jedwali la cache ya faili, na mara nyingi husubiri PHP-FPM worker aliye huru. Hesabu safu (rows) katika oc_filecache na uangalie pm.max_children katika pool yako ya PHP-FPM kabla ya kulaumu hifadhi. Jedwali lenye mamilioni ya safu na pool ya wafanyakazi watano huzalisha muundo huu hasa.
Je, ninaweza kubaki na Nextcloud kwa ajili ya kalenda na kuhamisha faili pekee?
Ndiyo, na mara nyingi hiyo ndiyo njia nafuu zaidi. Sawazisha (sync) folda zako kubwa kwa kutumia Syncthing au Seafile, na uache Nextcloud ikiendelea kwa ajili ya CalDAV, CardDAV na kuhariri hati kwenye kivinjari. Kwa sababu database ya Nextcloud hukua kulingana na idadi ya faili inazofuatilia, kuondoa miti mikubwa ya faili kutoka humo ndiko kunakofanya interface iwe ya haraka tena. Zifute kupitia interface ya wavuti au occ, si kutoka kwenye saraka ya data iliyo kwenye diski, vinginevyo database itaendelea kuwa na safu zinazoelekeza kwenye faili ambazo hazipo tena.