laravel-deploy-checklist maintained by furkankufrevi
Description
An artisan command that verifies your Laravel app is production-ready. Checks debug mode, caches, migrations, environment, security headers, and more.
Last update
2026/03/16 22:45
(dev-main)
License
Downloads
0
Tags
Laravel Deploy Checklist
An artisan command that verifies your Laravel app is production-ready. Checks 14 common misconfiguration issues before you deploy.
Installation
composer require furkankufrevi/laravel-deploy-checklist --dev
The service provider is auto-discovered. To publish the config:
php artisan vendor:publish --tag=deploy-checklist-config
Usage
php artisan deploy:check
Strict mode (warnings = failures):
php artisan deploy:check --strict
Example Output
Deploy Checklist
Checking production readiness...
PASS Debug Mode: Debug mode is disabled.
PASS Environment: APP_ENV is 'production'.
PASS App Key: APP_KEY is set.
WARN Config Cache: Config is not cached. Run php artisan config:cache.
WARN Route Cache: Routes are not cached. Run php artisan route:cache.
PASS View Cache: Views are compiled.
PASS Event Cache: Events are cached.
PASS Migrations: All migrations have been run.
PASS App URL: APP_URL is set to 'https://myapp.com'.
PASS Log Channel: Log channel is 'daily'.
FAIL Mail Config: Mail driver is 'log'. Set a real mailer for production.
WARN Queue Driver: Queue driver is 'sync'. Jobs will block HTTP requests.
PASS Session Driver: Session driver is 'redis'.
PASS HTTPS: HTTPS is configured with secure cookies.
11 passed 3 warnings 1 failed
Not ready for deployment.
Checks
| Check | Level | What it verifies |
|---|---|---|
| Debug Mode | Fail | APP_DEBUG must be false |
| Environment | Fail/Warn | APP_ENV should be production |
| App Key | Fail | APP_KEY must be set |
| Config Cache | Warn | php artisan config:cache has been run |
| Route Cache | Warn | php artisan route:cache has been run |
| View Cache | Warn | php artisan view:cache has been run |
| Event Cache | Warn | php artisan event:cache has been run |
| Migrations | Fail | No pending migrations |
| App URL | Fail/Warn | APP_URL is set and uses HTTPS |
| Log Channel | Warn | Log rotation is configured |
| Mail Config | Fail | Mail driver isn't log or array |
| Queue Driver | Warn | Queue driver isn't sync |
| Session Driver | Fail/Warn | Session driver isn't array |
| HTTPS | Warn | HTTPS URL and secure cookies |
CI Integration
Add to your deployment pipeline:
- run: php artisan deploy:check --strict
Exits with code 1 on failures (or warnings in strict mode).
Configuration
Disable individual checks or enable strict mode globally:
// config/deploy-checklist.php
return [
'checks' => [
'debug_mode' => true,
'environment' => true,
'app_key' => true,
'config_cache' => true,
'route_cache' => true,
'view_cache' => true,
'event_cache' => true,
'pending_migrations' => true,
'app_url' => true,
'log_channel' => true,
'mail_config' => true,
'queue_driver' => true,
'session_driver' => true,
'https_only' => true,
],
'strict' => false,
];
License
MIT