Infrastructure

The Laravel deployment checklist that goes beyond “it loads.”

A green homepage is a good sign. It says very little about the queue, the next scheduled task, or whether yesterday’s database can be restored.

The short answer

A Laravel deployment is ready when the web application, background workers, scheduler, storage, security settings and recovery process have all been checked on the production environment.

Start with an application inventory

Before choosing a VPS size or installing a control panel, list what the application actually runs. Record the PHP and database versions, required extensions, queue connection, scheduled jobs, file storage, email provider and external APIs. A small brochure website and a video processing application have very different resource needs.

Look for work happening outside a browser request. A successful file upload may only create a job; a worker still needs to process it. A subscription reminder may depend on a scheduled command. If those processes are missing from the deployment plan, the site can appear healthy while important work silently stops.

Configure the web layer deliberately

Point the web server’s document root at Laravel’s public directory. Keep environment files, application source and logs outside the public web root. Set the production environment correctly, disable debug output, configure the application URL and use a valid HTTPS certificate.

Check ownership and write access for the directories Laravel needs, including storage and its cache directory. Avoid treating world-writable permissions as a fix. The web process should have the access it needs without giving every local user permission to modify the application.

  • Confirm the selected PHP version and extensions match the application.
  • Check HTTPS, redirects and the intended hostname.
  • Verify that sensitive files cannot be downloaded through the web server.
  • Test real uploads and generated file URLs using the configured storage disk.

Give queues and scheduled tasks an owner

Configure a process manager or the hosting platform’s equivalent to keep queue workers running and restart them after deployment. Make sure the worker uses the correct directory, environment and application release. Long-running workers can continue using old code unless they are restarted appropriately.

Set up Laravel’s scheduler according to the application version and hosting environment. Check server time zones and the schedule’s intended business time zone. Prevent overlapping executions when a task must not run twice, and decide what should happen when an execution fails.

For email, media processing and integrations, test one real job from start to finish. A queue entry being created is different from the job completing. Record failure details somewhere the person maintaining the system will actually see.

Prove the recovery path

Take a backup before database changes, and understand whether a migration can be reversed without losing new data. Keep backups outside the same failure boundary as the application server. A backup that disappears with the VPS is a limited recovery strategy.

Restore a recent backup into a separate environment and check that it contains both the database and any essential uploaded files. Keep deployment versions identifiable so that an application rollback has a known target. Database and code compatibility need to be considered together.

Test the workflows your users rely on

Use a short acceptance checklist: login and logout, role permissions, a form submission, a file upload, email delivery, one queue job, one scheduled task and any payment callback the application uses. Include failure cases such as a provider timeout or an invalid upload.

After launch, inspect logs, disk usage and worker status. Agree on who watches failures and who receives alerts. Reliable hosting is partly configuration and partly a clear maintenance responsibility.

Leave a useful handover

The handover should identify the deployment steps, environment variables without exposing their values, backup location, restore procedure, worker commands and the owner of each external account. It should also explain how to renew the domain, manage DNS and contact the hosting provider.

RETRIXDEV works on Linux deployment and server administration, including cPanel, WHM and application troubleshooting. Our cPanel and WHM project shows a hosting management setup; the exact deployment checklist still depends on your application.

References and next step

Use the documentation for your installed Laravel version: deployment, queues and task scheduling. Bring your current architecture and the workflow that is failing to a technical project discussion.

Keep exploring

More from the journal.