The complete checklist we use for every Laravel production deployment. Infrastructure, Forge setup, security hardening, database backups, queue workers, and monitoring — nothing missed.
We've deployed over 50 Laravel applications to production. Every missed checkbox has cost us — a forgotten APP_DEBUG=true that exposed stack traces, a missing queue worker that silently dropped jobs, a backup that wasn't actually running.
This checklist is the result of those lessons. We use it on every single launch — no exceptions. Now you can use it too.
Pro tip:
Don't just read this — use the checkboxes. Go through it step by step before every deployment. The checkboxes save to your browser so you can track progress.
Answer these questions before starting the checklist. They determine which sections apply to your project.
| Is this HIPAA-compliant? | Affects: Security section, audit logging |
| Does it have payment processing? | Affects: Stripe/gateway verification |
| Does it need queue workers? | Affects: Forge worker configuration |
| Does it have scheduled tasks (cron)? | Affects: Forge scheduler |
| Does it handle file uploads? | Affects: Storage configuration, S3 |
| Expected traffic level? | Affects: Droplet sizing, caching |
| Does it send transactional emails? | Affects: Email provider setup |
Server provisioning and baseline infrastructure setup.
Site configuration, deployment scripts, and worker processes.
cd /home/forge/your-site.com
git pull origin $FORGE_SITE_BRANCH
$FORGE_COMPOSER install --no-dev --no-interaction --prefer-dist --optimize-autoloader
( flock -w 10 9 || exit 1
echo 'Restarting FPM...'; sudo -S service $FORGE_PHP_FPM reload ) 9>/tmp/fpmlock
if [ -f artisan ]; then
$FORGE_PHP artisan migrate --force
$FORGE_PHP artisan config:cache
$FORGE_PHP artisan route:cache
$FORGE_PHP artisan view:cache
$FORGE_PHP artisan storage:link
fi
Database setup, backups, and security hardening.
Laravel optimization and storage setup.
Error monitoring, analytics, email, and payments.
Baseline security and access controls.
Smoke tests before going live.
ssh forge@your-server-ip
cd /home/forge/your-site.com
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
# View logs
tail -f storage/logs/laravel.log
# Run migrations
php artisan migrate --force
# Restart queue workers
php artisan queue:restart
# Check queue status
php artisan queue:work --once
Key items include: APP_DEBUG=false, APP_ENV=production, proper database credentials, SSL certificate installed, cache configuration optimized (config:cache, route:cache, view:cache), error monitoring (Sentry) configured, and database backups scheduled.
Laravel Forge is the recommended deployment platform for Laravel apps. It handles server provisioning, SSL certificates, deployments, queue workers, and scheduled tasks. For larger applications, consider Laravel Vapor (serverless) or custom CI/CD pipelines with GitHub Actions.
Run these Artisan commands: php artisan config:cache, php artisan route:cache, php artisan view:cache, and php artisan optimize. Use Redis for cache and sessions. Enable OPcache in PHP. Set up proper database indexes and consider query caching for heavy read operations.
Essential security measures: HTTPS with valid SSL, APP_DEBUG=false, rate limiting on auth routes, CSRF protection enabled, secure session configuration, no .env file accessible via web, and IP-restricted database access. For sensitive apps, add audit logging and consider WAF protection.
Use Laravel Forge or Supervisor to manage queue workers. Configure multiple workers based on load (typically 2-4 for standard apps). Set appropriate timeout values, retry attempts, and implement failed job handling. Use Redis as the queue driver for best performance.
We've deployed 50+ Laravel applications to production. If you need help with infrastructure setup, security hardening, or performance optimization — we can help.