Assalamu Alaikum 👋
Explore my work & let's build something great - InshAllah
Laravel Deployment Checklist
Going live with a Laravel app? Don't deploy from memory. Pick your project type and features, and get the exact production checklist — server, DB, cache, security, the works.
Build my checklistFeatures your app uses
Deployment Checklist
25
steps for your Laravel app
19
Critical
6
Recommended
0
Optional
Server Setup
- Ubuntu LTS serverCriticalA stable, supported Linux base.
- Nginx + PHP-FPMCriticalWeb server reverse-proxying PHP-FPM.
- PHP 8.2+ with required extensionsCriticalmbstring, bcmath, intl, pdo_mysql…
- Composer (--no-dev on prod)CriticalInstall with --optimize-autoloader.
- Supervisor (keep workers alive)CriticalAuto-restarts queue/horizon workers.
Database
- MySQL / PostgreSQLCriticalPrimary database with a dedicated user.
- Automated daily backupsCriticalScheduled dumps stored off-server.
- Index optimizationCriticalIndexes on foreign keys & hot columns.
Cache
- Config/route/view cacheCriticalphp artisan optimize — big prod speedup.
- Redis (cache + sessions)CriticalFast cache, session & queue driver.
- Queue on Redis/SQS (not sync)CriticalMove slow jobs off the request.
Security
- SSL / HTTPS (Let's Encrypt)CriticalForce HTTPS, auto-renew certs.
- APP_DEBUG=false, APP_ENV=productionCriticalNever leak stack traces to users.
- Correct storage & cache permissionsCriticalwww-data owns storage, bootstrap/cache.
- Firewall (ufw)CriticalOnly 22/80/443 open.
- Fail2BanRecommendedBlocks brute-force on SSH & login.
Monitoring
- Error tracking (Sentry / Flare)RecommendedCapture exceptions with context.
- Uptime monitoringRecommendedAlert when the site is down.
- Log rotation (daily channel)RecommendedStops logs filling the disk.
Deployment
- Environment variables (.env)CriticalSecrets out of git, set per-server.
- Scheduler cron (schedule:run)CriticalOne cron entry runs all scheduled tasks.
- Queue workers via SupervisorCriticalphp artisan queue:work, restarted on deploy.
- Storage symlink (storage:link)CriticalPublic access to uploaded files.
- CI/CD pipelineRecommendedAutomated test, build & deploy.
- Zero-downtime deploy (Deployer/Envoyer)RecommendedAtomic releases with rollback.
Deploy Laravel like a pro
Laravel makes building easy, but production is a different game. A forgotten storage:link breaks your image uploads, a missing queue worker silently drops your emails, and APP_DEBUG left on quietly leaks your secrets. This Laravel production checklist covers the whole journey — server setup, MySQL and backups, Redis cache, SSL and firewall, monitoring, and a clean CI/CD deployment.
Common questions
What do I need to deploy a Laravel app to production?
At minimum: a Linux server (Ubuntu), Nginx + PHP-FPM, PHP 8.2+, Composer, MySQL, SSL, and your .env configured with APP_DEBUG=false. Add Redis, queue workers and Supervisor once you use queues or notifications. This tool builds the exact list for your project and features.
Why is APP_DEBUG=false so important?
With debug on, Laravel shows full stack traces — including your database credentials and file paths — to anyone who triggers an error. On production it's a serious security leak. Always set APP_DEBUG=false and APP_ENV=production. It's marked Critical here for that reason.
Do I really need Redis and Supervisor?
If you use queues, notifications or chat — yes. Redis gives you fast cache, sessions and a real queue driver (never use 'sync' in production). Supervisor keeps your queue workers alive and restarts them automatically. For a simple website they're optional, and the tool reflects that.
Is this checklist free?
Yes — completely free, runs in your browser, nothing stored. Hit Copy to save your checklist and tick items off as you deploy.
Explore the rest of the free developer tools.
All tools