This zip is built on the real, official Laravel 12 skeleton — artisan, bootstrap/, config/, and public/index.php are all authentic framework files, with the application layer merged in on top. Follow the steps below to get it running.
Confirm these are installed before you unzip the project:
mbstring, openssl, pdo_mysql, curl, fileinfo extensionsUnzip the project and run composer install. This is the one step that requires internet access on your machine — it downloads the Laravel framework and every package this build depends on straight from the included composer.json.
laravel/sanctum, guzzlehttp/guzzle, pragmarx/google2fa-laravel, and spatie/laravel-sluggable are already in composer.json alongside laravel/framework ^12.0.
Then open .env and set your database connection:
| Key | Purpose |
|---|---|
DB_CONNECTION | Defaults to mysql — set to sqlite for a zero-config local DB (create database/database.sqlite and leave the rest blank) |
DB_DATABASE, DB_USERNAME, DB_PASSWORD | Your local MySQL credentials |
MAIL_* | Fallback SMTP — can also be set live from Admin → Settings → Email |
AI_ENABLED, AI_PROVIDER, AI_API_KEY | Fallback AI config — can also be set live from Admin → AI Settings |
One command creates every table and fills it with realistic sample content — practice areas, attorney profiles with headshots, blog posts with cover images, FAQs, testimonials, and a few sample contacts/appointments.
picsum.photos and i.pravatar.cc — free, non-copyrighted placeholder services.
Visit http://localhost:8000 for the public site and http://localhost:8000/admin/login for the admin panel. The login page shows the demo credentials automatically (hidden in production).
Off by default. Every AI-dependent button and the chatbot widget check a single flag before doing anything.
| Symptom | Likely Cause / Fix |
|---|---|
| Login page throws an error on submit | Run php artisan config:clear — usually a stale rate-limiter/config cache |
| AI buttons return an error | Confirm AI is enabled and a valid API key is saved under AI Settings |
| Uploaded images 404 | You skipped php artisan storage:link in Step 3 |
composer install fails on a package | Confirm PHP 8.2+ and that required extensions (mbstring, pdo_mysql, curl) are enabled |
| Blank white page / 500 with no detail | Set APP_DEBUG=true in .env temporarily and check storage/logs/laravel.log |