# 🚀 Panduan Deployment DSE Automation Sosmed ke cPanel

Panduan lengkap ini menjelaskan langkah demi langkah cara men-deploy aplikasi **DSE Automation Sosmed** ke hosting dengan control panel **cPanel** menggunakan fitur **Setup Python App** (Phusion Passenger WSGI).

---

## 📋 Ringkasan File & Kesiapan Deploy
Proyek ini sudah dilengkapi dengan konfigurasi standar cPanel:
1. **`passenger_wsgi.py`**: Entry point resmi Phusion Passenger cPanel (`from app import app as application`).
2. **`tracker-posting.xlsx`**: File Excel pelacak **fresh 100%** (228 daftar situs media sosial tetap utuh, riwayat kampanye pengujian sebelumnya telah dibersihkan total).
3. **`tracker-posting.template.xlsx`**: Cadangan template fresh yang otomatis diduplikasi jika file tracker belum ada.
4. **`requirements.txt`**: Daftar dependensi Python resmi.
5. **Dukungan Headless Mode**: Sistem otomatis berjalan dalam mode headless di Linux/cPanel server (`HEADLESS=true`).

---

## 🛠️ Langkah-Langkah Deployment

### Langkah 1: Buat Aplikasi di "Setup Python App" cPanel
1. Login ke akun **cPanel** hosting Anda.
2. Cari dan klik menu **Setup Python App** (biasanya di bawah kategori *Software*).
3. Klik tombol **Create Application** (Buat Aplikasi).
4. Isi formulir konfigurasi berikut:
   - **Python version**: Pilih `3.10`, `3.11`, atau `3.12` (versi stabil modern).
   - **Application root**: Masukkan nama folder tempat file diletakkan (misalnya `dse_sosmed` atau `public_html` jika ingin di root domain).
   - **Application URL**: Pilih domain atau subdomain Anda (misalnya `sosmed.domainanda.com`).
   - **Application startup file**: Ketik `passenger_wsgi.py`
   - **Application Entry point**: Ketik `application`
5. Klik **Create** di pojok kanan atas.
6. Halaman akan dimuat ulang dan di bagian atas akan muncul baris perintah untuk mengaktifkan virtual environment, contoh:
   ```bash
   source /home/username/virtualenv/dse_sosmed/3.11/bin/activate && cd /home/username/dse_sosmed
   ```
   *(Salin/catat perintah ini untuk Langkah 3).*

---

### Langkah 2: Upload File Proyek
Anda dapat memilih salah satu cara berikut:

#### Opsi A: Menggunakan Git Version Control di cPanel (Direkomendasikan)
1. Buka menu **Git™ Version Control** di cPanel.
2. Klik **Create**.
3. Masukkan Clone URL:
   ```text
   https://github.com/trahyudin/DSEautomatonSosmed.git
   ```
4. Tentukan direktori penyimpanan sesuai **Application root** yang Anda buat di Langkah 1.
5. Klik **Create**.

#### Opsi B: Upload Manual via File Manager / ZIP
1. Download repository ini sebagai file `.zip`.
2. Buka **File Manager** di cPanel.
3. Masuk ke folder Application root Anda.
4. Upload file `.zip` lalu klik kanan dan pilih **Extract**.

---

### Langkah 3: Install Dependensi & Browser Playwright
1. Buka menu **Terminal** di cPanel (atau sambungkan via SSH).
2. Aktifkan virtual environment dengan menempelkan perintah dari Langkah 1:
   ```bash
   source /home/username/virtualenv/dse_sosmed/3.11/bin/activate && cd /home/username/dse_sosmed
   ```
3. Update package manager `pip`:
   ```bash
   pip install --upgrade pip
   ```
4. Install seluruh pustaka yang dibutuhkan:
   ```bash
   pip install -r requirements.txt
   ```
5. Install browser Chromium headless untuk Playwright:
   ```bash
   playwright install chromium
   ```
   > 💡 **Catatan Sistem Linux**: Jika menggunakan CloudLinux/VPS dan Playwright meminta dependency sistem tambahan, jalankan `playwright install-deps` (jika Anda memiliki akses root/sudo).

---

### Langkah 4: Konfigurasi File Environment (`.env`)
1. Di dalam folder proyek, salin template konfigurasi:
   ```bash
   cp .env.example .env
   ```
2. Buka dan edit file `.env` (bisa lewat editor File Manager cPanel atau perintah `nano .env` di terminal):
   ```ini
   # Wajib: Masukkan Google Gemini API Key Anda
   GEMINI_API_KEY=AIzaSy...kunci_api_gemini_anda

   # Kunci rahasia sesi web
   SECRET_KEY=dse_sosmed_super_secret_key_cpanel_2026

   # Wajib TRUE untuk cPanel / Server Linux tanpa monitor fisik
   HEADLESS=true

   # Model Gemini yang digunakan
   GEMINI_MODEL=gemini-1.5-flash
   ```
3. Simpan perubahan file `.env`.

---

### Langkah 5: Restart Aplikasi Python
1. Kembali ke menu **Setup Python App** di cPanel.
2. Temukan aplikasi Anda di daftar, lalu klik ikon **Restart** (tanda putar panah) di kolom *Actions*.
3. Buka URL domain/subdomain Anda di browser.
4. Dashboard **DSE Automation Sosmed** akan langsung terbuka dan siap digunakan!

---

## 📊 Status Excel Tracker
- File `tracker-posting.xlsx` yang terpasang di hosting berstatus **Fresh & Clean**:
  - Kolom 1 (`Situs`): 228 Direktori media sosial tetap utuh.
  - Kolom 2 (`Kampanye 1`): Bersih dari seluruh riwayat pengujian lokal pengguna.
- File cadangan lokal pengujian Anda sebelumnya tetap aman di komputer lokal Anda (`tracker-posting.history-backup.xlsx`) dan otomatis diabaikan oleh Git.

---

## ❓ Troubleshooting (Kendala Umum)

| Masalah | Penyebab | Solusi |
| :--- | :--- | :--- |
| **Error 500 / Incomplete response** | Dependensi belum terinstall atau WSGI salah | Periksa tab `stderr.log` di root folder. Pastikan `passenger_wsgi.py` dan `application` sudah terdaftar benar di Setup Python App. |
| **Browser tidak berjalan saat kampanye** | Server cPanel tidak punya layar GUI | Pastikan di `.env` tertulis `HEADLESS=true`. |
| **Playwright Chromium executable not found** | Browser Playwright belum di-download di virtualenv | Masuk ke terminal, aktifkan virtualenv, dan jalankan `playwright install chromium`. |
| **Upload flyer gagal** | Izin folder `uploads/` terbatas | Berikan permission `755` pada folder `uploads/` via File Manager cPanel. |
