# 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`