# License Server — Panduan Upload ke didikhanafi.com

## 📁 Struktur File

```
license-server/
├── index.php         ← Upload ini, rename route ke /license/ di hosting
├── licenses.json     ← Database lisensi (JANGAN bisa diakses publik)
├── .htaccess         ← Proteksi file sensitif + routing
└── README.md         ← File ini
```

---

## 🚀 Cara Upload ke didikhanafi.com

### Langkah 1 — Upload via cPanel File Manager / FTP

1. Masuk ke cPanel didikhanafi.com
2. Buka **File Manager** → masuk ke folder `public_html`
3. Buat folder baru: `public_html/license/`
4. Upload semua file dari folder `license-server/` ini ke **`public_html/license/`**

### Langkah 2 — Test Server

Buka browser, akses:
```
https://didikhanafi.com/license/status?secret=systerra_admin_2025
```
Harus muncul halaman status lisensi dengan daftar lisensi.

> ⚠️ **WAJIB** ganti `ADMIN_SECRET` di `index.php` setelah upload!

---

## 🔑 Cara Tambah Lisensi Client Baru

Edit file `licenses.json` (via cPanel File Manager), tambah entry:

```json
{
  "SYSORDER-2025-001": {
    "client": "Nama Restoran Client",
    "domain": "domain-client.com",
    "email": "owner@domain-client.com",
    "issued_at": "2025-02-26",
    "expires_at": null,
    "active": true,
    "build_id": "SYSORDER-2025-001",
    "notes": "Client pertama"
  }
}
```

**Format license key:** `SYSORDER-YYYY-XXX` (contoh: `SYSORDER-2025-001`)

---

## 📡 Cara Nonaktifkan Lisensi Client

Cukup set `"active": false` di `licenses.json`:
```json
"active": false
```
→ Client langsung tidak bisa akses sistemnya dalam 24 jam (setelah cache expired).

---

## 🔍 Melihat Log / Deteksi Penggunaan Tidak Sah

Akses admin panel:
```
https://didikhanafi.com/license/status?secret=systerra_admin_2025
```
Atau download `telemetry.log` via cPanel untuk melihat semua aktivitas.

Jika ada **domain asing** yang muncul di log (bukan domain client yang terdaftar) → itu tandanya source code bocor dari client dengan `build_id` tersebut.

---

## ⚙️ Endpoint yang Tersedia

| Method | URL | Fungsi |
|--------|-----|--------|
| `POST` | `/license/validate` | Validasi lisensi (dipanggil otomatis oleh SysOrder) |
| `POST` | `/license/ping` | Telemetry harian (dipanggil otomatis tiap jam 6 pagi) |
| `GET`  | `/license/status?secret=...` | Admin panel lihat status semua lisensi |

---

## 📬 Kontak
- **Email:** me@didikhanafi.com
- **Domain:** didikhanafi.com
