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-08-29 07:04:39 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, 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 pre-commit hook running the pipeline's Pint check. |
Every flag is documented in docs/COMMANDS.md — and
php artisan list / php artisan app:up --help are always authoritative.
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