# Panduan Backup Otomatis ke Google Drive — KapokHub

Setup ini **cuma sekali**. Setelah selesai, Bapak tinggal klik tombol
"Backup ke Google Drive" di aplikasi (menu **Backup & Drive**), atau nanti bisa
dibuat otomatis terjadwal.

Waktu yang dibutuhkan: sekitar 10–15 menit. Semua di komputer, tidak perlu bayar.

---

## Bagian A — Buat "kunci akses" di Google Cloud

Pakai **akun Gmail yang Drive-nya mau dipakai untuk simpan backup.**

### 1. Buat project

1. Buka https://console.cloud.google.com/
2. Di kiri atas, klik dropdown project → **New Project**.
3. Nama: `KapokHub Backup` → **Create**. Tunggu beberapa detik, lalu pastikan
   project ini yang terpilih (cek dropdown kiri atas).

### 2. Aktifkan Google Drive API

1. Di kotak pencarian atas, ketik **Google Drive API** → buka hasilnya.
2. Klik **Enable**. Tunggu sampai aktif.

### 3. Atur OAuth consent screen (layar izin)

1. Menu kiri (garis tiga ☰) → **APIs & Services** → **OAuth consent screen**
   (atau menu **Branding** pada tampilan baru).
2. Kalau ditanya User Type, pilih **External** → **Create**.
3. Isi yang wajib saja:
   - **App name**: `KapokHub Backup`
   - **User support email**: pilih email Bapak
   - **Developer contact email**: email Bapak
   - Sisanya boleh dikosongkan → **Save and Continue**.
4. Di langkah **Scopes**, langsung **Save and Continue** (tidak perlu tambah apa-apa).
5. Di langkah **Test users**, tambahkan email Gmail Bapak → **Save and Continue**.

### 4. PENTING — Publish ke Production

Ini kunci supaya izinnya **permanen** (kalau dibiarkan "Testing", izin kedaluwarsa
tiap 7 hari dan Bapak harus login ulang tiap minggu).

1. Kembali ke **OAuth consent screen** (atau menu **Audience**).
2. Cari tombol **Publish App** / ubah status ke **In production** → konfirmasi.
3. Kalau ada peringatan soal verifikasi, abaikan — karena aplikasi ini hanya
   pakai izin ringan (`drive.file`) dan untuk pemakaian pribadi, tidak wajib
   diverifikasi. Nanti saat login, cukup klik lewati layar "Google hasn't
   verified this app" (klik **Advanced** → **Go to KapokHub Backup**).

### 5. Buat OAuth Client ID

1. Menu **APIs & Services** → **Credentials**.
2. **+ Create Credentials** → **OAuth client ID**.
3. Application type: **Web application**.
4. Name: `KapokHub Web`.
5. Di **Authorized redirect URIs**, klik **+ Add URI** dan tempel PERSIS:
   ```
   https://kapokhub.net/produksi/public/api/gdrive_callback.php
   ```
   (Kalau folder aplikasi Bapak beda, sesuaikan. Harus `https`, dan harus sama
   persis — beda satu huruf pun gagal.)
6. **Create**.
7. Muncul kotak berisi **Client ID** dan **Client Secret** — biarkan terbuka,
   atau klik **Download JSON**. Dua nilai ini yang kita pakai di Bagian B.

---

## Bagian B — Masukkan ke aplikasi

1. Di cPanel File Manager, buka `public_html/produksi/src/` → cari file
   **`gdrive_config.php`** → klik kanan → **Edit**.
2. Ganti dua baris ini dengan nilai dari langkah A.5:
   ```php
   'client_id'     => 'TEMPEL_CLIENT_ID.apps.googleusercontent.com',
   'client_secret' => 'TEMPEL_CLIENT_SECRET',
   ```
3. Pastikan `redirect_uri` sama persis dengan yang didaftarkan di Google
   (langkah A.5) — bawaannya sudah benar untuk `/produksi/public/`.
4. **Save Changes**.

---

## Bagian C — Hubungkan & backup pertama

1. Buka aplikasi → menu **Backup & Drive**.
2. Klik **🔗 Hubungkan Google Drive** → pilih akun Gmail Bapak.
3. Kalau muncul layar "Google hasn't verified this app": klik **Advanced** →
   **Go to KapokHub Backup (unsafe)** — ini aman, karena "app"-nya milik Bapak
   sendiri. Lalu klik **Allow / Izinkan**.
4. Kembali ke aplikasi, status berubah jadi **Terhubung** (hijau).
5. Klik **☁️ Backup ke Google Drive**. Selesai — file backup muncul di folder
   **"KapokHub Backup"** di Google Drive Bapak.

---

## Catatan

- **Isi backup**: file database (`.sqlite`) selalu disertakan. Centang
  "Sertakan foto & video" kalau mau ikut foto/video (file jadi lebih besar).
- **Aman**: aplikasi hanya bisa melihat & mengatur file yang IA sendiri buat di
  Drive Bapak (izin `drive.file`). Ia tidak bisa membaca file Drive Bapak yang lain.
- **Kalau tombolnya bilang "izin kedaluwarsa"**: cukup klik "Hubungkan Google
  Drive" sekali lagi. (Kalau ini sering terjadi, berarti status app masih
  "Testing" — pastikan sudah di-**Publish ke Production** di langkah A.4.)
- **Otomatis terjadwal (opsional)**: karena server ini VPS, backup harian tanpa
  klik bisa diatur lewat cron di WHM. Bilang saja kalau mau saya bantu siapkan.
