Skip to main content
This guide uses SQLite so you can skip any database or Redis setup and get straight to a running app.
PAYMENT_WEBHOOK_SECRET must not be empty. PaymentWebhookController reads it at boot, and several Artisan commands fail if it is missing. The minimal value local-secret used below is sufficient for local work.

Prerequisites

  • PHP 8.2+
  • Composer 2
  • Node.js 20 and npm 10+

Setup

1

Install PHP and JS dependencies

composer install
npm install
2

Create your environment file

cp .env.example .env
Then open .env and set the following minimal variables:
.env
APP_NAME="Vito Business OS"
APP_URL=http://localhost:8000
DB_CONNECTION=sqlite
SESSION_DRIVER=database
CACHE_STORE=database
QUEUE_CONNECTION=database
PAYMENT_PROVIDER=generic
PAYMENT_WEBHOOK_SECRET=local-secret
3

Create the SQLite database file

touch database/database.sqlite
4

Generate the application key

php artisan key:generate
5

Run migrations and seed demo data

php artisan migrate --seed
The seeder creates:
  • A super admin account ([email protected] / password)
  • A tenant owner account ([email protected] / password)
  • 5 PRO tenants and 5 free tenants with products
  • 2 pending tenants awaiting approval
  • Categories, cities, departments, and municipalities
6

Link the storage directory

php artisan storage:link
7

Start all development processes

composer run dev
This runs four processes concurrently via concurrently:
ProcessCommand
HTTP serverphp artisan serve
Queue listenerphp artisan queue:listen --tries=1
Log viewerphp artisan pail --timeout=0
Vite dev servernpm run dev

What’s running

After composer run dev starts, you have:
URLSurface
http://localhost:8000Public site and all app routes
http://localhost:8000/adminFilament super admin panel
http://localhost:8000/appFilament tenant panel
http://localhost:5173Vite HMR dev server (proxied automatically)
The queue listener processes background jobs (reports, exports, emails, AI) in the same terminal session. The log viewer (pail) streams application logs.

Demo credentials

RoleEmailPassword
Super admin[email protected]password
Tenant owner (Sushi Master)[email protected]password
Log in to the super admin panel at /admin to approve tenants, manage users, and explore the full backoffice. Log in to the tenant panel at /app with the tenant owner credentials to see the business workspace.

Next steps

Full installation

Set up MySQL, Redis, Reverb, S3, and production queues.

Architecture overview

Understand the modular monolith and DDD layer structure.

Multi-tenancy

Learn how tenant isolation, routing, and panels work.

API reference

Explore the REST API v1 and authentication flows.

Build docs developers (and LLMs) love