Skip to content
Menu

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 when APP_KEY is set; FAIL when it is empty, with a pointer to php artisan key:generate.
  • storage-writable: PASS when storage and bootstrap/cache are 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.