eloquage / laravel-sail-extended
Extend Laravel Sail with additional runtimes, services, and Compose scaffolding.
Fund package maintenance!
Requires
- php: ^8.4
- illuminate/contracts: ^11.0||^12.0||^13.0
- laravel/sail: ^1.63
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^11.0.0||^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- spatie/laravel-ray: ^1.35
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Laravel Sail Extended extends Sail's sail:install, sail:add, and sail:publish commands. It scaffolds Docker Compose services and PHP runtime files for standard PHP, FrankenPHP, Swoole, and RoadRunner projects.
Requirements
- PHP 8.4 or newer
- Laravel 11, 12, or 13
- Laravel Sail 1.63 or newer
- Docker Compose
Install
composer require eloquage/laravel-sail-extended
Laravel package discovery registers the commands. Generate a PHP 8.5 development setup with MySQL and Redis:
php artisan sail:install --with=mysql,redis --php=8.5 --no-interaction ./vendor/bin/sail up -d
The command writes Compose files, runtime Dockerfiles, and a .sail-extended.json manifest under docker/.
Add services or choose a runtime
Add PostgreSQL with pgvector to an existing Sail Extended setup:
php artisan sail:add pgsql --pgsql-version=18 --pgsql-pgvector
Generate an Octane setup using FrankenPHP:
php artisan sail:install --with=mysql,redis --php=8.5 --octane --octane-server=frankenphp
Supported services include MySQL, PostgreSQL, MariaDB, MongoDB, Redis, Valkey, Memcached, Meilisearch, Typesense, MinIO, RustFS, Mailpit, RabbitMQ, Selenium, and Soketi. PostgreSQL, MySQL, MariaDB, MongoDB, Redis, Valkey, and Typesense also have replication templates.
Use php artisan sail:install --help or php artisan sail:add --help to see all options. The commands are interactive by default; pass --no-interaction and explicit service/runtime options for scripted use.
Configuration
Publish the package config when you need to change defaults:
php artisan vendor:publish --tag=sail-extended-config
The config file controls the default PHP version, Octane server, service versions, registry image, and Compose file names. Review generated Compose files and environment settings before using them in a deployment.
Tests
composer install
composer test
composer analyse
composer format -- --test
License
MIT. See LICENSE.md.
