Vite and Reverb
Harbour allocates VITE_PORT and REVERB_PORT. Its attached
workspace:dev session starts Laravel and Vite together; Reverb remains an
explicit project process.
Vite with no project changes
Laravel's default hot marker is public/hot. Every Git worktree has its own public/ directory, so the marker is already workspace-local. A normal Laravel 13 Vite project does not need custom hotFile code or an AppServiceProvider change.
The normal development path requires no manual port command:
composer workspace:dev
Harbour detects npm, pnpm, Yarn, or Bun from the project's lockfile, installs
missing Node dependencies, and passes the allocated Vite port with
--strictPort. For external process managers, the equivalent is:
eval "$(php artisan workspace:env --format=shell)"
npm run dev -- --host 127.0.0.1 --port "$VITE_PORT" --strictPort
strictPort makes an unexpected external collision visible instead of silently choosing a different port.
Advanced custom hot files
If a project deliberately configures VITE_HOT_FILE, provide it through
Harbour's configured variable values and use the same value in the Laravel Vite
plugin's JavaScript hotFile option. Harbour automatically applies the PHP-side
Vite::useHotFile setting through its service provider; no application provider
edit is needed. Harbour does not inject this variable by default, keeping both
Laravel and Vite on their shared public/hot convention.
Reverb
Generated environments set both client-facing REVERB_PORT and listener-facing REVERB_SERVER_PORT to the workspace allocation. Existing Reverb application credentials are retained through placeholders during installation.
Start Reverb normally:
eval "$(php artisan workspace:env --format=shell)"
php artisan reverb:start
Or pass listener values explicitly from an external process launcher:
php artisan reverb:start --host=127.0.0.1 --port="$REVERB_PORT"
Herd or Valet TLS remains a project/web-server concern. Harbour's zero-config path uses loopback HTTP and ports and requires no global DNS tool.