Mewujudkan kedaulatan digital dengan Nextcloud
Latar belakang
Salah satu hal yang menghalangi saya untuk menggunakan Debian sepenuhnya untuk kegiatan sehari-hari adalah karena Google tidak menyediakan aplikasi Google Drive untuk Linux.
Pada akhirnya, saya nekat untuk mulai menggunakan Debian dan mulai migrasi pelan-pelan tentang apa yang bisa saya pindahkan dulu.
Ada dua solusi untuk menyelaraskan berkas-berkas di Google Drive ke komputer di Debian.
- Insync dengan harga $39.99, pembayaran satu kali untuk setiap akun.
rclone- Gratis. Perlu usaha untuk mengatur dan tidak berjalan otomatis di latar belakang. Saya membuat panduannya di sini.
Saya cukup nyaman menggunakan rclone karena prosesnya mudah, cukup jalankan perintah di terminal untuk menyelaraskan berkas-berkas. Sesuai dengan kebutuhan saya yang jarang memiliki perubahan berkas.
Kekurangannya adalah saya harus menjalankan perintah penyelarasan setiap menyalakan dan mematikan komputer agar data saya selalu selaras di perangkat lainnya 😅
Sebelumnya, saya pernah mendengar tentang Nextcloud. Waktu itu, saya belum tertarik untuk menggunakan karena saya pikir pemasangannya cukup ribet dan belum tahu kalau ada toko aplikasi untuk Nextcloud yang menyediakan berbagai layanan yang terintegrasi dengan Nextcloud.
Maasyaa' Allah, waktu itu ada promo VPS dari Sumopod dan saya ada proyek yang perlu demo sebelum go live, akhirnya sekalian saya coba kulik potensi Nextcloud untuk kebutuhan saya.
Simak panduan langkah demi langkah dan hasilnya pada artikel berikut.
Semoga bermanfaat 😊
Tujuan
Saya akan menggunakan Nextcloud untuk menyelaraskan hal-hal berikut:
- dokumen dan berkas
- kontak
- kalender
- tugas
- foto
- catatan Joplin
- kata sandi dan kode OTP
Hal-hal tersebut harus dapat diselaraskan dengan lancar di komputer dan ponsel saya.
Arsitektur
- VPS
- 2 vCPU
- 2GB RAM
- 20GB ruang penyimpanan
- Sistem operasi Debian 13
- Cloudflare sebagai pengelola domain
Kebutuhan server
Pada saat artikel ini dibuat, versi Nextcloud yang terbaru adalah versi 34.
Berikut adalah kebutuhan server untuk dapat menjalankan Nextcloud 34 dengan lancar, merujuk pada dokumentasi resmi Nextcloud:
- 512MB RAM
- Debian 13
- PostgreSQL 17
- Nginx dengan
php-fpm - PHP 8.4 dan ekstensi yang dibutuhkan:
- ctype
- curl
- DOM
- fileinfo
- GD
- imagick
- intl (recommended)
- mbstring
- OpenSSL
- pdo_pgsql
- redis
- session
- xml
- zip
- zlib
Persiapan
Sebelum memasang Nextcloud, kita perlu memasang dan mengatur PHP, web server, dan database.
Pasang PostgreSQL
sudo apt install postgresql-17
Setelah itu, buat pengguna dan database untuk aplikasi Nextcloud
sudo -u postgres psql
CREATE USER username WITH PASSWORD 'password' CREATEDB;
CREATE DATABASE nextcloud OWNER username TEMPLATE template0 ENCODING 'UTF8';
GRANT CREATE ON SCHEMA public TO username;
Pasang Nginx
sudo apt install nginx
Pasang PHP
Pasang PHP beserta ekstensi yang disarankan:
sudo apt install php-apcu \
php-cli \
php-curl \
php-fpm \
php-gd \
php-imagick \
php-intl \
php-mbstring \
php-mcrypt \
php-pgsql \
php-redis \
php-xml \
php-zip \
libmagickcore-7.q16-10-extra
Pasang Nextcloud

