LaravelPackages.net
Acme Inc.
Toggle sidebar
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.

3
0
About furkankufrevi/laravel-deploy-checklist

furkankufrevi/laravel-deploy-checklist is a Laravel package for an artisan command that verifies your laravel app is production-ready. checks debug mode, caches, migrations, environment, security headers, and more.. It currently has 0 GitHub stars and 3 downloads on Packagist. Install it with composer require furkankufrevi/laravel-deploy-checklist. Discover more Laravel packages by furkankufrevi or browse all Laravel packages to compare alternatives.

Last updated

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

Comments