# Instalasi di cPanel / Shared Hosting

Panduan step-by-step untuk **Niagahoster, Hostinger, Rumahweb, Dewaweb**, dan hosting cPanel lainnya.

> **Tidak perlu terminal.** Setelah upload, buka wizard `/install` di browser.

---

## Langkah 1 — Upload file

### Via File Manager cPanel

1. Login **cPanel** hosting Anda
2. Buka **File Manager**
3. Masuk ke folder **home** (biasanya `/home/username/`)
4. Klik **+ Folder** → buat folder `starcustom` (nama bebas)
5. Masuk ke folder `starcustom`
6. Klik **Upload** → pilih file **`starcustomeprinting-full.zip`**
7. Tunggu upload selesai (bisa 2–10 menit tergantung koneksi)
8. Klik kanan zip → **Extract**
9. Pastikan setelah extract ada folder: `app`, `public`, `vendor`, `storage`, file `artisan`

### Via FTP (FileZilla)

1. Download FileZilla Client (gratis)
2. Connect: Host = `ftp.domainanda.com`, User & Password = dari cPanel → FTP Accounts
3. Upload **semua isi** extract zip ke `/starcustom/`
4. Jangan upload folder zip saja — harus isi dalamnya

---

## Langkah 2 — Set PHP 8.2+

1. cPanel → **Select PHP Version** atau **MultiPHP Manager**
2. Pilih domain/subdomain Anda
3. Pilih **PHP 8.2** atau **8.3**
4. Centang ekstensi (jika ada checklist):
   - `openssl`, `pdo`, `pdo_sqlite`, `pdo_mysql`, `mbstring`, `tokenizer`, `xml`, `json`, `bcmath`, `fileinfo`, `curl`
5. Save

---

## Langkah 3 — Arahkan domain ke folder `public`

Ini langkah **PALING PENTING**. Banyak error 403/500 karena salah folder.

### Cara A — Subdomain dengan Document Root custom (disarankan)

1. cPanel → **Domains** → **Create Subdomain** atau **Edit Domain**
2. Buat subdomain misal `toko.domainanda.com` atau pakai domain utama
3. Set **Document Root** ke:
   ```
   /home/username/starcustom/public
   ```
   ⚠️ Harus ada `/public` di akhir path
4. Save

### Cara B — Domain utama, tidak bisa ubah document root

Jika hosting **tidak mengizinkan** ubah document root:

1. Upload project ke `/home/username/starcustom/` (di luar public_html)
2. Buka file `install/cpanel-public_html-index.php.example` di paket zip
3. Edit baris `$laravelRoot` → path folder project Anda
4. Copy isi file tersebut ke `/home/username/public_html/index.php`
5. Lanjut ke Langkah 4

---

## Langkah 4 — Permission (jika error 500)

### Via File Manager

1. Klik kanan folder **`storage`** → **Change Permissions** → `775` (centang write execute)
2. Ulangi untuk folder **`bootstrap/cache`** → `775`
3. Folder **`database`** → `775`

### Via Terminal cPanel (opsional)

Jika cPanel punya menu **Terminal**:

```bash
cd ~/starcustom
chmod -R 775 storage bootstrap/cache database
```

Atau jalankan script:

```bash
cd ~/starcustom
bash scripts/set-permissions.sh
```

---

## Langkah 5 — Wizard instalasi (browser)

1. Buka browser: **`https://toko.domainanda.com/install`**
2. Ikuti 4 langkah wizard (lihat [PANDUAN-LENGKAP-INDONESIA.md](PANDUAN-LENGKAP-INDONESIA.md))
3. Database: pilih **SQLite** jika tidak yakin
4. Selesai → login admin

---

## Langkah 6 — SSL HTTPS (gratis)

1. cPanel → **SSL/TLS Status** atau **Let's Encrypt**
2. Aktifkan SSL untuk domain Anda
3. cPanel → **Force HTTPS Redirect** → ON
4. Kembali ke Admin → pastikan APP_URL pakai `https://`

---

## Langkah 7 — Cron job

1. cPanel → **Cron Jobs**
2. Add New Cron Job:
   - **Minute:** Every Minute (`*`)
   - **Hour/Day/Month/Weekday:** `*`
   - **Command:**
     ```bash
     cd /home/username/starcustom && php artisan schedule:run >> /dev/null 2>&1
     ```
     (Ganti path sesuai folder Anda)

Detail: [05-CRON-JOB.md](05-CRON-JOB.md)

---

## MySQL di cPanel (jika pilih MySQL di wizard)

1. cPanel → **MySQL Databases**
2. **Create New Database:** `username_starcustom`
3. **Create User:** username + password kuat
4. **Add User To Database** → centang **ALL PRIVILEGES**
5. Di wizard instalasi isi:
   - Host: `localhost` (biasanya)
   - Port: `3306`
   - Database: `username_starcustom`
   - Username & password dari langkah 3

---

## Checklist cepat cPanel

- [ ] Zip di-extract, ada folder `vendor`
- [ ] PHP 8.2+
- [ ] Document root = `.../public`
- [ ] `/install` terbuka di browser
- [ ] Wizard selesai, login admin OK
- [ ] SSL aktif
- [ ] Cron job ditambahkan

---

## Masalah umum cPanel

| Gejala | Penyebab | Solusi |
|--------|----------|--------|
| 403 Forbidden | Document root salah | Arahkan ke folder `public` |
| 500 Error | Permission storage | chmod 775 storage & bootstrap/cache |
| Blank putih | PHP versi lama | Upgrade ke PHP 8.2 |
| /install tidak ada | Route cache lama | Hapus `bootstrap/cache/*.php` via File Manager |
| SQLite error | Folder database tidak writable | chmod 775 folder database |

Lihat juga: [07-TROUBLESHOOTING.md](07-TROUBLESHOOTING.md)
