Aplikasi manajemen perpustakaan berbasis web menggunakan Laravel 12 dengan Docker untuk environment yang konsisten dan mudah di-deploy.
-
Clone Repository
git clone [URL_REPOSITORY_ANDA] cd library_app -
Setup Environment
# Copy file .env.example ke .env cp .env.example .env -
Start Development Environment
Windows (PowerShell):
.\docker.ps1 dev up
Linux/Mac/WSL:
Penting: Pastikan file script memiliki izin eksekusi.
# Beri izin eksekusi (Hanya perlu sekali di awal) chmod +x docker.sh chmod +x docker/development/php-fpm/entrypoint.sh # Jalankan environment ./docker.sh dev up
-
Install & Run Frontend Assets Agar tampilan web normal (tidak berantakan), Anda harus menginstal dependensi frontend.
Windows:
.\docker.ps1 dev npm install .\docker.ps1 dev npm run dev
Linux/Mac/WSL:
./docker.sh dev npm install ./docker.sh dev npm run dev
-
Akses Aplikasi
- Aplikasi: http://localhost:8000
- phpMyAdmin: http://localhost:8080
- Admin:
[email protected] - Petugas:
[email protected] - Anggota:
[email protected] - Password:
password123
Project ini menggunakan pendekatan Dual-Environment dengan Docker:
Digunakan untuk sehari-hari saat coding.
- Fitur: Hot Reload (Vite), Debug Mode On, phpMyAdmin.
- URL:
http://localhost:8000 - Cara Pakai:
# Start .\docker.ps1 dev up # Coding Frontend (Hot Reload) - Biarkan terminal terbuka .\docker.ps1 dev npm run dev
Digunakan untuk mengetes hasil akhir sebelum deploy ke server asli.
- Fitur: Performa tinggi (Opcache/JIT), Security Headers, Caching Agresif, Gzip.
- URL:
http://localhost(Port 80) - Cara Pakai:
# Pastikan dev dimatikan dulu agar port tidak bentrok .\docker.ps1 dev down # Start Production .\docker.ps1 prod up # Reset Total (Jika ada error/cache membandel) .\docker.ps1 prod fresh
Script docker.ps1 (Windows) dan docker.sh (Linux/Mac) adalah teman terbaik Anda.
.\docker.ps1 status
# Menampilkan environment mana yang aktif dan port-nya.Jika Anda lupa command apa saja yang tersedia, gunakan:
.\docker.ps1 help
# atau
.\docker.ps1 listScript ini dilengkapi fitur maintenance canggih:
# 1. Prune System (Hapus Image Sampah)
# Membersihkan stopped containers, unused networks, dan unused images.
# GUNAKAN DENGAN HATI-HATI!
.\docker.ps1 prune
# 2. Reset Development (Soft Reset)
# Hapus container & volume dev, lalu build ulang & seed database.
.\docker.ps1 dev fresh
# 3. Reset Production (Soft Reset)
# Rebuild image prod + clear cache + fresh DB.
.\docker.ps1 prod fresh
# 4. NUCLEAR RESET (Hard Reset Project) π§¨
# Menghapus SEMUA container, image, dan volume KHUSUS project ini.
# Database akan hilang total. Gunakan jika ingin start benar-benar dar 0.
.\docker.ps1 resetGunakan perintah ini jika Anda melakukan perubahan pada Dockerfile atau konfigurasi image:
# Rebuild image Development
.\docker.ps1 dev build
# Rebuild image Production
.\docker.ps1 prod build# Build untuk Production (Wajib dijalankan jika ingin update asset di Prod)
.\docker.ps1 dev npm run build# Masuk ke shell container app
.\docker.ps1 dev bash
# Management Database
.\docker.ps1 dev artisan migrate # Update struktur tabel
.\docker.ps1 dev artisan db:seed # Isi data dummy/awal
.\docker.ps1 dev artisan migrate:fresh --seed # Reset Total (Hapus semua & ulang dari awal)
# Artisan command lainnya (jalankan di app container)
.\docker.ps1 dev artisan route:list
# Management Maintenance Mode
# Aktifkan maintenance mode (Publik lihat 503)
.\docker.ps1 dev artisan down
# Aktifkan maintenance mode dengan BYPASS (Untuk Admin agar tetap bisa akses)
.\docker.ps1 dev artisan down --secret="opensesame"
# Akses URL: http://localhost:8000/opensesame (Hanya sekali untuk set cookie)
# Setelah itu bisa akses web seperti biasa (edit/preview).
# Matikan maintenance mode (Web kembali live)
.\docker.ps1 dev artisan up- Penyebab: Container
webapp(Nginx) sudah jalan, tapiapp(PHP-FPM) belum selesai startup atau crash. - Solusi:
- Tunggu 10-30 detik (migrasi database di Windows agak lama).
- Cek logs:
.\docker.ps1 prod logs. - Jika stuck, gunakan jurus andalan:
.\docker.ps1 prod fresh.
- Penyebab: Docker di Windows menggunakan filesystem NTFS yang lambat untuk banyak file kecil (seperti
vendor/dannode_modules/). - Solusi:
- Gunakan WSL 2 (Ubuntu) untuk menyimpan project code.
- Development environment sudah di-tuning dengan Opcache, tapi Production environment akan jauh lebih ngebut.
- Melakukan
.\docker.ps1 prod freshbiasanya menyelesaikan masalah ini karena perintah tersebut akan membuat ulang struktur direktori cache yang dibutuhkan.
Jika Anda lebih memilih menggunakan XAMPP atau Laragon:
Pastikan sudah terinstal:
git clone [URL_REPOSITORY_ANDA]
cd library_app# Backend
composer install
# Frontend
npm install# Copy .env
cp .env.example .env
# Generate key
php artisan key:generate
# Edit .env sesuaikan username/password database Anda- Buat database baru bernama
library_dbdi phpMyAdmin/HeidiSQL. - Jalankan migrasi:
php artisan migrate:fresh --seed
Buka 2 terminal berbeda:
Terminal 1 (PHP Server):
php artisan serveTerminal 2 (Vite/Tailwind):
npm run devAkses: http://127.0.0.1:8000
- Peta Dokumentasi - Mulai dari sini untuk melihat struktur folder
- Laporan Arsitektur - Detail teknis konfigurasi Production vs Development
- Panduan Environment - Panduan lengkap development vs production dan troubleshooting
- Jangan jalankan
devdanprodbersamaan kecuali Anda paham mapping port-nya, karena keduanya menggunakan resource database yang berbeda (terisolasi). - Setup Awal: Cukup jalankan
cp .env.example .envlalu.\docker.ps1 dev fresh. Anda langsung siap coding! - Login App:
- Admin:
[email protected](Pass:password123) - Petugas:
[email protected](Pass:password123) - Anggota:
[email protected](Pass:password123)
- Admin:
Dibuat dengan β€οΈ menggunakan Laravel 12 & Docker