Laravel Production Deployment Checklist

The complete checklist we use for every Laravel production deployment. Infrastructure, Forge setup, security hardening, database backups, queue workers, and monitoring — nothing missed.

50+
Checklist Items
50+
Successful Launches
0
Launch Day Failures

Why This Checklist Exists

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.

Pre-Launch: Project Assessment

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

1. Infrastructure (DigitalOcean)

Server provisioning and baseline infrastructure setup.

Droplet Setup

2. Laravel Forge Setup

Site configuration, deployment scripts, and worker processes.

Site Configuration

Deploy Script

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

Environment Variables

Queue Workers (if needed)

Scheduler (if needed)

3. Database

Database setup, backups, and security hardening.

Setup

Security (Remote/Managed DB)

4. Application Configuration

Laravel optimization and storage setup.

Laravel Production Settings

Storage & Caching

5. Third-Party Services

Error monitoring, analytics, email, and payments.

Error Monitoring (Required)

Email

Payments (if applicable)

6. Security

Baseline security and access controls.

Baseline Security

Access Control

7. DNS & Domain

8. Pre-Launch Testing

Smoke tests before going live.

Smoke Tests

Performance & Error Handling

9. Launch Day

Final Checks

Deploy & Verify

10. Post-Launch

First Hour

First 24 Hours

Quick Reference: Common Commands

SSH Access

ssh forge@your-server-ip
cd /home/forge/your-site.com

Clear All Caches

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

Rebuild Caches

php artisan config:cache
php artisan route:cache
php artisan view:cache

Debugging

# 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

Frequently Asked Questions

What should I check before deploying Laravel to production?

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.

What's the best way to deploy Laravel applications?

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.

How do I optimize Laravel for production?

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.

What security measures are essential for Laravel in production?

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.

How do I set up Laravel queue workers in production?

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.

Need Help With Your Laravel Deployment?

We've deployed 50+ Laravel applications to production. If you need help with infrastructure setup, security hardening, or performance optimization — we can help.