This article is based on source-code research (the
1.x branch). There are no official docs yet, and the package is pre-release (as of April 2026).What is Sentinel?
Laravel Sentinel is a security middleware package that controls access to routes using a driver-based approach. It’s developed by Taylor Otwell and Mior Muhammad Zaki and supports PHP ^8.0 / Laravel 8–13. Its primary use is protecting administrative routes like Telescope, Horizon, and Pulse. Just applySentinelMiddleware to routes and access is controlled by the authorization logic defined in the driver.
Compared to the traditional approach
Telescope and Horizon each had their owngate-based authorization mechanism.
Installation
SentinelServiceProvider is registered in composer.json’s extra.laravel.providers, the service provider is auto-detected. No config file publishing is needed.
Package architecture
Default driver (the Laravel driver) behavior
The defaultLaravel driver applies controls only in the local environment (APP_ENV=local).
Private IP detection
The baseDriver class’s isPrivateIp() uses Symfony’s IpUtils and treats the following IP ranges as private.
Docker local detection
REMOTE_ADDR is 127.0.0.1 and a .dockerenv file exists at the project root, the environment is judged to be Docker local.
Using it as middleware
Basic usage
Specifying a driver
You can pass a driver name as an argument to the middleware. If a non-existent driver name is passed, it falls back to the default driver (viadriverOrFallback()).
Middleware implementation
authorize() returns false, it aborts with HTTP 401. You can also throw an AuthorizationException via Driver::authorizeOrFail() (though the middleware itself does not use this).
Creating a custom driver
You can create a custom driver by extending theDriver abstract class and implementing authorize().
extend() in AppServiceProvider::boot(), for example.
Using base class utility methods
TheDriver class provides helpful utilities like IP detection that custom drivers can freely use.
How SentinelManager works
SentinelManager extends Illuminate\Support\Manager. Manager is Laravel’s base class for implementing the driver pattern; it caches driver instances via driver().
driverOrFallback() silently falls back to the default driver if the specified driver is missing, so passing a non-existent driver name to the middleware argument doesn’t error out.
Because SentinelManager is registered as a scoped singleton (scoped) by SentinelServiceProvider, the driver instance is reused within a single request.
Summary
laravel/sentinel is a small package, but its driver pattern via Illuminate\Support\Manager gives it high extensibility.
The default
Laravel driver is specialized in preventing access via tunneling services during local development. To protect production, you need to create your own custom driver. When official documentation lands, more concrete usage patterns should become clear.
laravel/sentinel repository
See the source and latest changes on the GitHub
1.x branch.