Selasa pagi, setengah sepuluh kurang sedikit. Aku cuma mau mengecek sisa kuota Google Drive lewat terminal, perintah yang sudah kujalankan puluhan kali: rclone about gdrive:. Biasanya keluar empat baris angka dan selesai. Pagi itu ada satu baris tambahan di paling atas:
NOTICE: gdrive: This remote uses rclone's shared Google Drive client_id,
which is being retired and will stop working during 2026.
Create your own client_id to avoid interruption.
Kalimat “will stop working” itu yang bikin aku berhenti. Backup otomatisku bergantung ke remote itu, dan aku punya dua remote Google Drive di rclone. Kalau salah satunya mati diam-diam, aku baru sadar saat butuh file yang ternyata tidak pernah terbackup. Jadi pagi itu juga aku mulai membenahinya. Sebelum jam sebelas, kedua remote sudah beres, dan perjalanannya lebih berliku dari yang kukira.
Kenapa Client ID Bawaan rclone Dipensiunkan
Aku sempat mengira ini cuma gara-gara versi rclone yang sudah tua. Ternyata bukan. Setelah mencari-cari, alasannya ada di forum resmi rclone: Google memberi tahu tim rclone bahwa Google akan mulai menarik biaya untuk request API yang lewat client ID bawaan rclone, baik untuk Google Drive maupun Google Photos. Jadwalnya “later in 2026”, setelah pemberitahuan 90 hari.
Masalahnya ada di kata “bawaan”. Client ID itu dipakai bersama oleh ribuan pengguna rclone di seluruh dunia, jadi semua request mereka menumpuk di satu project Google. Totalnya jauh melewati kuota gratis. Karena rclone tidak mungkin menanggung tagihan itu, client ID bersama tersebut dipensiunkan, dan setiap pengguna diminta membuat client ID sendiri supaya kuotanya terpisah per orang.
Satu hal yang membuatku agak lega: maintainer rclone sendiri bilang mereka ingin sekali mengotomatiskan pembuatan client ID, tapi Google belum menyediakan API publik untuk membuat OAuth client tipe Desktop. Jadi memang harus manual lewat Cloud Console, dan bukan karena aku yang kurang paham.
Pertanyaan Pertama: Jadi Aku Harus Bayar?
Ini yang pertama kutanyakan, karena kata “charge” di forum itu bikin curiga. Kalau memakai client ID sendiri, apa aku ditagih Google?
Jawabannya, setelah membaca halaman kuota Drive API milik Google: semua pemakaian standar Drive API gratis. Yang direncanakan kena biaya (ke billing account Google Cloud) adalah kalau kuota request terlampaui, mulai akhir 2026. Kuotanya longgar untuk satu orang: 1.000.000 unit per menit per project, dan 325.000 unit per menit per user per project. Satu request list memakan 100 unit dan satu download 200 unit. Backup rutin pribadi tidak akan mendekati angka itu.
Satu catatan jujur: detail tarifnya belum kutemukan tertulis di mana pun, jadi aku menulis ini sebagai “hampir pasti aman”, bukan jaminan. Kalau project tidak ditautkan ke billing, kelebihan kuota biasanya cuma berujung error, bukan tagihan. Itu perkiraanku dari cara kerja Google Cloud, bukan hal yang tertulis di dokumentasinya.
Membuat Project, dan Tombol yang Hampir Kuklik
Aku buka console.cloud.google.com dan layar pertamanya langsung menawarkan “Try Google Cloud with $300 in free credits” dengan tombol biru besar “Try for free”. Hampir saja kuklik. Itu pendaftaran free trial yang meminta kartu kredit dan menautkan billing, dan aku justru tidak mau billing di project ini. Yang kubutuhkan tombol kecil di bar atas: Select a project lalu New Project.
Project kuberi nama rclone-gdrive. Langkah selanjutnya mengikuti urutan dari dokumentasi rclone:
- APIs & Services → Library, cari Google Drive API, klik Enable. Statusnya harus berubah jadi Enabled.
- Buka Google Auth Platform (dulunya “OAuth consent screen”), klik Get started.
- Isi nama aplikasi dan email dukungan, pilih audience External, isi email kontak, centang persetujuan kebijakan data, lalu Create.
Tombol Publish yang Tidak Bisa Diklik
Ada satu langkah yang menurutku paling gampang terlewat. Setelah consent screen jadi, statusnya Testing. Selama berstatus Testing, refresh token cuma berlaku 7 hari, jadi rclone akan minta login ulang tiap minggu. Artinya backup otomatis akan mati diam-diam sekali seminggu. Aplikasinya harus dipindah ke In production lewat tombol Publish app. Tidak perlu verifikasi dari Google untuk pemakaian pribadi.
Masalahnya, tombol itu abu-abu dan tidak bisa diklik. Waktu kuarahkan kursor, muncul penjelasannya:
Valid app name, support email, homepage url, and privacy policy url
are required for switching the app to external production mode.
Jadi Google minta homepage URL dan privacy policy URL, padahal ini aplikasi pribadi yang tidak punya halaman apa-apa. Jalan keluarnya: aku bikin satu halaman privacy di domain portfolio-ku, wahyumahmudi.com. Isinya pendek dan jujur: aplikasi ini hanya dipakai untuk mencadangkan file Google Drive milik sendiri, tidak mengumpulkan atau membagikan data ke pihak lain, token disimpan lokal di komputerku, dan akses bisa dicabut kapan saja lewat halaman izin akun Google. Tidak ada verifikasi dari Google di sini. Syarat ini hanya soal formulir.
Halaman Privacy: Dua Kali Salah
Salah pertama: terlalu polos. Versi pertama halaman itu kubuat satu kolom, cuma judul dan paragraf. Waktu kutunjukkan, reaksiku: “desainnya emang gitu doang? Nggak diseragamkan sama tampilan domain aku?” Betul juga. Halaman yang dibuka Google dan orang lain sebaiknya terlihat seperti bagian dari situs yang sama. Kuulang pakai kerangka portfolio: panel kiri sticky dengan nama dan menu, kartu konten bergaya bagian Experiences, glow di kursor, dan footer yang sama. Semua class Tailwind kuambil dari index.html, lalu kucocokkan dengan isi output.css-ku untuk memastikan tidak ada yang hilang.
Salah kedua: path yang berawalan garis miring. Waktu kubuka lewat Live Server, tampilannya malah begini: teks hitam polos di latar putih, dan ada bentuk biru raksasa memenuhi layar. Bentuk biru itu ternyata ikon sosial berukuran penuh, karena tanpa CSS sebuah SVG tidak punya batas ukuran.
Sebabnya satu karakter. Di head kutulis href="/css/output.css" (pakai garis miring di depan), sedangkan index.html-ku memakai css/output.css. Live Server berjalan dari folder root proyek dan file-ku ada di public/, jadi /css/output.css dicari di tempat yang salah dan CSS tidak termuat. Perbaikannya mengubah tiga hal ke path relatif:
href="/css/output.css" → href="css/output.css"
href="/img/favicon.png?v=1" → href="img/favicon.png?v=1"
href="/" → href="./"
Sekalian ketemu hal lain yang sebenarnya sudah kuketahui dari artikel sebelumnya: di output.css tidak ada aturan font-family untuk Montserrat Alternates. Fontnya dimuat dari Google Fonts tapi tidak pernah dipakai. Portfolio-ku masih tampil dengan font sistem, dan pekerjaan rumah itu belum kubereskan.
Git: Jangan git add .
Waktu mau commit, git status menunjukkan dua hal: public/privacy.html sebagai file baru, dan public/css/output.css berstatus modified. Dorongan pertama: git add . biar cepat. Kutahan. Aku belum tahu apa yang berubah di output.css, jadi kucek dulu:
git diff --stat public/css/output.css
public/css/output.css | 4 ++++
Empat baris tambahan. Kulihat isinya:
+.underline {
+ text-decoration-line: underline;
+}
Cuma satu utility Tailwind, hasil build ulang karena ada halaman lain yang memakai class underline. Dugaan awalku sempat meleset: kukira itu terkait halaman privacy, padahal tidak. Karena tidak berbahaya, perubahan itu kumasukkan, tapi sebagai commit terpisah supaya riwayatnya rapi:
git add public/privacy.html
git commit -m "Add privacy policy page for rclone-gdrive"
git add public/css/output.css
git commit -m "Rebuild Tailwind output (add underline utility)"
git push
Satu hal lagi yang hampir terlewat: aku bekerja di branch tail-dev, dan di Vercel push ke branch non-production biasanya cuma menghasilkan preview deployment, bukan langsung tayang di domain asli. Google akan mengecek URL domain aslinya, jadi halaman itu harus benar-benar ada di production sebelum aku melanjutkan.
Publish App, dan Grafik yang Bikin Panik Sebentar
Setelah halamannya online, di bagian Branding kuisi Application home page dan Application privacy policy link dengan URL domainku, lalu Authorized domains dengan wahyumahmudi.com. Kembali ke Audience, tombol Publish sekarang bisa diklik. Kuklik, konfirmasi, dan statusnya berubah:
Publishing status In production
User type External
OAuth user cap 0 users / 100 user cap
“0 users / 100 user cap” sempat membuatku khawatir, tapi itu wajar. Batas 100 user hanya berlaku untuk aplikasi yang meminta izin sensitif tanpa verifikasi, dan aku satu-satunya pengguna.
Waktu membuka halaman Overview, ada grafik dengan garis putus-putus berlabel Grant Limit dan aku sempat mengira limitku sudah habis. Ternyata garis itu batas maksimum (kalau tidak salah baca, 10.000), bukan pemakaianku. Pemakaianku masih nol. Di bawahnya, Project Checkup bilang tidak ada rekomendasi masalah.
Membuat Client ID, Lalu Memasangnya ke rclone
Baru setelah semua itu aku bisa membuat client ID-nya: Google Auth Platform → Clients → Create client, tipe Desktop app, nama bebas (kupakai rclone). Google langsung menampilkan Client ID dan Client secret. Dua nilai ini berfungsi seperti username dan password aplikasi, jadi secret-nya jangan ditempel ke chat, repo, atau artikel. Di artikel ini keduanya kusamarkan jadi bentuk seperti:
client_id 1234567890-xxxxxxxxxxxx.apps.googleusercontent.com
client_secret GOCSPX-xxxxxxxxxxxxxxxxxxxx
Lalu di terminal:
rclone config
Pilih e (edit existing remote), pilih nama remotenya, lalu tekan Enter terus sampai ketemu prompt client_id dan client_secret, dan tempel nilainya di sana. Sisanya default. Satu client ID yang sama boleh dipasang ke semua remote Google Drive-mu, tapi setiap remote tetap harus diotorisasi ulang sendiri-sendiri.
Scope: Pilih yang Mana?
Di tengah konfigurasi, rclone menawarkan lima pilihan scope. Aku sempat bingung dan kutanyakan dulu. Ringkasannya:
- 1 (
drive): akses penuh ke semua file. Ini default. - 2 (
drive.readonly): hanya baca. Tidak cocok untuk backup. - 3 (
drive.file): hanya file yang dibuat oleh aplikasi ini. - 4 (
drive.appfolder) dan 5 (drive.metadata.readonly): terlalu sempit untuk kebutuhan backup.
Pilihanku 1, bukan 3 yang secara teori lebih aman. Alasannya: scope drive.file terikat ke client ID. File lama yang dulu dibuat lewat client ID bawaan rclone tidak akan terlihat oleh client ID baruku. Karena remote-ku sudah berisi data lama, opsi 3 membuat semuanya seolah hilang. Opsi 3 baru masuk akal kalau mulai dari nol.
Otorisasi Ulang
Karena client ID berubah, token lama tidak valid lagi dan harus diganti:
rclone config reconnect nama-remote:
Pertama kali, rclone menanyakan sesuatu yang kalau salah jawab, semua usaha tadi sia-sia:
Token already configured - replace it?
y) Yes (default)
n) No
Jawabannya y. Kalau dijawab n, rclone tetap memakai token lama dan client ID baru tidak pernah dipakai, sehingga notice-nya akan terus muncul. Lalu browser terbuka. Di layar “Google hasn't verified this app”, klik Advanced → Go to rclone-gdrive (unsafe) → Allow. Wajar, karena aplikasinya memang buatanku sendiri dan tidak diverifikasi Google.
Remote Kedua, dan Satu Pertimbangan
Remote pertama yang kuedit adalah yang berisi file pribadi. Remote kedua dipakai untuk keperluan kerja, login dengan akun Gmail yang berbeda. Prosesnya sama persis, tapi ada satu jebakan: saat browser terbuka, otomatis masuk ke akun yang sedang login di Chrome. Aku harus memilih Use another account supaya otorisasinya ke akun yang benar. Cara aman kalau ragu: salin link yang tampil di terminal, lalu buka di jendela Incognito.
Satu hal yang kupertimbangkan lebih dulu: untuk remote kerja itu, client ID-nya berada di project Google Cloud pribadiku. Secara teknis tidak masalah, tapi kalau suatu hari project itu dihapus, remote kerja ikut mati. Sebelum memasangnya aku memastikan itu risiko yang kuterima. Aku juga mencadangkan dulu config rclone ke file sementara, dan menghapusnya setelah semuanya beres karena isinya token akses ke Drive.
Hasilnya
$ rclone about gdrive_sites:
Total: 100 GiB
Used: 84.893 GiB
Free: 14.697 GiB
Trashed: 0 B
Other: 419.821 MiB
$ rclone about gdrive:
Total: 15 GiB
Used: 12.785 GiB
Free: 1.111 GiB
Trashed: 0 B
Other: 1.104 GiB
Dua perintah, dua remote, dan baris NOTICE di paling atas sudah hilang. Angka Used di remote kedua persis sama dengan sebelum otorisasi ulang, jadi datanya utuh dan yang tersambung memang akun yang benar. Jam di terminal menunjukkan sekitar 10.53, hampir satu setengah jam sejak notice itu muncul.
Jadi, Sudah Beres?
Notice-nya sudah beres, tapi catatan akhirnya masih ada:
- Ruang kosong di salah satu remote tinggal sekitar 1,1 GiB dari 15 GiB. Itu bukan urusan client ID, tapi bisa membuat backup mentok kapan saja.
- Montserrat Alternates masih belum diterapkan di
output.css. - Teks halaman privacy hanya menyebut “akun Google Drive milik sendiri”, padahal ada satu akun yang dipakai untuk keperluan kerja. Rencanaku: biarkan dulu, dan benahi kalau Google meminta.
Penutup
Dari satu baris NOTICE, aku belajar beberapa hal. Peringatan seperti itu sebaiknya dibaca sampai tuntas, karena sering ada alasan konkretnya, dan di sini alasannya soal biaya Google. Tombol yang abu-abu biasanya punya penjelasan kalau kursor diarahkan ke sana. Satu karakter garis miring di path bisa mengubah halaman jadi berantakan. Dan git add . itu nyaman, tapi tidak untuk repo yang punya file modified yang belum kupahami.
Sumber yang kupakai: pengumuman di forum rclone, halaman kuota Drive API, dan panduan resmi rclone.
Checklist yang sekarang kupakai kalau muncul notice serupa:
- Cek dulu remote mana yang masih pakai client ID bawaan:
rclone config show nama-remote:, dan lihat apakahclient_idkosong. - Buat project di Google Cloud tanpa mengklik free trial atau menautkan billing.
- Enable Google Drive API, lalu buat consent screen bertipe External.
- Siapkan homepage dan halaman privacy di domain sendiri, lalu pastikan keduanya benar-benar bisa dibuka dari domain aslinya.
- Publish app sampai statusnya In production, supaya token tidak mati tiap 7 hari.
- Buat client ID bertipe Desktop app, dan jangan pernah menempel secret-nya di tempat publik.
- Pasang di
rclone config, pilih scope sesuai data yang sudah ada, lalurclone config reconnectdan jawabypada penggantian token. - Tes dengan
rclone about nama-remote:, pastikan notice hilang dan angka Used tidak berubah. - Hapus file cadangan config setelah semuanya beres.

Tidak ada komentar