Check your setup#
Use weld:doctor to strike an arc across the local setup and see, one line per check, whether every joint holds.
What it checks#
weld:doctor strikes an arc across the local setup and reports every joint: the app key, writable storage, the database and pending migrations. One line per check, PASS or WARN or FAIL. The checks, by name:
app-key: PASS whenAPP_KEYis set; FAIL when it is empty, with a pointer tophp artisan key:generate.storage-writable: PASS whenstorageandbootstrap/cacheare both writable; FAIL when either is missing or not writable.database: PASS when the connection is up; FAIL names the exception class only, never the DSN, host or password.migrations: PASS when there are no pending migrations; WARN when some are pending (it lists them) or when it could not inspect them.
Run it#
Run it through the OS scripts or straight to the container:
PowerShell
.\bin\weld.ps1 doctor
macOS / Linux
bin/weld.sh doctor
Container
docker compose run --rm app php artisan weld:doctor
Read the report#
Each check prints one line: PASS, WARN or FAIL. The exit code is 1 when anything FAILs and 0 otherwise, so it works as a gate. Add --json to any of them for a machine-readable report. A good bead is a quiet one: all PASS and nothing to say.