Saya memilih untuk memasang Nextcloud dengan cara mengunduh berkas server yang diarsipkan melalui perintah curl kemudian mengekstrak berkasnya dan menjalankan perintah pemasangan.
Ini adalah cara yang paling mudah, lebih hemat sumber daya server, dan memiliki dokumentasi yang lebih lengkap dibandingkan dengan cara yang lain.
Unduh Nextcloud
# tempat memasang Nextcloud
cd /var/www
# unduh Nextcloud
curl -L -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
# ekstrak berkas
unzip nextcloud.zip
# beri hak akses web ke direktori Nextcloud
chown -R www-data:www-data /var/www/nextcloud
Pasang Nextcloud
cd /var/www/nextcloud/
sudo -E -u www-data php occ maintenance:install \
--database 'pgsql' \
--database-name 'nextcloud' \
--database-user 'nextcloud' \
--database-pass 'nextcloud' \
--admin-user 'admin' \
--admin-pass 'super-strong-password'
Atur Nginx
Gunakan berkas pengaturan Nginx dari dokumentasi, simpan berkas di /etc/nginx/sites-available/nextcloud.domain.com.
Sesuaikan server_name dengan nama domain:
server {
listen 80;
listen [::]:80;
server_name cloud.example.com;
...
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# With NGinx >= 1.25.1 you should use this instead:
# listen 443 ssl;
# listen [::]:443 ssl;
# http2 on;
server_name cloud.example.com;
...
}
Karena pakai Nginx dan php-fpm, maka ubah isi php-handler menjadi:
# PHP-FPM backend.
upstream php-handler {
# Use one of the options below, not both:
#server 127.0.0.1:9000;
server unix:/var/run/php/php8.4-fpm.sock;
}
Nginx yang tersedia di Debian 13 adalah versi 1.26, jadi pastikan ubah juga bagian untuk mendengarkan di port 443.
server {
#listen 443 ssl http2;
#listen [::]:443 ssl http2;
# With NGinx >= 1.25.1 you should use this instead:
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
...
}
Pastikan pengaturan Nginx sudah benar dan muat ulang pengaturan Nginx untuk menerapkan perubahan.
# periksa pengaturan Nginx
nginx -t
# muat ulang untuk menerapkan perubahan
systemctl reload nginx
Atur domain
Setelah Nextcloud terpasang dan siap digunakan, sekarang saatnya pointing domain ke VPS.
Tambahkan A record di pengaturan DNS Cloudflare yang merujuk ke alamat IP publik VPS dan nyalakan bagian Proxy.

Buat sertifikat SSL. Pada pengaturan SSL/TLS > Origin Server, buat sertifikat baru untuk domain.

Simpan sertifikat SSL di server dan tambahkan jalur ke sertifikat SSL di pengaturan Nginx.
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
Pastikan pengaturan Nginx sudah benar dan muat ulang pengaturan Nginx untuk menerapkan perubahan.
# periksa pengaturan Nginx
nginx -t
# muat ulang untuk menerapkan perubahan
systemctl reload nginx
Tambahkan domain ke bagian trusted_domains di config.php:
'trusted_domains' => [
0 => 'localhost',
1 => '192.168.1.x', // Local IP
2 => 'cloud.example.com', // domain Anda
],
Masuk ke Nextcloud
Setelah pemasangan selesai, cobalah untuk masuk ke Nextcloud menggunakan peramban web dan menuju ke alamat domain Nextcloud Anda.

Health check

