Alternatif Nextcloud Terbaik untuk Dihoskan Sendiri
Cari alternatif Nextcloud yang lebih ringan mengikut keperluan anda. Kami membandingkan penyelesaian penyelarasan fail, storan objek, dan SFTP dengan kos migrasi yang jelas.
Alternatif Nextcloud yang berbaloi untuk dihoskan sendiri
Alternatif Nextcloud yang berbaloi untuk dijalankan adalah yang membuang bahagian yang tidak pernah anda gunakan. Nextcloud ialah pelayan fail, kalendar, buku kenalan, suite pejabat dan platform aplikasi dalam satu aplikasi PHP, dan anda menanggung kos prestasi untuk kesemuanya pada setiap muatan halaman. Jadi, pilih pengganti dengan menentukan satu tugas yang masih anda perlukan, kemudian semak kos untuk memindahkan fail yang sedia ada.
Panduan ini menyusun pilihan mengikut tugas tersebut: penyelarasan sahaja, penyelarasan dengan pelayan yang lebih pantas, storan objek dengan klien di atasnya, atau akses fail jauh biasa. Setiap bahagian menyatakan keperluan pelayan pada VPS (virtual private server) kecil dan perkara yang berlaku kepada pepohon folder sedia ada anda. Jika anda datang daripada Dropbox atau Google Drive dan bukannya daripada kotak Nextcloud yang sudah anda jalankan, tinjauan lebih luas mengenai alternatif Dropbox yang dihoskan sendiri bermula daripada sudut tersebut.
Mengapa Nextcloud menjadi perlahan pada VPS kecil
Kelambatan mempunyai punca yang boleh dikenal pasti, dan mengetahuinya membantu anda menentukan sama ada menukar pelayan akan benar-benar membantu.
Setiap pemuatan halaman menggunakan satu pekerja PHP. Keperluan sistem Nextcloud sendiri menyatakan memori per proses: minimum 128 MB, 512 MB disyorkan, setakat Ogos 2026. Itu bukan jumlah keseluruhan pelayan. Kumpulan sepuluh pekerja merupakan bajet memori yang besar pada pelan 2 GB, jadi pentadbir merendahkan pm.max_children dalam konfigurasi kumpulan PHP-FPM, dan kemudian permintaan beratur di belakang pekerja yang sedia ada. Antara muka terasa perlahan walaupun cakera tidak sibuk.
Pangkalan data berkembang mengikut bilangan fail, bukan mengikut bait. Jadual cache fail, oc_filecache di bawah awalan jadual lalai, menyimpan satu baris untuk setiap fail dan folder dalam setiap storan yang diketahui oleh pelayan. Pustaka foto yang mengandungi 300,000 fail kecil merupakan jadual yang besar; 300 GB fail video dalam 400 fail adalah jadual yang kecil. Perkongsian, carian dan pengimbas fail semuanya membaca jadual tersebut.
sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'Kiraan dalam jutaan lebih menjelaskan senarai fail yang perlahan berbanding sebarang penanda aras cakera. Jika instans anda menggunakan awalan jadual yang berbeza atau PostgreSQL, laraskan pertanyaan tersebut.
Tugas latar belakang bersaing dengan antara muka web. Manual Nextcloud mengesyorkan entri cron sistem yang menjalankan cron.php setiap lima minit. Penjanaan pratonton dan pengimbasan fail berjalan di sana, pada CPU yang sama yang melayani pelayar anda.
Naik taraf utama merupakan migrasi pangkalan data. Instans tersebut masuk ke mod penyelenggaraan dan menjawab setiap permintaan dengan Nextcloud is in maintenance mode, please try again later sehingga migrasi selesai. Pada VPS kecil dengan oc_filecache yang besar, tempoh tersebut cukup lama untuk disedari.
Tentukan perkara yang ingin dikekalkan terlebih dahulu
- Segerakkan satu folder antara mesin milik anda, tanpa antara muka web: Syncthing.
- Segerakkan untuk beberapa orang, dengan antara muka web, klien mudah alih dan pautan perkongsian: Seafile.
- Simpan sejumlah besar data dengan kos rendah dan capai data tersebut melalui skrip serta alat sandaran: storan objek berserta klien.
- Baca dan tulis fail anda dari jauh tanpa perisian pelayan baharu: SFTP atau WebDAV.
- Sunting dokumen bersama-sama dalam pelayar, atau kongsi kalendar antara orang: kekal menggunakan Nextcloud, atau terima hakikat untuk menjalankan dua servis.
Syncthing: penyelarasan fail tanpa aplikasi pelayan
Syncthing menyimpan fail anda sebagai fail biasa. Tiada pangkalan data kandungan dan tiada antara muka web yang menghidangkan dokumen anda. Setiap peranti yang menyertai folder memegang salinan penuh, dan Syncthing memastikan salinan tersebut sentiasa sama.
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 8384Baris yang menunjukkan 127.0.0.1:8384 bermaksud antara muka web sedang berjalan dan terikat pada localhost sahaja, iaitu keadaan yang anda perlukan pada VPS awam. Capai antara muka tersebut dengan terowong SSH: ssh -L 8384:127.0.0.1:8384 you@your-vps, kemudian buka http://127.0.0.1:8384 pada komputer riba anda. Tiada pendengar (listener) pada 8384 bermaksud servis gagal bermula, dan journalctl -u syncthing@$USER -n 50 menyatakan puncanya.
Sumber. Syncthing tidak menerbitkan angka memori minimum. Penggunaan sumbernya mengikut bilangan fail yang diindeks dan bukannya jumlah saiz fail tersebut, kerana ia menyimpan satu entri indeks bagi setiap fail untuk setiap folder yang dikongsi. Imbasan pertama bagi folder yang besar memerlukan kerja CPU: Syncthing melakukan hashing pada setiap fail sebelum ia boleh membandingkan apa-apa. Jangkakan laluan pertama itu berjalan untuk seketika pada vCPU kongsi, dan jangkakan penggunaan memori meningkat mengikut bilangan fail dan bukannya mengikut gigabait.
Disk adalah kos sebenar. Tiada penjimatan di sisi pelayan, kerana Syncthing bukan sebuah pelayan. Folder bersaiz 200 GB yang dikongsi antara VPS dan komputer riba memerlukan 200 GB pada kedua-dua peranti. Ini bertentangan dengan Nextcloud, di mana pelayan memegang segala-galanya dan klien memilih apa yang ingin diselaraskan. Gunakan folder selektif dan folder receive only pada VPS jika VPS tersebut bertujuan untuk menjadi sasaran sandaran dan bukannya rakan setara (peer).
Migrasi adalah sebab untuk memilihnya. Halakan Syncthing ke pepohon direktori yang anda sudah miliki. Tiada import, tiada muat naik dan tiada penukaran. Tambah folder pada VPS, tambah folder tersebut pada komputer riba dengan ID folder yang sama, dan biarkan kedua-dua pihak menyelaraskan diri. Jika fail yang sama wujud secara berbeza pada kedua-dua pihak semasa hubungan pertama, Syncthing akan menyimpan kedua-duanya dan menamakan semula salah satu kepada filename.sync-conflict-20260809-142530-ABCD123.txt. Melihat fail-fail tersebut adalah perkara biasa pada penyelarasan pertama, bukan satu kegagalan.
Apa yang anda korbankan. Tiada akaun, tiada pautan kongsi untuk dihantar kepada orang lain, dan tiada cara untuk melayari fail anda daripada pelayar telefon. Aplikasi Android asal tidak lagi diselenggara oleh projek itu sendiri dan satu fork komuniti meneruskannya, yang penting jika akses mudah alih adalah tujuan utama anda. Perbandingan terus antara Syncthing dan Nextcloud meneliti jurang ciri satu demi satu.
Seafile: penyelarasan pantas dengan pelayan yang lebih ringan
Seafile membahagikan beban kerja kepada dua bahagian. Aplikasi web Python yang dipanggil Seahub memaparkan antara muka, manakala proses C yang berasingan mengendalikan trafik penyelarasan. Pemindahan fail anda tidak melalui aplikasi web tersebut, itulah sebabnya muat naik bersaiz besar kekal pantas walaupun pengguna lain sedang melayari antara muka. Versi 13.0 telah dikeluarkan pada 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.ymlSunting .env sebelum memulakan apa-apa. Fail ini menetapkan SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD dan JWT_PRIVATE_KEY, yang mestilah merupakan rentetan rawak sekurang-kurangnya 32 aksara. Fail tersebut juga memberitahu compose fail YAML yang dimuat turun perlu dibaca, supaya keempat-empat muat turun tersebut berfungsi sebagai satu stack.
cd /opt/seafile
sudo docker compose up -d
sudo docker compose psSetiap kontena sepatutnya melaporkan status berjalan. Kontena yang dimulakan semula secara berulang hampir selalu disebabkan oleh nilai yang hilang daripada .env, dan sudo docker compose logs seafile menamakan kontena yang terlibat.
Sumber. Dokumentasi Seafile memerlukan sekurang-kurangnya 2 GB RAM dan CPU 2 teras melebihi 2 GHz, setakat Ogos 2026. Anggap ini sebagai keperluan minimum untuk keseluruhan stack, kerana penggunaan Docker juga memulakan MariaDB, reverse proxy Caddy dan editor SeaDoc. Sediakan 4 GB jika lebih daripada seorang atau dua orang menggunakannya, atau abaikan kontena pilihan.
Cabaran migrasi ialah format storan. Seafile tidak menyimpan fail anda sebagai fail biasa. Ia memecahkan setiap fail kepada blok di bawah /opt/seafile-data dan merekodkan struktur fail tersebut dalam pangkalan datanya. Anda tidak boleh menghalakan Seafile ke direktori sedia ada dan menjadikannya sebagai pustaka, jadi proses pemindahan bermakna satu sesi muat naik penuh bagi semua data anda. Reka bentuk yang sama bermakna anda tidak boleh mengeluarkan data dengan cp: pemulihan perlu melalui pelayan, seaf-fsck untuk pemeriksaan konsistensi, atau mount seaf-fuse yang bersifat baca sahaja.
rclone mempunyai backend Seafile asli, yang menukarkan muat naik tersebut kepada satu arahan yang boleh disambung semula (resumable) berbanding sesi drag-and-drop yang panjang.
rclone config
rclone copy /srv/files seafile:MyLibrary --progressDokumentasi rclone menyenaraikan Seafile 6.x hingga 9.x sebagai versi yang telah diuji, jadi jalankan ia pada satu folder kecil dan semak hasilnya sebelum memindahkan data bersaiz terabait.
Pustaka disulitkan (Encrypted libraries) adalah ciri utama yang menarik pengguna. Kata laluan ditetapkan dalam klien, dan pelayan menyimpan blok yang tidak boleh dibacanya. Satu peringatan jujur: pratonton fail daripada pustaka yang disulitkan dalam pelayar akan menghantar kata laluan ke pelayan untuk sesi tersebut, jadi pratonton pelayar dan storan zero-knowledge tidak boleh digunakan pada masa yang sama. Perbandingan antara Seafile dan Nextcloud merangkumi perbezaan ciri yang lain.
Storan objek dengan klien penyegerakan di atasnya
Jika matlamatnya adalah untuk menyimpan banyak bait dengan kos rendah dan boleh dicapai melalui skrip, jalankan storan objek yang serasi dengan S3 dan anggap penyegerakan sebagai alat yang berasingan. Anda mendapat ketahanan, pengurusan versi dan protokol yang sudah disokong oleh setiap alat sandaran. Anda tidak mendapat akaun pengguna dalam erti kata pelayan fail atau pengurus fail yang selesa digunakan oleh sesiapa sahaja. Storan objek yang dihoskan sendiri dengan MinIO merangkumi bahagian pelayan.
rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucketrclone check membandingkan kedua-dua belah pihak berdasarkan saiz dan hash serta mencetak berapa banyak fail yang berbeza. Sebarang nilai selain sifar bermakna salinan tersebut tidak lengkap, jadi jalankan copy sekali lagi sebelum anda memadam sumber asal. Dua perkara yang perlu dijangkakan: storan objek tidak mempunyai direktori, hanya awalan kunci (key prefixes), jadi folder kosong tidak akan kekal selepas penyalinan; dan meningkatkan --transfers bersama-sama dengan saiz ketul (chunk size) S3 adalah perkara yang menyebabkan penggunaan memori rclone meningkat, jadi biarkan kedua-duanya pada tetapan lalai jika menggunakan VPS 1 GB.
WebDAV atau SFTP biasa apabila anda hanya memerlukan fail jauh
Pengganti paling murah selalunya tidak memerlukan apa-apa yang baharu. Jika VPS anda menjalankan OpenSSH, anda sudah mempunyai pelayan fail. SFTP tidak memerlukan daemon tambahan, pangkalan data, PHP, atau naik taraf yang boleh menyebabkan kerosakan pada hari Ahad.
sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writesBagi klien yang menyokong WebDAV, termasuk kebanyakan pengurus fail telefon, rclone boleh menyediakan direktori yang sama.
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/filesIkat ia pada 127.0.0.1 dan letakkan reverse proxy dengan TLS (transport layer security) di hadapan. Pengesahan asas WebDAV menghantar kata laluan pada setiap permintaan, jadi HTTP biasa di sini bermakna mendedahkan kata laluan berkali-kali dalam seminit. Kos migrasi adalah sifar, kerana fail tidak perlu dipindahkan. Kekurangannya ialah tiada penyelarasan dan tiada salinan luar talian: apabila pautan terputus, fail akan hilang daripada klien sehingga sambungan kembali pulih.
Apakah pengganti kalendar, kenalan dan penyuntingan dokumen
Meninggalkan Nextcloud menuntut pengorbanan tertentu, dan adalah penting untuk memahami perkara tersebut. Kalendar dan kenalan menggunakan protokol CalDAV dan CardDAV (penyegerakan kalendar dan kenalan melalui HTTP), dan Radicale merupakan pengganti yang ringan. Ia menyimpan setiap koleksi sebagai fail pada cakera dan hanya menggunakan puluhan megabait memori.
sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232Pakej ini membekalkan /usr/lib/systemd/system/radicale.service dengan konfigurasi lalai di /etc/radicale/config, yang mendengar pada localhost:5232. Radicale tidak mempunyai antara muka untuk menyunting acara, jadi anda perlu menghalakan klien telefon atau desktop kepadanya dan melakukan penyuntingan di sana.
Penyuntingan dokumen melalui pelayar lebih sukar untuk diganti. OnlyOffice Docs dan Collabora Online kedua-duanya merupakan enjin penyuntingan, bukan storan: setiap satunya memerlukan aplikasi hos yang menyimpan fail dan menyerahkan dokumen untuk disunting. Jika anda membuang Nextcloud, anda memerlukan hos lain, seperti Seafile dengan penyunting SeaDoc miliknya sendiri. Perbandingan antara OnlyOffice dan Collabora merangkumi enjin mana yang patut dijalankan sebaik sahaja anda menentukan hos yang akan menggunakannya.
Kekal menggunakan Nextcloud jika mana-mana perkara berikut adalah benar
- Beberapa orang berkongsi satu kalendar dan satu buku alamat, pada akaun yang sama dengan fail.
- Anda menyunting dokumen pejabat dalam pelayar, pada fail yang sama, pada masa yang sama dengan orang lain.
- Anda memerlukan pautan perkongsian setiap fail dengan tarikh luput dan kata laluan, serta kebenaran kumpulan.
- Pengguna anda bukan teknikal, dan aplikasi mudah alih adalah apa yang mereka sebenarnya gunakan.
Untuk tugasan tersebut, tiada jawapan yang lebih ringan yang boleh melakukan kesemuanya, dan tindakan yang jujur adalah dengan membaiki pemasangan tersebut dan bukannya meninggalkannya. Kebanyakan instans yang perlahan menjalankan pool PHP-FPM lalai tanpa cache memori dikonfigurasikan, dan halaman gambaran keseluruhan pentadbir Nextcloud memberi amaran tentang cache yang hilang. Mengurangkan bilangan fail yang dijejak membantu lebih daripada sebarang perubahan tunggal yang lain, kerana jadual cache fail adalah perkara yang semakin membesar. Pemasangan Nextcloud pada VPS dengan Docker, TLS dan sandaran menyediakannya dengan cara yang mengelakkan kebanyakan masalah ini.
Kos sebenar migrasi, mengikut pilihan
- Syncthing: tiada import. Halakan ia ke pepohon (tree) yang sudah sedia ada pada kedua-dua belah pihak dan biarkan ia melakukan penyelarasan (converge).
- SFTP atau WebDAV melalui pepohon yang sama: tiada import langsung, kerana tiada fail yang dipindahkan.
- Storan objek: satu salinan rangkaian penuh, boleh disambung semula (resumable) dan boleh diskripkan, namun folder kosong tidak akan dipindahkan.
- Seafile: satu muat naik penuh ke dalam pustaka (libraries), kerana pelayan menyimpan blok dan bukannya fail.
Apa jua pilihan anda, dapatkan salinan bersih daripada Nextcloud terlebih dahulu. Fail pengguna disimpan di bawah direktori data dalam bentuk biasa, satu folder bagi setiap pengguna, jadi rsync pepohon tersebut adalah sumber anda. Letakkan instans dalam mod penyelenggaraan (maintenance mode) sebelum anda menyalin, jika tidak, anda akan menyalin fail yang sedang dalam proses penulisan.
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 -lBandingkan kiraan tersebut dengan find yang sama pada sumber. Kekurangan biasanya bermakna keizinan (permissions) menghalang rsync daripada membaca sesuatu, dan ia akan mencetak ralat tersebut semasa proses berjalan.
Terdapat dua perangkap dalam salinan tersebut. Fail yang dicapai melalui ciri storan luaran (external storage) Nextcloud tidak berada dalam direktori data langsung, kerana ia berada pada sistem jauh yang telah ditetapkan dalam Nextcloud. Selain itu, jika penyulitan sebelah pelayan (server-side encryption) pernah diaktifkan, fail pada cakera adalah dalam bentuk teks sifer (ciphertext), jadi occ encryption:decrypt-all perlu dijalankan sebelum penyalinan dilakukan, jika tidak, anda akan memindahkan folder yang mengandungi data yang tidak boleh dibaca. Periksa kedua-duanya sebelum anda membatalkan apa-apa.
FAQ
Adakah terdapat alternatif Nextcloud yang mengekalkan struktur folder sedia ada saya?
Syncthing, serta mana-mana persediaan SFTP atau WebDAV biasa. Syncthing mengindeks direktori yang anda tetapkan dan mengekalkan nama serta susun atur yang sama pada setiap peranti, jadi tiada langkah import atau muat naik diperlukan. Seafile dan storan objek kedua-duanya memerlukan satu proses muat naik penuh, kerana tiada satu pun daripadanya menyimpan data anda sebagai fail biasa dalam pepohon direktori biasa. Seafile memecahkan fail kepada blok di bawah direktori datanya, dan storan objek menggunakan kunci dan bukannya direktori.
Adakah Seafile boleh berjalan pada VPS 2 GB?
Dokumentasi Seafile memerlukan sekurang-kurangnya 2 GB RAM dan CPU 2 teras melebihi 2 GHz, setakat Ogos 2026. Anggap ini sebagai tahap minimum tanpa ruang tambahan, kerana penggunaan Docker juga menjalankan MariaDB, Caddy dan editor SeaDoc dalam kontena masing-masing. Untuk pengguna tunggal, ia boleh digunakan. Untuk isi rumah atau pasukan kecil, tingkatkan kepada 4 GB, atau keluarkan kontena SeaDoc daripada stack tersebut dan korbankan fungsi penyuntingan dokumen dalam pelayar.
Mengapakah antara muka web Nextcloud saya perlahan sedangkan kelajuan muat turun masih pantas?
Kerana kedua-dua laluan tersebut melakukan kerja yang berbeza. Muat turun menstrim bait daripada cakera, manakala pemuatan halaman menjalankan PHP, membuat pertanyaan pada jadual cache fail dan sering menunggu pekerja PHP-FPM yang bebas. Kira baris dalam oc_filecache dan semak pm.max_children dalam pool PHP-FPM anda sebelum menyalahkan storan. Jadual dengan berjuta-juta baris dan pool yang hanya mempunyai lima pekerja akan menghasilkan corak ini dengan tepat.
Bolehkah saya mengekalkan Nextcloud untuk kalendar dan memindahkan fail sahaja?
Ya, dan ini sering menjadi penyelesaian yang paling murah. Segerakkan folder besar anda dengan Syncthing atau Seafile, dan biarkan Nextcloud berjalan untuk CalDAV, CardDAV dan penyuntingan dokumen dalam pelayar. Memandangkan pangkalan data Nextcloud berkembang mengikut bilangan fail yang dijejakinya, membuang pepohon fail yang besar daripadanya adalah perkara yang menjadikan antara muka kembali pantas. Padamkannya melalui antara muka web atau occ, bukan daripada direktori data pada cakera, jika tidak, pangkalan data akan terus menyimpan baris yang merujuk kepada fail yang tidak lagi wujud.