PHPackages                             relayercore/laravel-installer - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. relayercore/laravel-installer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

relayercore/laravel-installer
=============================

A beautiful, reusable web-based installer for Laravel applications

v1.5.0(3w ago)1163MITPHPPHP ^8.2|^8.3|^8.4CI passing

Since Jan 9Pushed 3w agoCompare

[ Source](https://github.com/relayercore/laravel-installer)[ Packagist](https://packagist.org/packages/relayercore/laravel-installer)[ Docs](https://github.com/relayercore/laravel-installer)[ RSS](/packages/relayercore-laravel-installer/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (8)Versions (12)Used By (0)

Laravel Installer
=================

[](#laravel-installer)

[![Tests](https://github.com/relayercore/laravel-installer/actions/workflows/tests.yml/badge.svg)](https://github.com/relayercore/laravel-installer/actions/workflows/tests.yml)[![PHP Version](https://camo.githubusercontent.com/d840cef9807c8f76051ad687841d67f4d830c84e0d83236968e53124ef6742d5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e322d3838393242462e737667)](https://php.net/)[![Laravel Version](https://camo.githubusercontent.com/dd700a0a1988f8aae89200bae90f6490bf803bdb55766c5bd79f5f83a944175a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31302532302537432532303131253230253743253230313225323025374325323031332d4646324432302e737667)](https://laravel.com)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

A beautiful, reusable, and highly customizable web-based installer wizard for Laravel applications. Drop it into any project to provide a professional onboarding experience for your users — zero bloat, maximum flexibility.

Features
--------

[](#features)

- 🎨 **Beautiful UI** — Modern, responsive, Tailwind and Livewire-powered wizard.
- 📋 **Config-Driven Pipeline** — Add, remove, or reorder steps easily via configuration.
- ✅ **Server Requirements** — Automatic checking for PHP version and required extensions.
- 📂 **Permissions Checking** — Verifies required directories are writable (e.g., `storage`, `bootstrap/cache`).
- 🗄️ **Database Setup** — Instant connection testing and automatic database creation for MySQL, PostgreSQL, SQL Server, and SQLite.
- 👤 **Admin Creation** — Built-in admin account creation with hook-based role assignment.
- 🛠️ **Custom Step Generator** — Scaffold custom steps instantly using the `php artisan make:installer-step` command.
- 🌐 **Localization (i18n)** — 100% of the UI strings are translatable.
- 🔌 **Dynamic `.env` Injection** — Easily prompt users for custom environment variables during the database setup step.
- 🛡️ **Secure** — Automatically runs `key:generate` and protects your app with API-friendly 503 middleware until installation is complete.
- 🔄 **Forward Compatible** — Works flawlessly with Laravel 10–13.

---

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

[](#requirements)

PHPLaravelStatus8.210.\*✅ Tested8.211.\*✅ Tested8.310.\*✅ Tested8.311.\*✅ Tested8.312.\*✅ Tested8.313.\*✅ Tested8.410.\*✅ Tested8.411.\*✅ Tested8.412.\*✅ Tested8.413.\*✅ Tested> PHP 8.2 is **not** compatible with Laravel 12 or 13 (those require PHP 8.3+).

---

Installation
------------

[](#installation)

Require the package via Composer:

```
composer require relayercore/laravel-installer
```

Quick Start
-----------

[](#quick-start)

### 1. Publish Assets

[](#1-publish-assets)

To customize the installer for your application, you should publish the configuration file. You can also publish views and translations if you want full control over the UI and text.

```
# Required: Publish the configuration file
php artisan vendor:publish --tag=installer-config

# Optional: Publish views (to customize the HTML/CSS)
php artisan vendor:publish --tag=installer-views

# Optional: Publish translations (to change text or add languages)
php artisan vendor:publish --tag=installer-lang
```

### 2. Configure the Installer

[](#2-configure-the-installer)

Open `config/installer.php`. This file is the heart of the installer. You can configure the app name, logo, theme colors, and the exact steps your users will walk through.

```
return [
    'name' => env('APP_NAME', 'My App'),

    // Path to your logo (relative to public/)
    'logo' => '/images/logo.png',

    // Custom favicon (defaults to asset('favicon.png'))
    'favicon' => asset('favicon.png'),

    // Define the exact order of installation steps
    'steps' => [
        \RelayerCore\LaravelInstaller\Steps\CheckRequirements::class,
        \RelayerCore\LaravelInstaller\Steps\CheckPermissions::class,
        \RelayerCore\LaravelInstaller\Steps\ConfigureEnvironment::class,
        \RelayerCore\LaravelInstaller\Steps\RunMigrations::class,
        \RelayerCore\LaravelInstaller\Steps\CreateAdmin::class,
    ],

    // Hook: Assign roles or permissions after the admin is created
    'on_admin_created' => function ($user) {
        $user->assignRole('super-admin');
    },

    // Hook: Run logic when the installer completely finishes
    'after_install' => function () {
        \Artisan::call('cache:clear');
    },
];
```

### 3. Launch the Installer

[](#3-launch-the-installer)

Simply navigate to `/install` in your browser. The package will automatically intercept traffic to your application if the app hasn't been installed yet.

---

Adding Custom Steps
-------------------

[](#adding-custom-steps)

The installer is designed to be fully extensible. If your application requires users to select a pricing plan, configure a third-party API key, or choose an industry, you can add a custom step!

### 1. Scaffold the Step

[](#1-scaffold-the-step)

Use our provided Artisan command to generate the boilerplate:

```
php artisan make:installer-step SelectPlan
```

This will create a new class at `app/Installer/Steps/SelectPlan.php`:

```