Hal pertama yang perlu dilakukan adalah memeriksa kesehatan Nextcloud di menu Pengaturan administrasi dari tombol profil di pojok kanan atas.
Cobalah untuk memperbaiki berdasarkan saran yang diberikan pada bagian Peringatan Keamanan & Pengaturan.
Muat ulang halaman Pengaturan administrasi setelah melakukan perbaikan. Jika pesan galat hilang, maka perbaikan berhasil diterapkan.
Berikut adalah kumpulan penyelesaian masalah dari peringatan yang muncul.
Batas memori PHP
Batas memori PHP berada di bawah nilai yang direkomendasikan sebesar 512 MB. Beberapa fitur atau aplikasi - termasuk Updater - mungkin tidak berfungsi dengan semestinya.
Ubah di /etc/php/8.4/fpm/php.ini.
; Maximum amount of memory a script may consume
; https://php.net/memory-limit
;memory_limit = 128M
memory_limit = 512M
Mulai ulang php-fpm untuk menerapkan perubahan.
systemctl restart php8.4-fpm.service
Mulai jendela pemeliharaan
Server tidak memiliki waktu mulai jendela pemeliharaan yang dikonfigurasi. Ini berarti job latar belakang harian yang intensif sumber daya juga akan dieksekusi selama waktu penggunaan utama Anda. Kami merekomendasikan untuk menyetelnya ke waktu penggunaan rendah, sehingga pengguna tidak terlalu terdampak oleh beban dari tugas berat ini.
Tambahkan cron untuk menjalankan program secara otomatis di latar belakang.
crontab -u www-data -e
# tambahkan baris berikut
*/5 * * * * php -f /var/www/nextcloud/cron.php
Migrasi mimetype tersedia
Satu atau lebih migrasi mimetype tersedia. Sesekali mimetype baru ditambahkan untuk menangani tipe file tertentu dengan lebih baik. Migrasi mimetype memerlukan waktu lama pada instans besar sehingga tidak dilakukan secara otomatis saat peningkatan versi. Gunakan perintah
occ maintenance:repair --include-expensiveuntuk melakukan migrasi tersebut.
Jalankan perintah occ tersebut:
# pergi ke direktori
cd /var/www/nextcloud
php occ maintenance:repair --include-expensive
Header HTTP
Beberapa header tidak disetel dengan benar pada instans Anda - Header HTTP
Strict-Transport-Securitytidak disetel (seharusnya setidaknya15552000detik). Untuk keamanan yang lebih baik, disarankan untuk mengaktifkan HSTS.
Nyalakan pengaturan HSTS di pengaturan Nginx /etc/nginx/sites-available/cloud.example.com.
# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains;" always;
Periksa perubahan dan muat ulang Nginx:
# periksa pengaturan
nginx -t
# muat ulang nginx
systemctl reload nginx
PHP getenv
PHP tidak disetel sesuai untuk melakukan kueri system environment variables. Pengujian dengan
getenv("PATH")hanya menghasilkan pesan kosong.
Ubah di berkas /etc/php/8.4/fpm/pool.d/www.conf
# hapus komentar bagian berikut
clear_env = no
## dan bagian ini
env[PATH] = /usr/local/bin:/usr/bin:/bin
Mulai ulang php-fpm untuk menerapkan perubahan:
systemctl restart php8.4-fpm.service
PHP opcache
Modul PHP OPcache tidak dikonfigurasi dengan benar. Buffer interned strings OPcache hampir penuh. Untuk memastikan string berulang dapat di-cache secara efektif, disarankan untuk menerapkan
opcache.interned_strings_bufferpada konfigurasi PHP Anda dengan nilai lebih tinggi daripada8.
Ubah nilainya di /etc/php/8.4/fpm/php.ini:
; The amount of memory for interned strings in Mbytes.
;opcache.interned_strings_buffer=8
opcache.interned_strings_buffer=16
Mulai ulang php-fpm untuk menerapkan perubahan:
systemctl restart php8.4-fpm.service
Modul PHP
Instans ini tidak memiliki beberapa modul PHP yang direkomendasikan. Untuk peningkatan kinerja dan kompatibilitas yang lebih baik, sangat disarankan untuk menginstalnya: - apcu - gmp diperlukan untuk penyimpanan SFTP dan direkomendasikan untuk kinerja WebAuthn
Pasang modul PHP yang hilang:
sudo apt install php-apcu
Pasang aplikasi
Beberapa kebutuhan saya tidak disediakan secara bawaan oleh Nextcloud seperti kalender, tugas, dan pengelola sandi Passman.
Oleh karena itu, kita perlu memasangnya sendiri dari menu Aplikasi.

Untuk memasang aplikasi, pilih aplikasi yang akan dipasang kemudian tekan tombol Aktifkan (icon centang).
Selaraskan ke perangkat
Setelah Nextcloud sudah dapat digunakan dan diakses melalui peramban web, sekarang saatnya kita menyelaraskan data ke komputer dan ponsel.
Komputer
Aplikasi desktop Nextcloud sudah tersedia di repositori Debian 13 dan kita dapat memasangnya langsung dengan perintah:
sudo apt install nextcloud-desktop
Masuk ke akun Nextcloud yang sudah dibuat dan berkas-berkas akan diselaraskan secara otomatis.
Setelah terpasang, Nextcloud akan berjalan di latar belakang dan otomatis berjalan setiap kali kita menyalakan komputer.
Kita dapat mengakses antarmuka Nextcloud dari icon di menu atau dari daftar aplikasi.

Sayangnya, akun Nextcloud tidak terintegrasi dengan Akun Daring GNOME. Jadi, kita harus login lagi kalau ingin mengelola kontak, kalender, atau tugas dari aplikasi GNOME. Karena saya tidak mengelola hal-hal tersebut dengan aplikasi GNOME, jadi, ini bukan masalah yang serius untuk saya.
Foto
Kita dapat mengatur direktori tempat menyimpan foto di Nextcloud yang diselaraskan di komputer kita sebagai lokasi pustaka dengan Shotwell.

