igne-agency / laravel-boot-up
Boot a Laravel project on any machine with one command: php artisan app:up installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets and serves via Herd, Sail or artisan serve, then runs Laravel's own dev terminal and cleanly stops
Package info
github.com/IGNE-Agency/laravel-boot-up-package
pkg:composer/igne-agency/laravel-boot-up
Requires
- php: ^8.3
- composer/semver: ^3.4
- laravel/framework: ^13.25
- laravel/prompts: ^0.3.21
Requires (Dev)
- larastan/larastan: ^3.10
- laravel/pint: ^1.27
- mockery/mockery: ^1.6
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-29 15:27:36 UTC
README
A development-only Laravel package that sets a project up on any machine — even
a blank one — with one command, runs it with Laravel's own php artisan dev,
and cleanly shuts it down again when you quit.
Requires PHP 8.3+, Laravel 13, macOS or Linux (native Windows fails fast with a clear message — use WSL2). Development only.
Installation
composer require igne-agency/laravel-boot-up --dev
The package auto-registers via Laravel's package discovery. Always use --dev;
this package has no business in production.
Quickstart
composer install php artisan app:up # once, after a clone — and it keeps going into dev php artisan dev # every day
app:up installs the tools you're missing, creates your .env, enables the
project's git hooks, sets up the database, installs dependencies, runs
migrations, builds assets, and serves the app via Herd, Sail, or
php artisan serve. Then it runs php artisan dev for you, opens the app
in your browser once it can actually render it, and when you quit that terminal
it stops everything it started — the whole session in one command.
dev is Laravel's own dev command: each process gets its own searchable tab,
and boot-up only decides which processes this project needs. It starts in
milliseconds, and says to run app:up if the project is not ready. Run on its
own it leaves the server up when you quit; app:down stops everything boot-up
started — and nothing it didn't.
Your own processes join dev exactly as they would in any Laravel application:
use Illuminate\Foundation\DevCommands; DevCommands::register('stripe listen --forward-to '.config('app.url'))->orange();
boot-up only decides which of the built-in processes your project actually needs
— no queue worker on a sync connection, no log tail without Pail, no vite
without a dev script, and every command rewritten to run inside Sail's
containers when that is where the project lives. See
Dev processes.
Commands
| Command | What it does |
|---|---|
app:up |
Set up the application, run it, and stop it again when you quit. |
dev |
Run the dev processes this project needs. |
app:down |
Stop tracked processes and the server app:up started. |
app:status |
Show the active server and tracked processes. |
app:deploy |
Install, run project commands and migrate — without booting a server. |
generate:deploy-script |
Export a paste-ready deployment script (Forge, fortrabbit). |
generate:pipeline |
Generate a CI/CD pipeline (GitHub, Bitbucket) plus shared scripts. |
generate:git-hooks |
Install a tracked Pint pre-commit hook that says how to fix failures. |
Every flag is documented in docs/COMMANDS.md — and
php artisan list / php artisan app:up --help are always authoritative.
CI test environment
generate:pipeline also writes .env.pipeline, the environment the pipeline
copies over .env before the checks run. It targets in-memory SQLite out of
the box; pipeline.env in config/boot-up.php changes that:
'pipeline' => [ 'env' => [ 'DB_CONNECTION' => 'mysql', 'DB_DATABASE' => 'laravel', 'DB_USERNAME' => 'root', ], ],
Keys the template already has (DB_CONNECTION, CACHE_STORE, ...) are
replaced in place, new keys are appended, and values are written verbatim.
APP_KEY keeps being preserved across runs, so leave it out. See
Override the test environment.
Documentation
- Commands and options: docs/COMMANDS.md
- Configuration (publish with
php artisan vendor:publish --tag=boot-up-config): docs/CONFIGURATION.md - Deployment scripts: docs/DEPLOYMENTS.md
- CI/CD pipelines: docs/PIPELINES.md
- Extending the package (dev processes, servers, steps, tools, platforms, providers): docs/EXTENDING.md
- Project commands around deploys: docs/CUSTOM_COMMANDS.md
Testing
composer test # Pest suite (unit + feature + architecture tests) composer analyse # PHPStan, level 6, no baseline vendor/bin/pint # code style
The pre-commit hook runs Pint on staged files and PHPStan across the package.
Analysis covers src/ and config/; tests are left out because Pest binds
$this inside test closures at runtime, which static analysis reads as Pest's
own TestCall and reports by the thousand.
License
- This package: MIT License