# KeMetroFest - Panduan Deployment Shared Hosting

Paket ini disiapkan untuk diupload ke Shared Hosting (cPanel/DirectAdmin).

## 📁 Struktur Folder
- `public_html/`: Berisi file frontend (React). Upload isinya ke folder `public_html` hosting Anda.
- `api/`: Berisi kode backend (Node.js).
- `database.sql`: Schema database untuk di-import ke MySQL.

## 🚀 Langkah-langkah Deployment

### 1. Database
1. Buka **MySQL Databases** di cPanel.
2. Buat database baru (misal: `user_kemetrofest`).
3. Buat user database baru dan hubungkan ke database tersebut dengan hak akses penuh.
4. Buka **phpMyAdmin**, pilih database tersebut, lalu **Import** file `database.sql`.

### 2. Backend (Node.js)
1. Upload folder `api/` ke folder di luar `public_html` (untuk keamanan) atau ke dalam folder `api` jika hosting mendukung.
2. Buka fitur **Setup Node.js App** di cPanel.
3. Klik **Create Application**:
   - **Node.js version**: Pilih yang terbaru (18 atau 20).
   - **Application mode**: Production.
   - **Application root**: Path ke folder `api`.
   - **Application URL**: `kemetrofest.com/api` (PENTING: Harus diakhiri dengan /api).
   - **Application startup file**: `server.js`.
4. Klik **Create**, lalu **Run JS Script** -> `npm install`.
5. **PENTING**: Jika website Anda menggunakan HTTPS (ada gemboknya), pastikan di menu cPanel tersebut URL-nya juga menggunakan HTTPS.

### 3. Frontend
1. Upload isi dari folder `public_html/` (termasuk file `.htaccess`) ke folder root website Anda (biasanya `public_html`).
2. **PENTING**: File `.htaccess` yang saya berikan sudah diatur agar tidak mengganggu folder `/api`. Jangan menghapus baris `RewriteCond %{REQUEST_URI} ^/api [NC]`.

### 4. Sinkronisasi Data
Setelah website live, buka halaman Admin, pergi ke menu **Pengaturan > Backup**, dan klik **"Mulai Migrasi ke Database"** untuk memindahkan data dari browser ke MySQL server.

---
*Dibuat oleh Antigravity - Sistem Deployment KeMetroFest*
