Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Drift

Latest Version on Packagist PHP Version Laravel Version GitHub Tests Action Status Total Downloads

Laravel Drift is a pre-deploy environment validation and configuration drift detection tool. It acts as a gatekeeper, comparing your .env against .env.example and running safety checks before your application boots.

Key Features

  • No-Boot Validation: Runs without booting the Laravel application container for maximum safety and speed.
  • Drift Detection: Identifies missing keys in .env or orphan keys in .env.example.
  • Safety Gates: Prevents common deployment disasters like APP_DEBUG=true in production or using placeholder APP_KEY values.
  • Extensible Rules: Easily add your own custom validation rules.
  • CI/CD Integration: Simple exit code contracts to block failing builds.

Installation

You can install the package via composer:

composer require fr3on/laravel-drift

You can publish the config file with:

php artisan vendor:publish --tag="drift-config"

Usage

Run the drift check:

php artisan drift:check

In your CI/CD pipeline, use the --strict flag to treat warnings as errors:

php artisan drift:check --strict

Built-in Rules

Rule Description Status
AppDebugRule Ensures APP_DEBUG is false when APP_ENV is production. Fail
AppKeyRule Validates presence, length, and ensures no placeholder values are used. Fail
CompletenessRule Compares .env keys against .env.example. Fail/Warn
QueueDriverRule Warns if QUEUE_CONNECTION=sync is used in production. Warn

Custom Rules

You can create custom rules by implementing the Fr3on\Drift\Contracts\DriftRule interface:

use Fr3on\Drift\Contracts\DriftRule;
use Fr3on\Drift\EnvMap;
use Fr3on\Drift\RuleResult;

class MyCustomRule implements DriftRule
{
    public function check(EnvMap $env, EnvMap $example): RuleResult
    {
        if ($env->missing('MY_REQUIRED_KEY')) {
            return RuleResult::fail('MY_REQUIRED_KEY is missing!');
        }

        return RuleResult::pass();
    }
}

Register your rules in config/drift.php.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Pre-deploy environment validation & config drift detection for Laravel applications.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages