PHPackages                             laranail/installer-headless - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. laranail/installer-headless

ActiveLibrary[CLI &amp; Console](/categories/cli)

laranail/installer-headless
===========================

Headless, framework-friendly Laravel application installer engine — requirements checks, .env generate/update, DB connection test, migration/seeder runner, admin creation, pluggable step pipeline, install lock, and CLI/TUI. Web UI ships separately in laranail/installer-web.

v0.3.0(1mo ago)011MITPHPPHP ^8.4.1 || ^8.5CI failing

Since Jun 28Pushed 1mo agoCompare

[ Source](https://github.com/laranail/installer-headless)[ Packagist](https://packagist.org/packages/laranail/installer-headless)[ Docs](https://opensource.simtabi.com/products/laranail/installer-headless)[ RSS](/packages/laranail-installer-headless/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (52)Versions (4)Used By (1)

laranail/installer-headless
===========================

[](#laranailinstaller-headless)

[![Tests](https://github.com/laranail/installer-headless/actions/workflows/tests.yml/badge.svg)](https://github.com/laranail/installer-headless/actions/workflows/tests.yml)[![Static analysis](https://github.com/laranail/installer-headless/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/laranail/installer-headless/actions/workflows/static-analysis.yml)[![License: MIT](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

> Headless installer engine for any Laravel app — requirements checks, `.env`generate/update, DB connection test, migrations/seeder, user creation, a pluggable step pipeline, an install-once lock, and a full CLI/TUI. The web UI ships separately as [`laranail/installer-web`](https://opensource.simtabi.com/installer-web/).

This package contains **all** the install logic and no UI coupling, so it runs fully headless (CI, Docker, servers with no browser) and can be driven by any front end through a small public API.

Contents
--------

[](#contents)

- [Requirements](#requirements)
- [Installation](#installation)
- [Quick start](#quick-start)
- [The step pipeline](#the-step-pipeline)
- [License verification](#license-verification)
- [Documentation](#documentation)
- [Local development](#local-development)
- [Sister packages](#sister-packages)
- [Contributing &amp; security](#contributing--security)
- [License](#license)

Requirements
------------

[](#requirements)

RequirementConstraintPHP`^8.4.1` (8.4, 8.5)Laravel`^13.0`Depends on`laranail/package-tools`, `laranail/console`, `laranail/license-verifier`Installation
------------

[](#installation)

```
composer require laranail/installer-headless
```

The service provider is auto-discovered. Publish the config to customize:

```
php artisan vendor:publish --tag=laranail/installer-headless::config
```

Quick start
-----------

[](#quick-start)

Web wizard: install [`laranail/installer-web`](https://opensource.simtabi.com/installer-web/)and visit `/install`.

Headless (CI / Docker):

```
php artisan laranail::installer.install \
  --db-driver=mysql --db-host=127.0.0.1 --db-name=app \
  --db-username=root --db-password=secret \
  --app-name="My App" --app-url=https://example.com \
  --user-name="Ada" --user-email=ada@example.com --user-password=secret \
  --no-interaction
```

Programmatic (any front end):

```
use Simtabi\Laranail\Installer\Headless\InstallerEngine;
use Simtabi\Laranail\Installer\Headless\Support\InstallerContext;

app(InstallerEngine::class)->run(InstallerContext::fromInput($validatedInput));
```

The step pipeline
-----------------

[](#the-step-pipeline)

The default pipeline (each step is config-toggleable and reorderable):

`welcome` → `requirements` → `environment` → `migrate` → `user` → `license`(off by default) → `final`.

Steps are held in a `StepRegistry` you can extend at runtime — register, insert (`before`/`after`), reorder (priority), disable, or replace a step without editing the package. A generic, working `ChoiceStep` ships disabled for re-adding theme/preset-style selection from config alone. See [docs/tools/steps.md](docs/tools/steps.md).

License verification
--------------------

[](#license-verification)

Off by default (open-source friendly). When enabled, the license step delegates to [`laranail/license-verifier`](https://opensource.simtabi.com/license-verifier/)— pick any driver (Envato, Keygen, Lemon Squeezy, …) via that package's config. See [docs/tools/license.md](docs/tools/license.md).

Documentation
-------------

[](#documentation)

Hosted at `opensource.simtabi.com/installer-headless/docs/`; the same pages live under `docs/`:

- [Installation](docs/installation.md) — requirements, install, publishing
- [Configuration](docs/configuration.md) — every `installer.*` config key
- [Architecture](docs/architecture.md) — engine, steps, state, the two-package boundary
- [Wizard engine](docs/tools/wizard.md) — one definition (fields + rules) drives CLI + web; single validation path
- [Release](docs/release.md) — tag-driven releases
- [CLI &amp; TUI](docs/tools/cli.md) — every `laranail::installer.*` command
- [Environment files](docs/tools/env.md) — `EnvFile`/`EnvWriter` (generate + update)
- [Extending steps](docs/tools/steps.md) — add/insert/reorder/replace; `ChoiceStep`; per-product pipelines
- [Runtime DSL](docs/tools/extending.md) — the `Installer` facade: reshape steps/fields/hooks/pipelines from your provider
- [Access lockdown](docs/tools/security.md) — IP allowlist, token/password gate, time window, throttling, headers, auto-disable
- [Events &amp; notifications](docs/tools/events.md) — lifecycle events, the notification layer, `Installer::fake()`
- [Shared hosting](docs/tools/shared-hosting.md) — cPanel/no-SSH: file stores, permissions, web-driven setup
- [Admin panels](docs/tools/panels.md) — make Filament/Nova (or any tool) succeed via the installer's seams
- [License drivers](docs/tools/license.md) — enable, swap driver, capabilities

Local development
-----------------

[](#local-development)

```
composer install
composer test      # Pest
composer lint      # Pint + PHPStan + Rector (dry run)
composer format    # apply Pint
```

Sister packages
---------------

[](#sister-packages)

- [`laranail/installer-web`](https://github.com/laranail/installer-web) — the web wizard UI
- [`laranail/license-verifier`](https://github.com/laranail/license-verifier) — license verification
- [`laranail/database-tools`](https://github.com/laranail/database-tools) — optional SQL-dump import

Contributing &amp; security
---------------------------

[](#contributing--security)

See [CONTRIBUTING.md](CONTRIBUTING.md). Report vulnerabilities per [SECURITY.md](SECURITY.md) (→ ).

License
-------

[](#license)

MIT © Simtabi LLC. See [LICENSE](LICENSE).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance91

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

3

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3108393?v=4)[Simtabi](/maintainers/simtabi)[@simtabi](https://github.com/simtabi)

---

Top Contributors

[![imanimanyara](https://avatars.githubusercontent.com/u/19682005?v=4)](https://github.com/imanimanyara "imanimanyara (1 commits)")

---

Tags

cliinstallerlaravelossphpwizardclilaravelinstallerenvheadlesswizardsetuplaranail

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/laranail-installer-headless/health.svg)

```
[![Health](https://phpackages.com/badges/laranail-installer-headless/health.svg)](https://phpackages.com/packages/laranail-installer-headless)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M341](/packages/laravel-ai)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9922.4M147](/packages/roots-acorn)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

80427.1M249](/packages/laravel-mcp)[illuminate/queue

The Illuminate Queue package.

20433.0M1.9k](/packages/illuminate-queue)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
