Aplikasi pemesanan burjo — Laravel 13 + Livewire 3 + Reverb, berjalan di atas Laravel Sail (Docker) dengan FrankenPHP worker mode dan Cloudflare Tunnel.
- Docker Desktop terinstall dan running
- PHP >= 8.3 & Composer (untuk
composer devdi host) - Bun (package manager frontend)
Buka Docker Desktop, atau cek lewat terminal:
docker infoKalau error Cannot connect to the Docker daemon, jalankan dulu Docker Desktop-nya.
composer install
cp .env.example .env # jika belum ada .env
php artisan key:generate
bun install --ignore-scriptsAtau cukup:
composer setupvendor/bin/sail up -dService yang akan jalan:
| Service | Port | Keterangan |
|---|---|---|
laravel.test |
80 | Sail default (PHP-FPM dev) |
frankenphp |
8081 | App utama (worker mode) → http://localhost:8081 |
cloudflared |
— | Tunnel publik via trycloudflare.com |
pgsql |
5432 | PostgreSQL 18 |
redis |
6379 | Redis |
vendor/bin/sail artisan migrate:fresh --seedPilih salah satu sesuai kebutuhan:
a. Development lokal (dengan HMR):
composer devMenjalankan queue worker, Reverb (port 8080), Pail, dan Vite dev server. Cocok untuk akses localhost:8081 saja — CSS/JS akan rusak jika diakses via tunnel.
b. Demo / akses via Cloudflare Tunnel:
composer tunnelMenjalankan queue worker, Reverb, Pail, dan bun run build --watch (asset di-build, tanpa dev server). Aman diakses dari URL tunnel maupun localhost.
- Lokal: http://localhost:8081
- Publik (pengganti ngrok), cek URL tunnel:
docker compose logs cloudflared | grep trycloudflareContoh output: https://random-words.trycloudflare.com
Jika butuh absolute URL (misal callback Midtrans), update
APP_URLdi.envdengan URL tunnel tersebut.
| Role | Password | |
|---|---|---|
| Admin | admin@burjo.test | password |
| Kasir | kasir@burjo.test | password |
Aplikasi live di memori (bukan request-per-proses), jadi:
- Setelah mengubah
.env, config, atau kode provider → restart:vendor/bin/sail compose restart frankenphp
- Setelah mengubah Caddyfile/Dockerfile frankenphp → rebuild:
docker compose up -d --build frankenphp
- URL trycloudflare berubah setiap kali container
cloudflareddi-recreate (restart biasa tidak mengubah URL).
vendor/bin/sail artisan testvendor/bin/sail bin pint --dirty
vendor/bin/phpstan| Masalah | Solusi |
|---|---|
| Port 8080/8081/443 sudah dipakai | Matikan proses lain yang memakainya, atau set FRANKENPHP_PORT=xxxx di .env |
Class "Redis" not found |
Ekstensi redis hilang dari build image → docker compose up -d --build frankenphp |
| Halaman redirect ke HTTPS lalu gagal | Pastikan mount docker/frankenphp/Caddyfile:/etc/frankenphp/Caddyfile masih ada di compose.yaml |
Perubahan .env tidak berefek |
Restart frankenphp (worker mode cache config) |
| CSS/JS rusak via tunnel | Vite dev server tidak bisa diakses dari tunnel → gunakan composer tunnel (build mode), pastikan tidak ada file public/hot |
| Asset/lottie 404 | Pastikan symlink public/storage relatif (-> ../storage/app/public) |