# Instalasi — v0.1.0 (Phase 1)

Panduan ini untuk shared hosting standar (Apache + PHP + MySQL/MariaDB, cPanel atau sejenis).

## 1. Requirement
- PHP 8.1+ (dites di PHP 8.4). Ekstensi: `pdo_mysql`, `mbstring`, `json` (biasanya sudah aktif default).
- MySQL 5.7+ / MariaDB 10.3+.
- Apache dengan `mod_rewrite` aktif dan `AllowOverride All` (atau setara) supaya `.htaccess` berfungsi.

## 2. Upload
1. Extract ZIP `desa-population-v0.1.0.zip`.
2. Upload **seluruh isi folder** `desa-population/` ke document root hosting Anda (biasanya `public_html/`).
   - Struktur yang benar: `public_html/app/...`, `public_html/modules/...`, `public_html/public/...`, `public_html/.htaccess`, dst — **bukan** `public_html/desa-population/...`.

## 3. Database
1. Buat database baru + user MySQL lewat cPanel/phpMyAdmin (catat nama DB, user, password).
2. Import `database/database.sql` lewat phpMyAdmin (Import) — ini membuat seluruh skema tabel.
3. (Opsional tapi disarankan untuk mencoba sistem) Import juga `database/seeders/001_seed_core.sql` — ini mengisi role/permission/banjar dummy/user developer, **bukan data penduduk asli**.

## 4. Konfigurasi
1. Salin `config.example.php` menjadi `config.php` (di folder yang sama, root project).
2. Edit `config.php`:
   ```php
   define('DB_HOST', '127.0.0.1');
   define('DB_NAME', 'nama_database_anda');
   define('DB_USER', 'user_database_anda');
   define('DB_PASS', 'password_database_anda');
   define('APP_URL', 'https://domain-anda.com/'); // sesuaikan
   define('DEVELOPER_MODE', true); // WAJIB true di fase ini, login belum ada
   ```

## 5. Uji
1. Buka `https://domain-anda.com/` di browser.
2. Anda akan melihat banner kuning "DEVELOPMENT MODE" dan halaman **Phase 1 — System Check**.
3. Pastikan:
   - "Koneksi Database" = ✔ Terhubung.
   - "Seed Data" menunjukkan jumlah Users & Banjar > 0 (jika seeder diimport).
4. Jika muncul halaman "Konfigurasi belum ditemukan" → berarti `config.php` belum ada/salah lokasi (lihat langkah 4).
5. Jika "Koneksi Database" gagal → cek ulang `DB_HOST/DB_NAME/DB_USER/DB_PASS` dan pastikan `database.sql` sudah diimport.

## 6. Catatan Keamanan Fase Ini
- `DEVELOPER_MODE = true` berarti **siapa pun yang membuka situs otomatis masuk sebagai Super Admin**. Jangan pakai domain publik/data asli selama fase ini — gunakan subdomain staging atau `.htaccess` Basic Auth tambahan jika perlu expose sementara.
- `app/`, `database/`, `storage/`, `config.php` sudah diblokir lewat `.htaccess` — tapi selalu tes langsung: coba akses `https://domain-anda.com/config.php` dan `https://domain-anda.com/database/database.sql` di browser, harus muncul **403 Forbidden**, bukan isi file. Kalau tidak, berarti `AllowOverride`/`mod_rewrite` belum aktif di hosting Anda — hubungi support hosting.

## 7. Update dari Versi Sebelumnya
Belum berlaku (ini rilis pertama). Mulai versi berikutnya, langkah update akan dijelaskan di `UPDATE_NOTES.md`.
