Local setup
Requirements
Section titled “Requirements”| Tool | Version | Notes |
|---|---|---|
| PHP | 8.3 | Matches CI |
| Composer | 2.x | |
| Node | 22 | .nvmrc provided |
| PostgreSQL | 18 | Herd ships it; the only supported engine |
| Local hosts | Laravel Herd or Valet | For *.test wildcard DNS |
First-time setup
Section titled “First-time setup”git clone https://github.com/alexkolovsky/flowery.gitcd flowerycreatedb flowery && createdb flowery_testcomposer setup # composer install, .env, key, migrate, npm ci, buildphp artisan db:seed # reference data + two demo workspacescomposer setup copies .env.example to .env. The defaults assume APP_URL=http://flowery.test, APP_DOMAIN=flowery.test, CONTROL_PANEL_PATH=control and PostgreSQL on 127.0.0.1:5432 with database flowery, user root, no password. Tests use the committed .env.testing and the flowery_test database; never point it at flowery, because the suite wipes its database.
Flowery is routed by hostname, so localhost does not work.
| Host | What lives there |
|---|---|
http://flowery.test |
Login, registration, onboarding; / redirects to your workspace |
http://{slug}.flowery.test |
Public storefront |
http://{slug}.flowery.test/control |
Control panel (membership required) |
With Herd or Valet, park or link the project directory and every subdomain resolves. Without them, add each hostname to /etc/hosts and serve with php artisan serve --host=flowery.test.
Running
Section titled “Running”composer dev # php server + queue + logs + vite in one terminalnpm run dev # only this if Herd serves PHPDemo data
Section titled “Demo data”php artisan db:seed is idempotent and creates the AI provider registry, the flower dictionary and two workspaces, test-shop and second-shop, each with owner, admin, manager, staff and viewer accounts, four flowers, three bouquets, three packagings, one supplier delivery with fresh, expiring, expired and partially consumed batches, and five orders across every status. The manager of test-shop is also a viewer in second-shop. All demo accounts share DEMO_PASSWORD from .env.
Documentation site
Section titled “Documentation site”cd docsnpm installnpm run dev # http://localhost:4321/docs/npm run build # static output in public/docs, served at http://flowery.test/docs/