Jalankan Aplikasi Absensi Siswa PHP MySQL di Podman Fedora – Aman & Mudah!

 

Halo para guru, administrator sekolah, dan developer pemula! 👋

Apakah Anda punya aplikasi absensi siswa berbasis PHP MySQL tapi bingung cara menjalankannya di laptop Fedora tanpa menginstall Apache, PHP, atau MySQL langsung di sistem?

Kali ini, saya bagikan tutorial lengkap dan terbukti berhasil untuk menjalankan aplikasi absensi siswa secara isolated menggunakan Podman di Fedora 43. Semua komponen (web app, database, phpMyAdmin) berjalan di container – aman, ringan, dan mudah di-manage!

Aplikasi yang saya gunakan adalah open-source populer dari GitHub: Unduh aplikasi absensi siswa di sini: https://github.com/natedekaka/absensi-siswa.git (Klone repo ini untuk mendapatkan file PHP dan schema database SQL.)

Keunggulan Pakai Podman untuk Aplikasi Ini

  • Sudah bawaan Fedora 43 (tidak perlu install Docker).

  • Lebih aman: Daemonless & rootless, tidak berisiko seperti Docker tradisional.

  • Isolasi total: Tidak mengotori sistem host.

  • Mudah backup & pindah: Data database persist di volume.

  • Multi-container: App PHP, MySQL, dan phpMyAdmin saling terhubung otomatis.

Hasil akhirnya? Dashboard absensi siswa seperti ini muncul di browser lokal Anda!

Persiapan Awal

  1. Pastikan Fedora 43 Anda up-to-date:

    sudo dnf update -y
  2. Install podman-compose (untuk manage multi-container):

    sudo dnf install podman-compose -y
  3. Klone atau salin aplikasi absensi ke folder kerja.

Langkah-Langkah Step-by-Step

  1. Buat Folder Project

    mkdir ~/absensi-podman
    cd ~/absensi-podman
    mkdir src

    Salin semua file aplikasi (dari GitHub) ke folder src (termasuk config.php, index.php, folder absen/kelas/siswa, dan file .sql).

  2. Buat Dockerfile (untuk tambah ekstensi mysqli) Buat file Dockerfile:

    FROM php:8.4-apache

    RUN docker-php-ext-install mysqli pdo_mysql
  3. Buat File compose.yaml Buat file compose.yaml:

    version: '3.8'

    services:
    web:
      build: .
      container_name: absensi-web
      depends_on:
        - db
      volumes:
        - ./src:/var/www/html:Z
      ports:
        - "8080:80"
      restart: unless-stopped

    db:
      image: mysql:8.0
      container_name: absensi-db
      environment:
        MYSQL_ROOT_PASSWORD: rootpass123  # Ganti dengan password kuat!
        MYSQL_DATABASE: absensi_db
        MYSQL_USER: absensi_user
        MYSQL_PASSWORD: userpass123  # Ganti
      volumes:
        - dbdata:/var/lib/mysql:Z
      restart: unless-stopped

    phpmyadmin:
      image: docker.io/phpmyadmin/phpmyadmin:latest
      container_name: absensi-pma
      depends_on:
        - db
      environment:
        PMA_HOST: db
        PMA_PORT: 3306
        MYSQL_ROOT_PASSWORD: rootpass123  # Sama dengan atas
      ports:
        - "8081:80"
      restart: unless-stopped

    volumes:
    dbdata:

  1. Edit config.php Ubah host database menjadi 'db' (bukan localhost), dan sesuaikan username/password sesuai compose.yaml.

  2. Fix Permission (SELinux di Fedora)

    podman unshare chown -R 33:33 src
  3. Jalankan Semua Container

    podman-compose up -d --build
  4. Import Database Buka http://localhost:8081 (phpMyAdmin), login sebagai root, lalu import file .sql dari aplikasi.

  1. Akses Aplikasi Absensi Buka http://localhost:8080 – dashboard absensi siswa siap pakai!

Tips Praktis

  • Stop semua: podman-compose down

  • Backup database: podman exec absensi-db mysqldump -u root -prootpass123 absensi_db > backup.sql

  • Update kode: Edit file di folder src, refresh browser – langsung berubah!

Tutorial ini sudah saya praktekkan dan 100% berhasil pada Desember 2025. Cocok untuk sekolah yang butuh sistem absensi sederhana tapi handal.

Unduh aplikasinya sekarang: https://github.com/natedekaka/absensi-siswa.git


Ada pertanyaan atau error? Komentar di bawah ya! Semoga bermanfaat untuk rekan guru dan developer.

Posting Komentar

Lebih baru Lebih lama