303 lines
6.5 KiB
Markdown
303 lines
6.5 KiB
Markdown
# Panduan Test SiLARAS 119 di Ubuntu 24.04
|
|
|
|
Arsip ini berisi aplikasi **SiLARAS 119** berbasis **CodeIgniter 4.7.2**. PHP minimal yang dibutuhkan adalah **PHP 8.2**. Untuk Ubuntu 24.04, PHP 8.3 sudah cocok.
|
|
|
|
## Ringkasan hasil pengecekan
|
|
|
|
- Framework: CodeIgniter 4.
|
|
- Web root yang benar: folder `public/`.
|
|
- Driver database: `MySQLi`.
|
|
- Database target yang diberikan:
|
|
- host: `10.10.123.199`
|
|
- port: `5017`
|
|
- user: `silaras_sys`
|
|
- database: `db_silaras`
|
|
- File SQL/migration production tidak ditemukan di arsip asli, sehingga mode Docker simulasi memakai schema minimal yang saya susun dari controller, model, dan view.
|
|
- Syntax PHP di folder `app/` dan `public/` sudah dicek dengan `php -l` dan tidak ditemukan error syntax.
|
|
|
|
> Catatan keamanan: jangan commit file `.env` berisi credential database ke repository publik.
|
|
|
|
---
|
|
|
|
# Opsi A — Jalankan dengan Docker Compose memakai database asli
|
|
|
|
Gunakan opsi ini jika komputer Ubuntu 24.04 berada di jaringan/VPN yang bisa mengakses database `10.10.123.199:5017`.
|
|
|
|
## 1. Install Docker
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y ca-certificates curl gnupg
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
|
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
|
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
|
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
|
|
sudo apt update
|
|
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
sudo usermod -aG docker $USER
|
|
newgrp docker
|
|
```
|
|
|
|
Cek instalasi:
|
|
|
|
```bash
|
|
docker --version
|
|
docker compose version
|
|
```
|
|
|
|
## 2. Masuk ke folder project
|
|
|
|
Jika masih berbentuk RAR:
|
|
|
|
```bash
|
|
sudo apt install -y unrar
|
|
mkdir -p ~/apps/silaras119
|
|
unrar x silaras119.rar ~/apps/silaras119/
|
|
cd ~/apps/silaras119/silaras119
|
|
```
|
|
|
|
Jika sudah memakai folder hasil ekstrak dari paket ini:
|
|
|
|
```bash
|
|
cd silaras119
|
|
```
|
|
|
|
## 3. Jalankan aplikasi
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
Buka browser:
|
|
|
|
```text
|
|
http://localhost:8080
|
|
```
|
|
|
|
Lihat log jika ada error:
|
|
|
|
```bash
|
|
docker compose logs -f app
|
|
```
|
|
|
|
Cek koneksi dari dalam container ke database asli:
|
|
|
|
```bash
|
|
docker compose exec app php -r '$m=new mysqli("10.10.123.199","silaras_sys","119-silaras","db_silaras",5017); echo $m->connect_error ? $m->connect_error.PHP_EOL : "DB OK\n";'
|
|
```
|
|
|
|
Jika hasilnya `DB OK`, koneksi database sudah berhasil.
|
|
|
|
---
|
|
|
|
# Opsi B — Jalankan simulasi lokal dengan MariaDB dummy
|
|
|
|
Gunakan opsi ini untuk mencoba UI dan flow aplikasi tanpa konek ke database asli.
|
|
|
|
## 1. Jalankan mode simulasi
|
|
|
|
```bash
|
|
docker compose -f docker-compose.simulasi.yml up -d --build
|
|
```
|
|
|
|
Buka:
|
|
|
|
```text
|
|
http://localhost:8080
|
|
```
|
|
|
|
Akun simulasi:
|
|
|
|
| Username | Password | Role |
|
|
|---|---|---|
|
|
| `admin119` | `119admin` | admin |
|
|
| `leader119` | `119mako` | leader |
|
|
| `perawat119` | `nurse119` | perawat |
|
|
| `driver119` | `olo119` | driver |
|
|
|
|
## 2. Jalankan smoke test sederhana
|
|
|
|
```bash
|
|
bash docker/smoke-test.sh
|
|
```
|
|
|
|
## 3. Reset database simulasi dari awal
|
|
|
|
```bash
|
|
docker compose -f docker-compose.simulasi.yml down -v
|
|
docker compose -f docker-compose.simulasi.yml up -d --build
|
|
```
|
|
|
|
## 4. Akses database simulasi dari host
|
|
|
|
Database simulasi dibuka ke host pada port `3307`.
|
|
|
|
```bash
|
|
mysql -h 127.0.0.1 -P 3307 -u silaras_sys -p db_silaras
|
|
```
|
|
|
|
Password:
|
|
|
|
```text
|
|
119-silaras
|
|
```
|
|
|
|
---
|
|
|
|
# Opsi C — Jalankan native langsung di Ubuntu 24.04 tanpa Docker
|
|
|
|
## 1. Install dependency PHP
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y php php-cli php-mysql php-mbstring php-intl php-curl php-xml php-zip unzip curl composer netcat-openbsd
|
|
```
|
|
|
|
Cek versi dan ekstensi penting:
|
|
|
|
```bash
|
|
php -v
|
|
php -m | grep -E 'mysqli|mbstring|intl|curl|xml|zip'
|
|
```
|
|
|
|
## 2. Edit file `.env`
|
|
|
|
Pastikan bagian database menjadi seperti ini:
|
|
|
|
```ini
|
|
CI_ENVIRONMENT = development
|
|
|
|
app.baseURL = 'http://localhost:8080/'
|
|
|
|
database.default.hostname = 10.10.123.199
|
|
database.default.database = db_silaras
|
|
database.default.username = silaras_sys
|
|
database.default.password = 119-silaras
|
|
database.default.DBDriver = MySQLi
|
|
database.default.port = 5017
|
|
|
|
encryption.key = silaras119-local-dev-key-change-me
|
|
```
|
|
|
|
## 3. Pastikan dependency vendor ada
|
|
|
|
Arsip ini sudah menyertakan folder `vendor/`. Jika folder `vendor/` hilang, jalankan:
|
|
|
|
```bash
|
|
composer install
|
|
```
|
|
|
|
## 4. Set permission writable
|
|
|
|
```bash
|
|
chmod -R 775 writable
|
|
```
|
|
|
|
## 5. Test koneksi database
|
|
|
|
```bash
|
|
nc -vz 10.10.123.199 5017
|
|
php -r '$m=new mysqli("10.10.123.199","silaras_sys","119-silaras","db_silaras",5017); echo $m->connect_error ? $m->connect_error.PHP_EOL : "DB OK\n";'
|
|
```
|
|
|
|
## 6. Jalankan development server
|
|
|
|
```bash
|
|
php spark serve --host 0.0.0.0 --port 8080
|
|
```
|
|
|
|
Buka:
|
|
|
|
```text
|
|
http://localhost:8080
|
|
```
|
|
|
|
---
|
|
|
|
# Alur uji manual yang disarankan
|
|
|
|
1. Buka `http://localhost:8080`.
|
|
2. Login.
|
|
3. Masuk ke menu **Data Pasien Aktif**.
|
|
4. Klik **Tambah Pasien Baru**.
|
|
5. Input data pasien/panggilan.
|
|
6. Simpan.
|
|
7. Pastikan pasien muncul pada halaman **Pasien Aktif**.
|
|
8. Klik fase **Pre Dispatch** untuk melihat detail.
|
|
9. Klik **Lanjut** untuk menggeser fase ambulans.
|
|
|
|
Untuk mode simulasi, data awal sudah tersedia sehingga setelah login seharusnya langsung ada data pasien aktif.
|
|
|
|
---
|
|
|
|
# Troubleshooting
|
|
|
|
## 1. Halaman 500 / Whoops
|
|
|
|
Cek log:
|
|
|
|
```bash
|
|
docker compose logs -f app
|
|
# atau untuk simulasi:
|
|
docker compose -f docker-compose.simulasi.yml logs -f app
|
|
```
|
|
|
|
Cek log CodeIgniter:
|
|
|
|
```bash
|
|
ls -lah writable/logs
|
|
cat writable/logs/log-*.php
|
|
```
|
|
|
|
## 2. Database asli tidak bisa diakses
|
|
|
|
Cek apakah host dan port terbuka dari komputer:
|
|
|
|
```bash
|
|
nc -vz 10.10.123.199 5017
|
|
```
|
|
|
|
Jika gagal, biasanya penyebabnya:
|
|
|
|
- belum tersambung VPN/jaringan internal,
|
|
- firewall menutup port `5017`,
|
|
- user database belum diberi akses dari IP komputer/container,
|
|
- host database hanya menerima koneksi dari server tertentu.
|
|
|
|
## 3. Login gagal
|
|
|
|
Aplikasi mengecek tabel `users` dan memverifikasi password dengan `password_verify()`. Untuk database asli, pastikan tabel `users` memiliki kolom:
|
|
|
|
```text
|
|
id, nama, username, password, role
|
|
```
|
|
|
|
Kolom `password` harus berisi hash dari `password_hash()`, bukan plain text.
|
|
|
|
## 4. Composer error karena versi PHP
|
|
|
|
Pastikan PHP minimal 8.2:
|
|
|
|
```bash
|
|
php -v
|
|
```
|
|
|
|
Ubuntu 24.04 umumnya memakai PHP 8.3 sehingga aman.
|
|
|
|
---
|
|
|
|
# File Docker yang ditambahkan
|
|
|
|
- `Dockerfile`
|
|
- `docker-compose.yml` — mode database asli
|
|
- `docker-compose.simulasi.yml` — mode MariaDB dummy lokal
|
|
- `docker/apache.conf`
|
|
- `docker/entrypoint.sh`
|
|
- `docker/mysql/init/001_schema_seed.sql`
|
|
- `docker/smoke-test.sh`
|