Troubleshooting¶
composer require stops with a conflict on brick/math¶
Web Push pulls web-token/jwt-library, which caps brick/math at ^0.17, while a brand new Laravel app
ships 0.18. Install with -W so composer may downgrade that single transitive dependency:
Opening / answers 500: Route [login] not defined¶
In server mode an unauthenticated visitor is sent to the host application's login route, and a Laravel
application installed without a starter kit does not have one — so the redirect throws instead of showing a
form. Add an authentication flow (a Laravel starter kit, Breeze, Fortify, or your own route named login) and
sign in. On a trusted machine you can also skip authentication entirely with GRIGLIA_MODE=local, which makes
lists global: never expose that mode to a network.
The board has no styles, or the drag & drop does nothing¶
The assets are not in place. In precompiled mode run
php artisan vendor:publish --tag=griglia-assets --force; in vite mode check the @source and the two
imports in your app.css / app.js, then npm run build. See Front-end assets.
A new route or a changed config is ignored¶
Cached configuration or routes:
Nothing updates live between devices¶
No broadcaster is configured, or the private channel is not authorised. Set the REVERB_* /
VITE_REVERB_* variables, rebuild the front-end assets and add the App.Models.User.{id} channel to
routes/channels.php. The board works without it — just without live refresh.
Web Push never arrives¶
- Generate the keys (
php artisan webpush:vapid) and addHasPushSubscriptionsto your user model. - Enable the device in Settings → Notifications, where the diagnostics panel shows permission, service worker and subscription state.
- On iOS notifications only work when the app has been added to the Home screen.
griglia:docs-build says MkDocs is missing¶
Install the toolchain (pip install -r requirements-docs.txt — Material plus the i18n plugin the bilingual
site needs) or build with Docker: --docker. See Building this site.
Attachments 404¶
Keep GRIGLIA_ATTACHMENTS_VIA_CONTROLLER=true (the default) and check that GRIGLIA_ATTACHMENTS_DISK
names a configured, writable disk (local by default). A storage symlink is neither needed nor used for
the private default disk.