Skip to main content
Keep LaraOwl current to receive new features, security patches, and bug fixes. The process differs slightly between Docker and Composer installs. Follow the one that matches how you deployed.
Back up your database before every update. Migrations can alter schema and are not always reversible. Take a full database dump first.

Back up first

Regardless of install method, snapshot your data before upgrading:

Composer install

For a bare-metal / Composer deployment, update the code, dependencies, database, and compiled assets, then restart the background workers.
1

Enable maintenance mode

Take the app offline so no telemetry is processed against a half-migrated schema:
2

Pull the latest code

3

Update dependencies

Update PHP and frontend dependencies:
4

Run database migrations

Apply any new schema changes:
In an automated deploy pipeline, use php artisan migrate --force to run migrations without the interactive confirmation prompt.
5

Clear cached state

Flush stale cached config, routes, views, and events so the new version’s values are used:
6

Rebuild frontend assets

7

Restart background workers

Queue workers and Reverb hold the old code in memory until restarted. Restart them so they pick up the new version:
Your process manager (Supervisor) will automatically start fresh workers. Restart the Reverb process the same way if it is supervised.
8

Bring the app back online

For production it is often faster to cache config and routes after clearing them: run php artisan optimize once the update is complete.

Docker install

For a Docker deployment, pull the latest code, rebuild the image, and recreate the containers. Because the app, worker, scheduler, and Reverb all share the same image, rebuilding once updates every service.
1

Pull the latest code

If you deploy from a prebuilt image registry instead of building locally, pull the new image directly with docker compose pull and skip the --build flag in the next step.
2

Rebuild and restart the containers

Compose rebuilds the image and recreates only the containers that changed, restarting the app, Horizon worker, scheduler, and Reverb with the new code.
3

Run database migrations

Migrations do not run automatically on rebuild. Apply them inside the app container:
4

Clear cached state

After updating

  • Confirm the dashboard loads and the connection indicator shows real-time updates are live.
  • Send a test event from a monitored app and verify it appears.
  • Check the logs for migration or worker errors — see Troubleshooting.