Alternatif Dropbox Self-Hosted: Nextcloud vs Seafile
Bandingkan Nextcloud, Seafile, Syncthing, dan object storage berdasarkan topologi sinkronisasi, biaya di VPS kecil, serta alasan sinkronisasi bukan backup.
Alternatif Dropbox self-hosted apa yang sebaiknya Anda jalankan?
Empat alternatif Dropbox self-hosted layak dipertimbangkan: Nextcloud, Seafile, Syncthing, dan object storage dengan client di atasnya. Keempatnya tidak dapat saling menggantikan. Nextcloud cocok untuk rumah tangga atau tim kecil yang perlu menerima file dari orang lain. Seafile cocok untuk individu atau tim yang menyinkronkan sangat banyak file kecil, ketika kecepatan sinkronisasi lebih penting daripada bentuk data pada disk. Syncthing cocok untuk satu orang yang menyinkronkan perangkat miliknya sendiri, ketika tidak ada orang di luar yang memerlukan link. Object storage cocok untuk arsip: byte murah yang jarang dibuka.
Tentukan cara kerja sinkronisasi sebelum membandingkan fitur. Daftar fitur biasanya terlihat sama. Topologi, yaitu mesin yang menyimpan salinan yang menjadi acuan semua mesin lain, menentukan apakah Anda masih merasa puas setelah enam bulan.
Topologi sinkronisasi: server otoritatif atau peer tanpa server
Ada dua desain yang dapat dipilih, dan sebagian besar pembahasan berikut bergantung pada pilihan tersebut.
Server otoritatif. Nextcloud, Seafile, dan object storage bekerja dengan cara ini. Satu mesin, biasanya VPS (virtual private server), menyimpan salinan otoritatif. Setiap perangkat berkomunikasi dengan mesin tersebut. Laptop Anda dapat dimatikan selama sebulan, lalu mengejar ketertinggalan secara otomatis saat digunakan kembali. Ponsel dengan ruang kosong 6 GB dapat menyimpan sebagian data, sementara server menyimpan semuanya. Browser dapat mengakses file, sehingga share link dapat dibuat.
Peer tanpa server. Syncthing bekerja dengan cara ini. Perangkat saling menemukan dan bertukar daftar file secara langsung melalui koneksi terenkripsi. Tidak ada salinan yang otoritatif: file hanya ada pada perangkat yang menyimpannya. Dua perangkat harus online pada waktu yang sama agar perubahan dapat diteruskan di antara keduanya. Tidak ada URL yang dapat Anda berikan kepada orang lain, karena tidak ada mesin yang menyajikan halaman.
Empat konsekuensi berikut biasanya baru disadari kemudian.
- Mengirim file kepada orang yang tidak mau menginstal software memerlukan server otoritatif. Link adalah URL, dan URL memerlukan proses yang listening pada sebuah port.
- Mengakses file dari mesin yang tidak Anda kendalikan, misalnya laptop kantor, memerlukan server otoritatif.
- Perangkat yang dimatikan selama beberapa minggu dapat mengejar ketertinggalan dari server setiap kali kembali aktif. Dalam konfigurasi peer, perangkat tersebut hanya dapat mengejar ketertinggalan saat perangkat lain yang menyimpan data tersebut juga online. Karena itu, banyak pengguna Syncthing menjalankan satu instance pada VPS sebagai peer yang selalu online.
- Penggunaan storage bertambah dengan cara yang berbeda. Server otoritatif menyimpan satu salinan lengkap, ditambah data yang disimpan secara lokal oleh setiap perangkat. Empat peer yang berbagi satu folder menyimpan empat salinan lengkap, karena setiap peer menyimpan seluruh folder.
Nextcloud: pengguna, grup, dan tautan publik
Nextcloud adalah aplikasi web PHP. Aplikasi ini menyimpan file Anda sebagai file biasa dalam direktori data dan mencatatnya dalam database. Anda dapat membagikan folder kepada pengguna, grup, atau melalui tautan publik yang dilindungi kata sandi dan memiliki tanggal kedaluwarsa. Riwayat versi aktif secara default, dan file yang dihapus terlebih dahulu dipindahkan ke tempat sampah. Klien desktop tersedia untuk Linux, macOS, dan Windows, sedangkan aplikasi iOS dan Android bersifat resmi. Jika alasan Anda meninggalkan Dropbox adalah karena orang lain perlu menerima file Anda, inilah jawabannya.
Konsekuensinya adalah banyaknya komponen yang harus dikelola. Instalasi normal menjalankan web server, PHP-FPM (manajer proses PHP), database seperti MariaDB atau PostgreSQL, dan Redis untuk penguncian file. Pekerjaan latar belakang berjalan setiap lima menit melalui cron atau timer systemd. Pada VPS 1 GB, Nextcloud akan mulai berjalan, tetapi unggahan besar atau perintah pemeliharaan occ yang berlangsung lama dapat memicu out-of-memory killer. Anggap 2 GB sebagai kapasitas minimum untuk beberapa pengguna, dan perkirakan Anda akan membutuhkan 4 GB setelah mengaktifkan lebih banyak aplikasi. Konsekuensi lainnya adalah upgrade: aplikasi dari app store dibuat untuk release core tertentu. Karena itu, periksa apakah aplikasi yang Anda andalkan mendukung versi mayor berikutnya sebelum melakukan upgrade.
Nextcloud melambat ketika satu akun menyimpan ratusan ribu file kecil. Setiap file menjadi satu baris dalam tabel cache file dan satu file nyata di disk, sementara klien desktop memprosesnya satu per satu. Pada skala rumah tangga, masalah ini biasanya tidak muncul. Pembahasan tentang sizing, TLS (keamanan lapisan transport), dan backup tersedia di instalasi Nextcloud berbasis Docker dengan TLS dan backup. Buka panduan tersebut setelah Anda memutuskan untuk menggunakan Nextcloud.
Perhatikan juga cakupan penggunaannya. Nextcloud dapat menjalankan kalender, kontak, catatan, dan pustaka foto. Setiap aplikasi yang Anda aktifkan menambah pekerjaan latar belakang dan satu hal lain yang dapat menghambat upgrade. Jika masalah sebenarnya adalah foto, alat khusus akan menanganinya dengan lebih baik: lihat Immich sebagai pengganti Google Photos yang di-host sendiri. Jika masalah sebenarnya adalah dokumen dan wiki, lihat alternatif Notion yang di-host sendiri daripada menumpuk aplikasi pada file server Anda. Mengedit dokumen tersebut di browser memerlukan server terpisah, bukan sekadar aplikasi Nextcloud. Karena itu, bandingkan OnlyOffice dengan Collabora sebelum menganggap kapasitas minimum 2 GB masih mencukupi.
Seafile: dirancang untuk jumlah file kecil yang sangat besar
Seafile membagi setiap file menjadi beberapa blok dan menyimpannya dalam object store internal yang dialamatkan berdasarkan content hash. Konsepnya sama seperti objek yang digunakan git. Unit sinkronisasi dan berbagi adalah library, bukan struktur folder. Karena client mengunggah blok dan satu commit, bukan satu request untuk setiap file, sinkronisasi direktori yang berisi 100,000 file kecil selesai jauh lebih cepat daripada yang dapat dicapai oleh protokol per-file. Blok yang identik hanya disimpan satu kali, sehingga salinan kedua dari file berukuran besar hampir tidak menambah penggunaan penyimpanan.
Konsekuensinya, file Anda di server tidak lagi berupa file biasa. Buka direktori penyimpanan tersebut dan Anda akan menemukan object file dengan nama heksadesimal. Untuk mengambil data, Anda memerlukan client Seafile atau tool export dan fsck milik Seafile. Backup tetap dapat dilakukan karena object tersebut adalah file biasa, tetapi Anda tidak dapat memulihkan satu spreadsheet dengan cp. Tentukan sekarang apakah hal itu dapat diterima, karena inilah karakteristik yang sering disesali pengguna di kemudian hari.
Seafile menyediakan community edition dan paid professional edition. Pembagian fitur di antara keduanya dapat berubah pada setiap release, jadi baca ketentuan terbaru di situs mereka sebelum merencanakan penggunaan tim berdasarkan fitur tertentu. Client desktop dan mobile resmi tersedia. Library terenkripsi dienkripsi pada client, sehingga server menyimpan ciphertext yang tidak dapat dibaca oleh server. Jika passphrase hilang, library tersebut tidak dapat dibaca, termasuk oleh Anda. Membuka library terenkripsi di browser berarti memberikan passphrase tersebut kepada web session, sehingga jaminan keamanan terkuat berlaku pada client desktop dan mobile.
Kebutuhan resource-nya mendekati Nextcloud. Anda menjalankan database, memory cache, dan dua proses aplikasi, sehingga 2 GB kembali menjadi batas minimum yang masuk akal.
Syncthing: tidak perlu login
Syncthing adalah satu biner Go. Syncthing memantau folder, menemukan peer melalui server discovery atau relay, lalu menyinkronkan data secara langsung antarperangkat. Tidak ada akun dan tidak ada halaman login untuk orang yang menerima sinkronisasi dari Anda. Anda memasangkan dua perangkat berdasarkan ID, lalu menerima folder pada masing-masing perangkat. Syncthing adalah aplikasi yang paling mudah dijalankan di antara semua opsi di sini karena komponen yang perlu dikelola sangat sedikit.
Sebagai gantinya, Anda kehilangan seluruh fitur berbagi. Entri fiturnya berbunyi Device pairing only, no links. Anda tidak dapat memberikan tautan kepada klien, akuntan, atau anggota keluarga. Dukungan perangkat mobile adalah kekurangan lainnya: Android app, no official iOS. FAQ resmi proyek ini menyatakannya secara jelas: "There are no plans by the current Syncthing team to officially support iOS in the foreseeable future", karena iOS membatasi pemrosesan di latar belakang sehingga sinkronisasi yang andal sulit dilakukan. Pengguna iOS harus menggunakan aplikasi pihak ketiga.
Penggunaan resource rendah, tetapi ada satu hal yang perlu diketahui. Syncthing menyimpan entri indeks untuk setiap file yang disinkronkan. Karena itu, penggunaan memori dan durasi pemindaian pertama bertambah berdasarkan jumlah file, bukan ukuran totalnya. Saat pertama kali melakukan hashing pada folder besar, CPU akan digunakan selama beberapa waktu, lalu beban akan stabil. Syncthing tetap nyaman dijalankan pada paket VPS terkecil.
Konflik ditangani dengan mempertahankan kedua versi. Jika dua perangkat mengubah file yang sama saat keduanya tidak dapat saling terhubung, Syncthing mengganti nama salah satu salinan dan menyimpannya di samping salinan lainnya. Anda akan menemukan file seperti notes.sync-conflict-20260802-141530-K7MB3QT.md. Tidak ada data yang hilang. Namun, tidak ada penggabungan otomatis. Anda harus menyelesaikan konflik tersebut secara manual.
Object storage dengan client: penyimpanan murah, bukan folder sinkronisasi
Object storage berarti bucket yang kompatibel dengan S3 (simple storage service), baik yang di-host sendiri menggunakan MinIO maupun yang disewa dari provider. Anda mengaksesnya menggunakan tool: rclone dari command line, atau client desktop yang menampilkan bucket sebagai drive. Berbagi dilakukan melalui presigned URL, yaitu link yang Anda buat dan memiliki waktu kedaluwarsa sendiri. Versioning adalah pengaturan bucket: Bucket versioning, off by default, jadi aktifkan saat membuat bucket karena pengaturan ini tidak berlaku untuk object yang diunggah sebelumnya.
Masalah muncul ketika bucket diperlakukan sebagai folder sinkronisasi. Secara default, tidak ada proses yang memantau direktori Documents Anda. rclone bisync melakukan sinkronisasi dua arah, dan dokumentasi rclone sendiri menjelaskan bahwa fitur ini memerlukan penanganan yang cermat. Object storage sangat baik digunakan sebagai lapisan dasar: target backup atau lapisan penyimpanan untuk aplikasi. Object storage yang kompatibel dengan S3 dan di-host sendiri menggunakan MinIO membahas sisi servernya.
Biaya resource dalam kasus ini berbeda. MinIO hanya terdiri dari satu binary dan menggunakan sedikit resource saat idle. Biaya yang sebenarnya Anda bayarkan adalah disk, yang pada VPS berarti block volume yang disewa berdasarkan gigabyte, ditambah bandwidth untuk memindahkan object masuk dan keluar. Keduanya tidak tercatat dalam free -h, jadi baca biaya VPS sebenarnya per bulan sebelum menentukan ukuran arsip.
Perbandingan berbagi, klien seluler, dan pembuatan versi
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"
}
]Semua 4 opsi terbagi berdasarkan satu kriteria. Tiga di antaranya dapat memberikan file kepada orang asing yang hanya memiliki browser. Satu opsi hanya berkomunikasi dengan perangkat yang sudah Anda miliki. Entri pembuatan versi Seafile, Library history and snapshots, perlu diperhatikan: riwayat disimpan per pustaka, sehingga penghapusan pustaka juga menghapus riwayatnya.
Mendapatkan kembali data Anda
Biaya untuk keluar mudah diperiksa sekarang, tetapi mahal jika baru diketahui kemudian. Karena itu, periksa sebelum Anda berkomitmen.
Nextcloud menyimpan file aktual di direktori aktual. Dengan tar pada direktori data, Anda tetap mendapatkan dokumen meskipun aplikasi tidak pernah dapat dijalankan lagi. Syncthing melakukan hal yang sama pada setiap peer. Ini merupakan opsi keluar terkuat karena file hanya tersimpan di setiap perangkat. Penyimpanan objek Seafile memerlukan Seafile atau alat ekspornya untuk menyusun kembali blok menjadi file. Penyimpanan objek memerlukan rclone atau alat yang setara, yang dapat digunakan dengan satu perintah.
Sinkronisasi bukan cadangan, dan celah inilah yang menyebabkan orang kehilangan data
Setiap alat di sini menyalin perubahan antar-mesin. Penghapusan adalah perubahan. Hapus sebuah folder di laptop Anda, lalu client memberi tahu server, server menerapkannya, dan setiap perangkat lain juga menghapusnya. Ransomware menggunakan jalur yang sama: ransomware mengenkripsi file secara lokal, client melihat file yang berubah, lalu mengunggah versi terenkripsi tersebut. Sinkronisasi berjalan dengan benar. Data Anda tetap hilang.
Tempat sampah dan riwayat versi dapat mengurangi dampaknya. Namun, keduanya juga dapat kedaluwarsa, dapat dikosongkan oleh account yang sama dengan account yang melakukan kesalahan, dan berada pada disk yang sama dengan salinan aktif. Kegagalan volume membuat file dan riwayatnya hilang secara bersamaan.
Cadangan adalah salinan terpisah pada perangkat keras terpisah, yang dibuat sesuai jadwal dan setidaknya pernah Anda pulihkan satu kali. Cadangkan database dalam proses yang sama dengan file. Memulihkan direktori data Nextcloud tanpa database menghasilkan instance yang tidak mengetahui keberadaan file tersebut, dan occ files:scan setelahnya memulihkan file tetapi menghilangkan share dan riwayat versi yang tersimpan dalam tabel tersebut. Cadangan restic terjadwal dari VPS membahas versi terenkripsi dan dideduplikasi dari pendekatan ini, termasuk cara menguji pemulihan, bukan sekadar menganggapnya berhasil.
Yang akan saya pilih
Nextcloud, bagi sebagian besar pembaca. Setelah meninggalkan Dropbox, hal yang biasanya dirindukan adalah memberikan tautan kepada seseorang yang tidak akan pernah memasang aplikasi apa pun, lalu membuka file pada ponsel. Nextcloud menyediakan kedua fungsi tersebut melalui client resmi tanpa tier berbayar, dan kebutuhan RAM sebesar 2 GB merupakan biaya yang wajar untuk mendapatkannya. Saya berpegang pada 2 pengecualian. Jika folder tersebut hanya akan digunakan oleh Anda dan selalu berada pada hardware milik Anda sendiri, jalankan Syncthing. Anda tidak perlu menambal server atau mengamankan login web. Jika Anda menyinkronkan direktori kerja yang berisi ratusan ribu file, jalankan Seafile dan terima penyimpanan yang tidak transparan sebagai imbalan atas kecepatannya. Object storage sebaiknya ditempatkan di bawah pilihan Anda sebagai target backup, bukan di depannya sebagai alat sinkronisasi.
FAQ
Apakah Syncthing merupakan cadangan untuk laptop saya?
Tidak. Syncthing menyalin perubahan antarperangkat, dan penghapusan merupakan perubahan seperti perubahan lainnya. Karena itu, file yang terhapus secara tidak sengaja akan hilang dari setiap perangkat yang dipasangkan dalam hitungan detik. Pembuatan versi file per folder dapat membantu, tetapi fitur ini nonaktif sampai Anda mengaktifkannya pada setiap folder. Simpan cadangan yang sebenarnya pada perangkat keras terpisah, lakukan pencadangan sesuai jadwal, lalu pulihkan cadangan tersebut sekali untuk memastikan proses pemulihan berfungsi.
Dapatkah saya menjalankan Nextcloud dan Syncthing pada VPS yang sama?
Ya. Keduanya mendengarkan pada port yang berbeda dan tidak saling konflik. Jangan arahkan folder Syncthing ke direktori data Nextcloud. Nextcloud melacak setiap file dalam database, sehingga file yang muncul di disk di bawah direktori tersebut tetap tidak terlihat sampai Anda menjalankan occ files:scan, sedangkan file yang dihapus dari bawah direktori tersebut meninggalkan baris database yang menunjuk ke file yang sudah tidak ada. Berikan direktori khusus untuk Syncthing, atau tambahkan direktori tersebut ke Nextcloud sebagai penyimpanan eksternal agar Nextcloud mengetahui bahwa direktori itu harus diperiksa.
Mana yang memungkinkan saya membagikan tautan kepada seseorang yang tidak memiliki akun?
Nextcloud dan Seafile sama-sama dapat membuat tautan publik, dengan opsi kata sandi dan tanggal kedaluwarsa. Object storage menyediakan presigned URL yang berhenti berfungsi secara otomatis setelah waktu yang Anda tetapkan tercapai. Syncthing tidak menyediakan fitur untuk kebutuhan ini. Model berbagi Syncthing menggunakan pemasangan perangkat. Jadi, orang tersebut harus menginstal Syncthing, memberikan device ID kepada Anda, lalu menerima folder tersebut.
Berapa banyak ruang disk yang diperlukan server?
Untuk server yang menjadi sumber data utama, siapkan ruang sebesar seluruh data yang dibagikan, ditambah ruang untuk riwayat versi dan trash, serta ruang kerja untuk upload yang sedang berlangsung. Riwayat versi sering diremehkan. Menyimpan setiap versi file berukuran 2 GB yang berubah setiap hari akan menghabiskan ruang dengan cepat, jadi tetapkan kebijakan retensi sejak awal. Menempatkan data pada volume terpisah mencegah pertumbuhannya memenuhi filesystem root. Jika disk penuh, seluruh server dapat berhenti berfungsi, bukan hanya satu upload.