# Checklist Deploy Production — PPOB App

Sebelum deploy aplikasi PPOB ke server production, pastikan semua poin ini sudah dicek satu per satu.

## 1. Environment Variables (.env)

- [ ] **ALLOWED_ORIGINS** — ganti dari `localhost` ke domain asli frontend
      Contoh: `https://ppob-kamu.com`
- [ ] **TRUST_PROXY**
      - `true` → HANYA jika server pakai reverse proxy (Nginx, load balancer, dll)
      - `false` → jika server langsung tanpa proxy di depannya
- [ ] **DIGIFLAZZ_MODE** — ganti dari `sandbox` ke `production`
- [ ] **DIGIFLAZZ_USERNAME** & **DIGIFLAZZ_API_KEY** — isi dengan kredensial asli (bukan placeholder)
- [ ] **DUITKU_MODE** — ganti dari `sandbox` ke `production`
- [ ] **DUITKU_MERCHANT_CODE** & **DUITKU_API_KEY** — isi dengan kredensial asli (bukan placeholder)
- [ ] **DIGIFLAZZ_MOCK** — set ke `false` atau hapus variabel ini sepenuhnya

## 2. Database

- [ ] Pastikan koneksi database production sudah benar di `.env` (host, user, password, nama database)
- [ ] Jalankan migration ke database production: `npx sequelize-cli db:migrate`
- [ ] Pertimbangkan apakah data seeder (produk contoh) perlu disesuaikan untuk data produk asli

## 3. Setelah Ubah .env

- [ ] **Restart server secara manual** — nodemon tidak otomatis mendeteksi perubahan file `.env`, hanya file `.js`/`.json`. Wajib jalankan ulang `npm run dev` (atau proses start production) setiap kali `.env` diubah.

## 4. Keamanan

- [ ] Pastikan file `.env` **tidak pernah** ter-commit ke Git (cek `.gitignore` sudah mencakup `.env`)
- [ ] Pastikan `.env` tidak diupload lewat FTP/file manager biasa — gunakan environment variable di panel hosting/server jika memungkinkan
- [ ] Pastikan HTTPS/SSL aktif di domain production (jangan HTTP biasa)
- [ ] Endpoint testing/mock (manualTopup, mode mock Digiflazz) sudah terkunci otomatis di production — sudah diverifikasi tidak aktif saat `NODE_ENV=production`

## 5. Testing Akhir

- [ ] Setelah API key production aktif, coba transaksi kecil dulu (misal beli pulsa Rp5.000) untuk pastikan koneksi live ke Digiflazz & Duitku benar-benar jalan
- [ ] Cek log transaksi (userId, IP, timestamp, status) tercatat dengan benar di server production

---

*Dibuat untuk project PPOB (top up pulsa, data, token listrik, voucher game, tagihan) — dikembangkan dengan Node.js + Express + MySQL, integrasi Digiflazz & Duitku.*
