# PANDUAN LENGKAP DEPLOY LARAVEL PATUNGAN.ID DI CPANEL

Panduan langkah demi langkah untuk mengunggah dan menjalankan platform donasi **Patungan Indonesia (Laravel + Tripay + Tracking Pixel & CAPI)** di hosting cPanel.

---

## 1. Persiapan File Upload

Proyek ini telah dikompresi menjadi file zip siap unggah:
- File Archive: `patungan-laravel-cpanel.zip`
- Database Backup: `database/patungan_mysql_dump.sql`

---

## 2. Pilihan Metode Deploy di cPanel

### METODE A (Paling Direkomendasikan — Subdomain / Addon Domain)
1. Buka **cPanel → Domains / Subdomains**.
2. Buat domain atau subdomain baru (contoh: `donasi.patungan.id` atau `patungan.id`).
3. Saat menentukan **Document Root**, arahkan langsung ke folder `public`:
   ```text
   public_html/patungan/public
   ```
4. Buka **cPanel → File Manager**, masuk ke `public_html/patungan`, lalu **Upload** file `patungan-laravel-cpanel.zip` dan ekstrak di situ.

---

### METODE B (Main Domain `public_html` Langsung)
Jika Anda menggunakan hosting reguler dan ingin meletakkan file di `public_html`:
1. Upload file `patungan-laravel-cpanel.zip` langsung ke dalam folder `public_html/`.
2. Ekstrak zip tersebut.
3. Proyek ini sudah dilengkapi file `.htaccess` di folder root utama yang otomatis me-redirect seluruh trafik ke folder `public/`:
   ```apache
   <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{REQUEST_URI} !^/public/
       RewriteRule ^(.*)$ public/$1 [L]
   </IfModule>
   ```
   *Sehingga website langsung berjalan tanpa perlu memindahkan file secara manual.*

---

## 3. Pengaturan Database MySQL di cPanel

1. Buka **cPanel → MySQL Database Wizard**:
   - Buat nama database (contoh: `user_patungan`).
   - Buat user database & password yang kuat.
   - Berikan hak akses **ALL PRIVILEGES** pada user tersebut.
2. Buka **cPanel → phpMyAdmin**:
   - Pilih database yang baru dibuat.
   - Klik tab **Import** di menu atas.
   - Pilih file `database/patungan_mysql_dump.sql` lalu klik **Go / Kirim**.
   - Seluruh tabel (`campaigns`, `donations`, `disbursements`, `settings`, `users`) dan akun admin awal langsung terisi secara instan!

---

## 4. Konfigurasi File `.env` di cPanel File Manager

Buka file `.env` di root proyek via cPanel File Manager (klik kanan → **Edit**):
```env
APP_NAME="Patungan Indonesia"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://patungan.id

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_cpanel_db
DB_USERNAME=nama_cpanel_user
DB_PASSWORD=password_db_anda
```

---

## 5. Akun Login Admin Panel Awal

Buka browser ke: `https://domain-anda.com/admin/login`
- **Email**: `admin@patungan.id`
- **Password**: `admin123`

*(Password dapat diubah kapan saja di database atau dashboard).*

---

## 6. Konfigurasi Payment Gateway Tripay

1. Masuk ke **Admin Panel → Pengaturan & Tracking → Tab Payment Gateway Tripay**.
2. Masukkan kredensial dari dashboard Tripay:
   - **Mode**: Pilih `Production` (atau `Sandbox` untuk uji coba)
   - **Merchant Code**: Contoh `T12345`
   - **API Key**: API Key dari Tripay
   - **Private Key**: Private Key dari Tripay
3. **URL Webhook / Callback**:
   - Salin URL Callback yang tertera (contoh: `https://domain-anda.com/api/tripay/callback`).
   - Buka **Tripay Merchant Dashboard → Pengaturan → Callback URL**.
   - Tempelkan URL tersebut di Tripay agar status donasi otomatis berubah ke `PAID` begitu donatur membayar.

---

## 7. Konfigurasi Tracking Pixel, CAPI & Test Events

Masuk ke **Admin Panel → Pengaturan & Tracking → Tab Pixel, CAPI & Test Events**:

### A. Meta (Facebook) Ads
1. **Meta Pixel ID**: Masukkan ID Pixel Facebook Anda (contoh: `123456789012345`).
2. **Meta Conversions API (CAPI) Access Token**:
   - Buka **Facebook Events Manager → Pengaturan → API Konversi → Buat Token Akses**.
   - Salin token panjang tersebut ke kolom ini.
3. **Meta Test Event Code**:
   - Buka tab **Uji Peristiwa** di Events Manager Facebook.
   - Masukkan kode uji (contoh: `TEST12345`).
4. Klik tombol **🧪 Tes Event CAPI** di dashboard untuk mengetes koneksi server-to-server secara langsung!

### B. TikTok Ads
1. **TikTok Pixel ID**: Masukkan Pixel Code dari TikTok Events Manager.
2. **TikTok Events API Access Token**: Dapatkan dari menu Settings di TikTok Events Manager.
3. **TikTok Test Event Code**: Kode uji peristiwa dari tab Test Event TikTok.
4. Klik tombol **🧪 Tes Event TikTok** untuk memverifikasi.

### C. Google Ads & Google Tag Manager
1. **Google Tag ID**: `AW-XXXXXXX` atau `G-XXXXXXX`
2. **Conversion Label**: Label konversi tindakan pembelian/donasi Google Ads.
3. **GTM ID**: `GTM-XXXXXXX`

---

## 8. Alur Otomatisasi Tracking (Full Funnel)

| Halaman | Event Browser (Pixel) | Event Server (CAPI) | Data Parameter |
| :--- | :--- | :--- | :--- |
| **Semua Halaman** | `PageView` | - | URL, Referrer |
| **Detail Campaign** | `ViewContent` | - | Judul Campaign, Kategori, ID |
| **Form Donasi** | `InitiateCheckout` | - | Judul Campaign, Mata Uang IDR |
| **Pilih Pembayaran** | `AddPaymentInfo` | - | Nominal Donasi, Metode Pembayaran |
| **Invoice / Pembayaran** | `Donate` & `Purchase` | `Donate` (Meta CAPI) & `CompletePayment` (TikTok CAPI) | Reference ID, Nominal, Nilai Transaksi, Nama & HP (Hashed SHA-256) |

Begitu Tripay mengirim sinyal callback webhook bahwa pembayaran berhasil (atau saat Admin mengklik tombol **Verifikasi 1-Klik**), server Laravel secara otomatis mengirimkan event **Donate / CompletePayment** langsung ke Meta & TikTok melalui **Conversions API (CAPI)** dengan tingkat kecocokan pengguna (*Event Match Quality*) yang tinggi.