Catatan Joplin
Pilih Nextcloud sebagai sasaran penyelarasan dan masukkan akun Nextcloud.
Kata sandi dan kode OTP
Unduh ekstensi Passman untuk peramban web Anda. Tersedia untuk Firefox, Chrome, dan Safari.
Ponsel
Untuk menyelaraskan berkas di ponsel, kita dapat mengunduh aplikasi Nextcloud dari Google Play, App Store, atau F-Droid.
Untuk menyelaraskan kontak, kalender, dan tugas, kita perlu menggunakan DAVx5. Aplikasi ini memiliki dua versi:
- gratis: melalui F-Droid.
- berbayar: Rp. 99rb melalui Play Store, Huawei AppGallery, dan Samsung Galaxy Store.
Masuk ke aplikasi Nextcloud dan DAVx5 dengan akun Nextcloud untuk mulai menyelaraskan berkas, kontak, kalender, dan tugas.
DAVx5 hanya bertugas sebagai penyelaras data saja dan terintegrasi dengan baik dengan sistem Android untuk menyelaraskan kontak. Untuk menyelaraskan kalender dan tugas, kita perlu memasang aplikasi yang dapat terhubung ke server Nextcloud kita.
iOS Penyelarasan ke iOS dapat dilakukan secara manual. Silakan baca panduannya di sini.
Kalender
Nextcloud Calendar dari Google Play dan Etar dari F-Droid dapat digunakan untuk menyelaraskan kalender.
Tugas
Kita dapat menggunakan aplikasi Nextcloud Task dari Google Play atau Tasks.org dari F-Droid untuk menyelaraskan tugas.
Foto
Foto di ponsel akan diunggah ke server Nextcloud. Pengaturan untuk mengelola album apa saja yang akan diunggah dapat ditemukan di menu Pengaturan > Sinkron > Unggah otomatis.
Catatan Joplin
Pilih Nextcloud sebagai sasaran penyelarasan dan masukkan akun Nextcloud.
Kata sandi dan kode OTP
Unduh Passman dari Google Play atau F-Droid. Nyalakan Passman sebagai layanan pengisi otomatis (Credential Autofill Service) dari Pengaturan > Sandi dan akun > Layanan pilihan.
Hasil pengujian penggunaan Passman di Android:
- Kita harus menggunakan URL lengkap termasuk subdomain dan port agar pengisi otomatis dapat mengisi form dengan benar.
- Belum mendukung beberapa URL di satu akun.
- Hanya untuk masuk ke situs web. Isi otomatis ke aplikasi Android belum didukung. Mungkin ada beberapa, tapi sejauh yang saya coba, belum ada.
Kesimpulan
Setelah mencoba solusi ini selama sekitar satu bulan untuk menguji seberapa bagus dan lancar solusi ini serta apa saja yang menjadi kendalanya, dapat saya simpulkan bahwa saya puas dengan hasilnya karena telah mencukupi kebutuhan saya.
Cukup dengan berlangganan satu VPS, saya dapat menghemat pengeluaran untuk berlangganan layanan lainnya.
| Kebutuhan | Layanan | Harga | Nextcloud | Harga |
|---|---|---|---|---|
| Server | 0 | VPS | 40rb | |
| Selaraskan berkas | Google Drive | 0 | Nextcloud | 0 |
| Selaraskan kontak | Google Contacts | 0 | Nextcloud Contacts | 0 |
| Selaraskan kalender | Google Calendar | 0 | Nextcloud Calendar | 0 |
| Selaraskan tugas | Google Tasks | 0 | Nextcloud Task | 0 |
| Selaraskan foto | Google Photos | 0 | Nextcloud | 0 |
| Selaraskan catatan Joplin | Joplin Cloud, Dropbox | 60rb/0 | Nextcloud | 0 |
| Selaraskan kata sandi dan kode OTP | Bitwarden | 40rb | Passman | 0 |
| Total | - | 100rb/40rb | - | 40rb |
Jika kita tidak keberatan dengan usaha untuk memasang dan mengatur, serta merasa cukup dengan fitur yang sederhana, saya rasa solusi ini masih layak untuk digunakan.
Dari sini, saya mengambil kesimpulan bahwa untuk mewujudkan kedaulatan digital memang tidak mudah dan butuh biaya yang tidak murah. Menggunakan solusi berbayar jauh lebih hemat waktu, tenaga, dan biaya.
Usahakan untuk selalu punya cadangan dan rutin melakukannya. Dengan begitu, kita bisa lebih leluasa untuk berpindah layanan cloud jika sudah mulai tidak sesuai dengan kebutuhan kita.
Tujuan utamanya adalah kita yang pegang kendali atas data kita. Jangan sampai terkunci di satu penyedia layanan.
Catatan
- Penggunaan CPU sangat minim dan RAM yang terpakai cukup stabil di kisaran 700MB.
- Ruang penyimpanan efektif sekitar 15GB dari total 20GB. Sama seperti versi gratis dari Google dengan asumsi 5GB digunakan untuk sistem operasi Debian.
- Harga VPS 40rb adalah harga ketika ada promo. Harga di luar promo mulai Rp. 55rb per bulan pada saat artikel ini dibuat.