Laravel 12 · Real Skeleton · No Build Step

Setup Guide

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.

~10
Minutes to Run
5
Setup Steps
0
Manual File Fixes
1Prerequisites 2Install Dependencies 3Configure Environment 4Migrate & Seed 5Run & Log In Enable AI ?Troubleshooting
1
Prerequisites

Confirm these are installed before you unzip the project:

  • PHP 8.2+ with mbstring, openssl, pdo_mysql, curl, fileinfo extensions
  • Composer 2.x
  • MySQL 8+ / MariaDB 10.6+ (or just use SQLite — see Step 3)
verify
php -v && composer -V
2
Unzip & Install Dependencies

Unzip 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.

terminal
# unzip the project, then: cd lawfarm composer install
Already wired up No manual package list to type in — laravel/sanctum, guzzlehttp/guzzle, pragmarx/google2fa-laravel, and spatie/laravel-sluggable are already in composer.json alongside laravel/framework ^12.0.
3
Configure the Environment
terminal
cp .env.example .env php artisan key:generate php artisan storage:link

Then open .env and set your database connection:

KeyPurpose
DB_CONNECTIONDefaults 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_PASSWORDYour local MySQL credentials
MAIL_*Fallback SMTP — can also be set live from Admin → Settings → Email
AI_ENABLED, AI_PROVIDER, AI_API_KEYFallback AI config — can also be set live from Admin → AI Settings
4
Migrate & Seed Dummy Data

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.

terminal
php artisan migrate --seed
What gets seeded 6 practice areas · 6 lawyer profiles with photos · 7 blog categories / 10 tags · 6 published blog posts with cover images · 10 FAQs · 6 client testimonials with avatars · 3 sample contact messages · 3 sample appointments · roles & permissions · one admin user with an avatar. All images come from picsum.photos and i.pravatar.cc — free, non-copyrighted placeholder services.
5
Run & Log In
terminal
php artisan serve

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).

URL
/admin/login
Email
admin@lawfarm.test
Password
ChangeMe123!
Before going live Change this password immediately if the app is ever deployed somewhere publicly reachable.
✦ Optional

Turn on AI features

Off by default. Every AI-dependent button and the chatbot widget check a single flag before doing anything.

  • Log in to the admin panel and go to AI Settings
  • Check Enable AI Features
  • Choose a provider — Anthropic or OpenAI — and paste an API key
  • Save, then try the "✨ Generate with AI" button on any new blog post
Note API keys are stored encrypted in the database, not in plaintext. Every call — success or failure — is logged under AI → Usage Logs with token counts where available.
? Troubleshooting

Common issues

SymptomLikely Cause / Fix
Login page throws an error on submitRun php artisan config:clear — usually a stale rate-limiter/config cache
AI buttons return an errorConfirm AI is enabled and a valid API key is saved under AI Settings
Uploaded images 404You skipped php artisan storage:link in Step 3
composer install fails on a packageConfirm PHP 8.2+ and that required extensions (mbstring, pdo_mysql, curl) are enabled
Blank white page / 500 with no detailSet APP_DEBUG=true in .env temporarily and check storage/logs/laravel.log