furkankufrevi / laravel-deploy-checklist
An artisan command that verifies your Laravel app is production-ready. Checks debug mode, caches, migrations, environment, security headers, and more.
Package info
github.com/furkankufrevi/laravel-deploy-checklist
pkg:composer/furkankufrevi/laravel-deploy-checklist
Requires
- php: ^8.1
- illuminate/console: ^10.0|^11.0|^12.0
- illuminate/database: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
This package is auto-updated.
Last update: 2026-05-16 22:13:10 UTC
README
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