Menjalankan PHPNuxBill di atas Docker memerlukan ketelitian dalam sinkronisasi antara kontainer aplikasi dan database. Berikut adalah langkah-langkah teknis rincinya.
π¦ 1. Struktur Direktori & Volume
Pastikan folder proyek kamu bersih dari file log database yang nyasar.
~/radius-lab/
βββ nuxartbil/ # Source code aplikasi (PHP)
βββ db_data/ # Persistent storage MariaDB (Otomatis)
βββ docker-compose.yml # Orkestrasi kontainer
ποΈ 2. Inisialisasi Database (Step-by-Step)
Langkah ini dilakukan setelah kontainer MariaDB berjalan (up -d). Jangan lakukan import jika database belum dibuat.
A. Pembuatan "Wadah" Database
Masuk ke sistem MariaDB dan buat database bar
docker exec -it lab-mariadb mariadb -u root -prootpass -e "CREATE DATABASE nuxartbill;"
B. Import Skema Tabel Aplikasi
Gunakan operator < untuk menyuntikkan file SQL dari laptop ke dalam kontainer.
docker exec -i lab-mariadb mariadb -u root -prootpass nuxartbill < ./nuxartbil/install/phpnuxbill.sql
C. Import Skema Radius (FreeRADIUS)
Sistem billing tidak akan bisa berkomunikasi dengan Mikrotik tanpa tabel radius ini
docker exec -i lab-mariadb mariadb -u root -prootpass nuxartbill < ./nuxartbil/install/radius.sql
π§ 3. Konfigurasi Koneksi (Environment Mapping)
Edit file ~/radius-lab/nuxartbil/config.php. Kesalahan paling umum adalah menggunakan localhost. Dalam Docker, host adalah nama service
/* Konfigurasi Database */
$db_host = "mariadb"; // Merujuk ke container name/service
$db_port = "3306"; // Port default MariaDB
$db_user = "root"; // User tertinggi (sesuaikan environment .yml)
$db_pass = "rootpass"; // Password dari MARIADB_ROOT_PASSWORD
$db_name = "nuxartbill"; // Nama database yang dibuat di langkah 2A
π 4. Kamus Perintah (The DevOps Toolbox)
Sebagai pengembang, kamu wajib menguasai perintah-perintah kontrol berikut:
Operasi Dasar
- Membangun Ulang: Gunakan jika ada perubahan pada file .yml atau Dockerfile.
docker compose up -d --force-recreate - Monitoring Log: Gunakan ini jika muncul "500 Internal Server Error".
docker compose logs -f phpfpm
Inspeksi File
Cek Sinkronisasi Folder: Memastikan volume terpasang dengan benar di /var/www/html.
docker exec -it lab-phpfpm ls -la /var/www/html
Akses Terminal Kontainer (Interactive Shell)
jika ingin melakukan modifikasi file langsung di dalam server:
docker exec -it lab-phpfpm bash
π 5. Final Checklist & Permission
Setelah semua siap, jalankan perintah ini untuk memastikan aplikasi memiliki hak akses menulis ke folder cache dan log:
# Memberikan izin akses penuh ke folder krusial
sudo chmod -R 777 ~/radius-lab/nuxartbil/system/cache
sudo chmod -R 777 ~/radius-lab/nuxartbil/system/uploads
`
Top comments (0)