# Deploy Alikhtibar Score ke cPanel

## 1. Upload & ekstrak

1. Upload `alikhtibarscore-cpanel.zip` ke folder aplikasi di cPanel (mis. `alikhtibarscore/`)
2. Ekstrak zip di File Manager
3. **Setup Node.js App** → pilih folder tersebut
4. Node.js version: **20** atau **22** (LTS)
5. Application mode: **Production**
6. Application startup file: `node_modules/next/dist/bin/next` dengan argumen `start`

Atau startup command:

```bash
npm run start
```

## 2. Install & build (Terminal cPanel / Run NPM Install)

```bash
cd ~/alikhtibarscore   # sesuaikan path
npm install
npm run build
```

Restart aplikasi Node.js dari panel.

## 3. Environment variables (panel Node.js)

**Jangan** upload `.env.local`. Set di panel:

```env
DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_NAME=alikhti2_alikhtibar_score
DATABASE_USER=alikhti2_alikhtibar_score
DATABASE_PASSWORD=<password-dari-cpanel>
SESSION_SECRET=<minimal-32-karakter-random>
NEXT_PUBLIC_SITE_URL=https://score.alikhtibar.id
NEXT_PUBLIC_MOODLE_OAUTH_ENABLED=false
```

Moodle SSO (tahap 2, setelah deploy dasar OK):

```env
NEXT_PUBLIC_MOODLE_OAUTH_ENABLED=true
MOODLE_OIDC_ISSUER=https://alikhtibar.id
MOODLE_OIDC_CLIENT_ID=
MOODLE_OIDC_CLIENT_SECRET=
```

Redirect URI di Moodle: `https://score.alikhtibar.id/auth/callback`

## 4. Database MySQL (phpMyAdmin)

Jalankan berurutan di database `alikhti2_alikhtibar_score`:

1. `mysql/001_schema.sql`
2. `mysql/002_alikhtibar_scoring_policies.sql`
3. `mysql/003_users_study_level.sql`
4. `mysql/004_language_score_attempts.sql`

## 5. Akun admin/tutor awal

```bash
npm run seed:mysql
```

Ganti password demo segera setelah login pertama. **Jangan** pakai seed di production jangka panjang.

## 6. Verifikasi

```bash
npm run verify:env
curl https://score.alikhtibar.id/api/health
```

## 7. Checklist uji

- [ ] `GET /api/health` → `database: ok`
- [ ] Login admin/tutor
- [ ] Import CSV (`/tutor`)
- [ ] Dashboard mahasiswa
- [ ] (Tahap 2) Login Moodle SSO
