Files
silaras-rssa/README_DOCKER_UBUNTU24.md
T
2026-05-13 08:55:17 +07:00

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`