24 Agustus 2026

Nextcloud dan Pemisahan Data dari Layanan Pihak Ketiga

Catatan penerapan Nextcloud untuk memisahkan berkas pribadi dari layanan cloud komersial: arsitektur aplikasi dan database, deployment Docker Compose, praktik backup, hingga keterbatasan di homeserver satu mesin.

Penyimpanan cloud komersial menawarkan kenyamanan, tetapi konsekuensinya jarang dibahas: berkas pribadi berada di infrastruktur milik pihak ketiga, tunduk pada syarat layanan dan kebijakan yang tidak bisa dikontrol. Nextcloud adalah jawaban yang sering dipilih untuk memutus ketergantungan ini—pusat penyimpanan berkas, sinkronisasi antar perangkat, dan kolaborasi yang berjalan di server milik sendiri.

Mengapa memisahkan data dari layanan pihak ketiga

Di ekosistem server mandiri, Nextcloud memberikan alternatif pribadi untuk layanan cloud komersial. Berkas tersimpan sepenuhnya di server sendiri tanpa mengorbankan aksesibilitas mobile maupun web UI, dan model bisnis penyedia cloud yang mengandalkan analisis atau penjualan data tidak lagi relevan.

Nextcloud menangani dua kebutuhan utama:

  • Sinkronisasi Berkas: Menyelaraskan dokumen, foto, dan data antar laptop, smartphone, dan server secara otomatis.
  • Berbagi Data: Menyediakan tautan publik atau berbagi folder internal secara aman dengan kontrol hak akses.

Arsitektur: Aplikasi, Database, dan WebDAV

Nextcloud berjalan sebagai dua komponen utama:

  1. Aplikasi Nextcloud (PHP/Apache): Menangani logika aplikasi, antarmuka web, dan protokol sinkronisasi.
  2. Database (MariaDB/PostgreSQL): Menyimpan metadata berkas, akun pengguna, izin akses, dan riwayat aktivitas.

Berkas fisik disimpan di data directory di dalam direktori instalasi, bukan di database. Database hanya mencatat metadata yang menghubungkan akun, folder, dan file. Karena pemisahan ini, backup tidak bisa hanya menyalin salah satu bagian.

Sinkronisasi klien desktop dan mobile berjalan lewat WebDAV pada endpoint https://example.com/nextcloud/remote.php/dav/files/USERNAME/. Protokol ini juga memungkinkan folder Nextcloud di-mount langsung dari file manager, sehingga akses tidak terbatas pada aplikasi resmi.

Deployment dengan Docker Compose

Setup minimal terdiri dari kontainer aplikasi dan database:

services:
  db:
    image: mariadb:11.4
    container_name: nextcloud_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ganti_password_root
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nc_user
      MYSQL_PASSWORD: ganti_password_user
    volumes:
      - ./db_data:/var/lib/mysql

  app:
    image: nextcloud
    container_name: nextcloud_app
    restart: always
    ports:
      - "8080:80"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nc_user
      MYSQL_PASSWORD: ganti_password_user
    volumes:
      - ./nextcloud_data:/var/www/html
    depends_on:
      - db

Volume ./nextcloud_data:/var/www/html menampung kode aplikasi sekaligus data directory, sehingga keduanya ikut tercadangkan bersama. Port database tidak dibuka ke host; db hanya bisa diakses dari dalam jaringan Docker internal.

Keamanan dan Operasional

  • HTTPS Wajib: Letakkan Nextcloud di belakang reverse proxy (seperti Cloudflare Tunnel atau Nginx Proxy Manager) dengan SSL/TLS aktif. Tanpa TLS, kredensial dan berkas yang lewat jaringan bisa terbaca.
  • Jangan ekspos database: Biarkan komunikasi database berjalan di dalam bridge network Docker, jangan pernah mempublikasikan port MariaDB ke publik.
  • Server-side encryption (opsional): Enkripsi at-rest bisa diaktifkan dari halaman admin. Konsekuensinya tegas: jika kunci enkripsi hilang, data tidak bisa didekripsi lagi; file juga menjadi sekitar 1% lebih besar. Aktifkan hanya setelah memahami risiko ini.
  • occ CLI: Perintah maintenance seperti maintenance mode dijalankan sebagai user HTTP, misalnya sudo -E -u www-data php occ maintenance:mode --on.

Backup dan Pemulihan

Konsistensi antara berkas fisik dan database adalah kunci pemulihan. Menyalin berkas data tanpa dump database—atau sebaliknya—akan menghasilkan metadata yang tidak cocok dengan isi file.

Urutan backup yang direkomendasikan dokumentasi resmi:

  1. Aktifkan maintenance mode (occ maintenance:mode --on) untuk mengunci sesi dan mencegah perubahan data selama proses.
  2. Salin direktori instalasi beserta data directory, misalnya dengan rsync, ke lokasi di luar lingkungan Nextcloud.
  3. Dump database, mysqldump --single-transaction untuk MySQL/MariaDB.
  4. Matikan maintenance mode (occ maintenance:mode --off) setelah selesai.

Perlu dicatat: backup di mesin yang sama tetap satu failure domain. Ia melindungi dari kesalahan konfigurasi, tapi tidak dari kehilangan seluruh mesin.

Kontra dan Keterbatasan

Pemisahan dari pihak ketiga tidak gratis:

  • Tanggung jawab operasional pindah ke tangan sendiri. Upgrade, pemantauan kapasitas disk, dan perbaikan database menjadi tugas rutin yang sebelumnya ditanggung penyedia cloud.
  • Backup tidak otomatis. Konsistensi berkas dan database harus dijaga manual dengan disiplin, berbeda dengan cloud komersial yang backup-nya dikelola penyedia.
  • Enkripsi at-rest bukan default dan menambah risiko kehilangan kunci; untuk sebagian besar kasus, HTTPS dan kontrol atas server sudah memenuhi kebutuhan dasar.
  • Kolaborasi dokumen real-time (editing bersama di browser) membutuhkan komponen server dokumen terpisah seperti Collabora Online atau OnlyOffice, yang menambah footprint resource.
  • Satu mesin, satu failure domain. Hardware rusak berarti semua data hilang kecuali ada salinan off-site.
  • Skala terbatas. Konfigurasi bawaan cukup untuk pemakaian pribadi atau kelompok kecil; banyak pengguna konkuren membutuhkan penyetelan tambahan yang tidak trivial.

Kesimpulan

Nextcloud berhasil memisahkan data dari layanan pihak ketiga: berkas, metadata, dan kontrol akses berada di server sendiri, dengan sinkronisasi dan berbagi yang setara cloud komersial. Konsekuensinya, tanggung jawab ketersediaan dan backup ikut pindah ke pemilik server. Di konteks satu mesin dengan storage terbatas, disiplin backup dan pemantauan kapasitas lebih menentukan daripada fitur—Nextcloud bukan pengganti kebiasaan backup yang baik, melainkan tempat menyimpan data yang memang seharusnya dipegang sendiri.

Referensi