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

6.5 KiB

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

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:

docker --version
docker compose version

2. Masuk ke folder project

Jika masih berbentuk RAR:

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:

cd silaras119

3. Jalankan aplikasi

docker compose up -d --build

Buka browser:

http://localhost:8080

Lihat log jika ada error:

docker compose logs -f app

Cek koneksi dari dalam container ke database asli:

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

docker compose -f docker-compose.simulasi.yml up -d --build

Buka:

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 docker/smoke-test.sh

3. Reset database simulasi dari awal

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.

mysql -h 127.0.0.1 -P 3307 -u silaras_sys -p db_silaras

Password:

119-silaras

Opsi C — Jalankan native langsung di Ubuntu 24.04 tanpa Docker

1. Install dependency PHP

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:

php -v
php -m | grep -E 'mysqli|mbstring|intl|curl|xml|zip'

2. Edit file .env

Pastikan bagian database menjadi seperti 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:

composer install

4. Set permission writable

chmod -R 775 writable

5. Test koneksi database

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

php spark serve --host 0.0.0.0 --port 8080

Buka:

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:

docker compose logs -f app
# atau untuk simulasi:
docker compose -f docker-compose.simulasi.yml logs -f app

Cek log CodeIgniter:

ls -lah writable/logs
cat writable/logs/log-*.php

2. Database asli tidak bisa diakses

Cek apakah host dan port terbuka dari komputer:

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:

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:

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