Skip to content

Local setup

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
Terminal window
git clone https://github.com/alexkolovsky/flowery.git
cd flowery
createdb flowery && createdb flowery_test
composer setup # composer install, .env, key, migrate, npm ci, build
php artisan db:seed # reference data + two demo workspaces

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

Terminal window
composer dev # php server + queue + logs + vite in one terminal
npm run dev # only this if Herd serves PHP

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.

Terminal window
cd docs
npm install
npm run dev # http://localhost:4321/docs/
npm run build # static output in public/docs, served at http://flowery.test/docs/