PHPackages                             shamimstack/laravel-cms-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. shamimstack/laravel-cms-installer

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

shamimstack/laravel-cms-installer
=================================

A self-contained Laravel 11+ CMS auto-installer package with multi-step web wizard, license validation, and frontend-agnostic UI.

v1.0.1(3mo ago)00proprietaryPHPPHP ^8.2CI passing

Since Mar 8Pushed 3mo agoCompare

[ Source](https://github.com/shamimlaravel/laravel-cms-installer)[ Packagist](https://packagist.org/packages/shamimstack/laravel-cms-installer)[ RSS](/packages/shamimstack-laravel-cms-installer/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (10)Versions (3)Used By (0)

Laravel CMS Installer Package
=============================

[](#laravel-cms-installer-package)

A self-contained Laravel 11+ CMS auto-installer package with multi-step web wizard, license validation, and frontend-agnostic UI.

📋 Table of Contents
-------------------

[](#-table-of-contents)

- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Installation Wizard Steps](#installation-wizard-steps)
- [Artisan Commands](#artisan-commands)
- [Events](#events)
- [Troubleshooting](#troubleshooting)
- [License](#license)

✨ Features
----------

[](#-features)

### Multi-Step Installation Wizard

[](#multi-step-installation-wizard)

- **8-Step Interactive Process**: Guided setup from license validation to final configuration
- **Real-time Validation**: Instant feedback on requirements, permissions, and database connections
- **Frontend-Agnostic**: Automatically detects and adapts to your frontend stack (Blade, Livewire, Vue, React, Next.js, etc.)

### Enterprise-Grade Features

[](#enterprise-grade-features)

- **License Validation**: Remote license verification with API integration
- **Environment Management**: Automatic `.env` file configuration
- **Database Setup**: Support for MySQL, PostgreSQL, SQLite, and SQL Server
- **Migration &amp; Seeding**: Automated database migrations and seeder execution
- **Admin Account Creation**: Built-in admin user setup with role support (Spatie permission compatible)
- **Logging System**: Dedicated installer logging channel for troubleshooting

### Developer-Friendly

[](#developer-friendly)

- **Artisan Commands**: CLI tools for installation management
- **Event System**: Dispatch events for customization and extensibility
- **Service Contracts**: Clean interfaces for easy testing and mocking
- **Publishable Assets**: Customize views, config, and assets

📦 Requirements
--------------

[](#-requirements)

### Server Requirements

[](#server-requirements)

- **PHP**: &gt;= 8.2
- **Laravel**: 11.x or 12.x
- **Database**: MySQL, PostgreSQL, SQLite, or SQL Server
- **Extensions**: PDO, OpenSSL, JSON, MBstring

### Required PHP Extensions

[](#required-php-extensions)

- `pdo` - Database abstraction layer
- `openssl` - Encryption and security
- `json` - Data interchange
- `mbstring` - Multibyte string handling
- `fileinfo` - File type detection
- `tokenizer` - Code tokenization

🔧 Installation
--------------

[](#-installation)

### Step 1: Install via Composer

[](#step-1-install-via-composer)

```
composer require shamimstack/laravel-cms-installer
```

### Step 2: Service Provider Registration (Laravel 10 and below)

[](#step-2-service-provider-registration-laravel-10-and-below)

For Laravel 11+, package discovery is automatic. For older versions, add to `config/app.php`:

```
'providers' => [
    // ...
    shamimstack\Installer\InstallerServiceProvider::class,
],
```

### Step 3: Publish Assets (Optional)

[](#step-3-publish-assets-optional)

```
# Publish all assets
php artisan vendor:publish --tag=cms-installer

# Publish only config
php artisan vendor:publish --tag=config

# Publish only views
php artisan vendor:publish --tag=views

# Publish only CSS and JS
php artisan vendor:publish --tag=assets
```

### Step 4: Access the Installer

[](#step-4-access-the-installer)

Once installed, navigate to your application URL. If the application is not installed, you'll be automatically redirected to `/install`.

Or directly visit: `http://your-domain.com/install`

⚙️ Configuration
----------------

[](#️-configuration)

### Configuration File

[](#configuration-file)

After publishing the config file (`cms-installer.php`), you can customize the following options:

#### License Configuration

[](#license-configuration)

```
'license' => [
    'api_url' => env('LICENSE_API_URL', 'https://api.yourservice.com/validate'),
    'api_key' => env('LICENSE_API_KEY', ''),
    'enabled' => env('LICENSE_ENABLED', true),
    'token_path' => storage_path('app/.license'),
],
```

#### Database Settings

[](#database-settings)

```
'database' => [
    'supported_drivers' => ['mysql', 'pgsql', 'sqlite', 'sqlsrv'],
    'default_driver' => 'mysql',
],
```

#### Admin User Configuration

[](#admin-user-configuration)

```
'admin' => [
    'model' => App\Models\User::class,
    'role_system' => 'spatie', // or 'column'
    'admin_role_name' => 'admin',
    'role_column' => 'role',
    'admin_email_default' => 'admin@example.com',
],
```

#### Permissions

[](#permissions)

```
'permissions' => [
    'directories' => [
        'storage' => 'writable',
        'bootstrap/cache' => 'writable',
        'public' => 'writable',
    ],
],
```

#### Logging

[](#logging)

```
'logging' => [
    'channel' => 'installer',
    'retention_days' => 7,
],
```

📖 Usage
-------

[](#-usage)

### Web Interface

[](#web-interface)

The installer provides a beautiful, step-by-step web interface:

1. **Welcome Screen** - Accept license terms
2. **Requirements Check** - Server and PHP extension verification
3. **Permissions Check** - Directory and file permissions
4. **Database Configuration** - Connection setup and testing
5. **Migration &amp; Seeding** - Database schema and data
6. **Admin Account** - Create administrator credentials
7. **Application Settings** - Site name, URL, timezone
8. **Completion** - Installation summary and access details

### Manual Installation Flow

[](#manual-installation-flow)

If you prefer manual control:

```
// In your service provider or bootstrap file
use shamimstack\Installer\Services\DatabaseManager;
use shamimstack\Installer\Services\AdminManager;

$database = app(DatabaseManager::class);
$admin = app(AdminManager::class);

// Configure database
$database->update([
    'DB_CONNECTION' => 'mysql',
    'DB_HOST' => '127.0.0.1',
    'DB_PORT' => '3306',
    'DB_DATABASE' => 'your_db',
    'DB_USERNAME' => 'root',
    'DB_PASSWORD' => 'password',
]);

// Run migrations
$database->runMigrations();

// Create admin
$admin->create([
    'name' => 'Admin User',
    'email' => 'admin@example.com',
    'password' => bcrypt('password'),
]);
```

🎯 Installation Wizard Steps
---------------------------

[](#-installation-wizard-steps)

### Step 1: Welcome / License

[](#step-1-welcome--license)

- Review license terms
- Enter license key and API key
- Validate credentials remotely

### Step 2: Requirements

[](#step-2-requirements)

- PHP version check (&gt;= 8.2)
- Required extensions verification
- Laravel version compatibility

### Step 3: Permissions

[](#step-3-permissions)

- Storage directory writability
- Bootstrap/cache permissions
- Public directory access

### Step 4: Database

[](#step-4-database)

- Select database driver
- Enter connection details
- Test connection in real-time
- Save configuration to .env

### Step 5: Migration &amp; Seeding

[](#step-5-migration--seeding)

- Run database migrations
- Execute seeders
- View migration output
- Error handling and rollback info

### Step 6: Admin Account

[](#step-6-admin-account)

- Choose admin creation method
- Enter administrator details
- Configure roles (if using Spatie)
- Email verification setup

### Step 7: Application Settings

[](#step-7-application-settings)

- Application name
- Base URL
- Default timezone
- Locale settings
- Debug mode toggle

### Step 8: Complete

[](#step-8-complete)

- Installation summary
- Created resources overview
- Login credentials reminder
- Next steps and recommendations

🛠️ Artisan Commands
-------------------

[](#️-artisan-commands)

### installer:status

[](#installerstatus)

Display current installation state, frontend stack, and license status.

```
php artisan installer:status
```

**Output includes:**

- Installation status (installed/not installed)
- Environment information
- Frontend stack detection
- License validation status
- Metadata (installation date, versions, etc.)

### installer:reset

[](#installerreset)

Reset the installation process by removing the lock file.

```
# Safe reset (asks for confirmation in production)
php artisan installer:reset

# Force reset (no confirmation)
php artisan installer:reset --force
```

**Use cases:**

- Re-running the installer
- Development environment resets
- Troubleshooting installation issues

📡 Events
--------

[](#-events)

The package dispatches events throughout the installation process for extensibility:

### Available Events

[](#available-events)

EventDescription`InstallerStarted`Installation wizard begins`LicenseValidated`License successfully validated`DatabaseConfigured`Database connection configured`MigrationsCompleted`All migrations executed`SeedingCompleted`Database seeding finished`AdminCreated`Admin account created`InstallationCompleted`Full installation complete### Listening to Events

[](#listening-to-events)

Register event listeners in your `EventServiceProvider`:

```
use shamimstack\Installer\Events\InstallationCompleted;

protected $listen = [
    InstallationCompleted::class => [
        'App\Listeners\SendInstallationNotification',
    ],
];
```

### Example Listener

[](#example-listener)

```
namespace App\Listeners;

use shamimstack\Installer\Events\InstallationCompleted;

class SendInstallationNotification
{
    public function handle(InstallationCompleted $event): void
    {
        // Send email notification
        // Log to external monitoring
        // Trigger webhook
        // etc.
    }
}
```

🔍 Troubleshooting
-----------------

[](#-troubleshooting)

### Common Issues

[](#common-issues)

#### 1. "Directory Not Writable" Error

[](#1-directory-not-writable-error)

**Solution:** Ensure proper permissions:

```
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
```

#### 2. Database Connection Failed

[](#2-database-connection-failed)

**Solutions:**

- Verify database credentials
- Check database server is running
- Ensure database exists (or has CREATE privileges)
- Check firewall rules for remote connections

#### 3. License Validation Fails

[](#3-license-validation-fails)

**Solutions:**

- Verify API key is correct
- Check server can reach license API endpoint
- Ensure SSL certificates are up to date
- Review `storage/logs/installer.log` for details

#### 4. Migration Errors

[](#4-migration-errors)

**Solutions:**

- Check database connection
- Verify migrations exist and are valid
- Increase PHP memory limit if needed
- Review database user privileges

#### 5. Frontend Detection Issues

[](#5-frontend-detection-issues)

**Solutions:**

- Ensure `composer.json` and `package.json` are present
- Check that frontend dependencies are installed
- Review detected stack in `installer:status` command

### Log Files

[](#log-files)

The installer maintains detailed logs:

- **Location:** `storage/logs/installer.log`
- **Retention:** Configurable (default: 7 days)
- **Level:** Debug (captures all operations)

View logs in real-time:

```
tail -f storage/logs/installer.log
```

### Getting Help

[](#getting-help)

If you encounter issues:

1. Check the log file: `storage/logs/installer.log`
2. Run status command: `php artisan installer:status`
3. Review requirements documentation
4. Contact support with:
    - Log file contents
    - PHP version (`php -v`)
    - Laravel version (`php artisan --version`)
    - Database type and version
    - Error messages and screenshots

📝 License
---------

[](#-license)

This package is proprietary software licensed under the terms agreed upon during purchase.

---

🤝 Contributing
--------------

[](#-contributing)

We welcome contributions! Please follow these steps:

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request

🙏 Acknowledgments
-----------------

[](#-acknowledgments)

- Laravel framework and community
- All contributors and testers
- Our amazing users providing feedback

📞 Support
---------

[](#-support)

For support and questions:

- **Documentation:**
- **Email:**
- **GitHub Issues:**

---

**Made with ❤️ by ShamimStack**

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance80

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

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 ~0 days

Total

2

Last Release

107d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/40be284b8dd88b2d48b0d446df171ae05f8eaaf44ab18b948766c6fafc76f9f4?d=identicon)[shamimstack](/maintainers/shamimstack)

---

Top Contributors

[![shamimlaravel](https://avatars.githubusercontent.com/u/266431424?v=4)](https://github.com/shamimlaravel "shamimlaravel (2 commits)")

---

Tags

laravelinstallercmswizardsetup

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/shamimstack-laravel-cms-installer/health.svg)

```
[![Health](https://phpackages.com/badges/shamimstack-laravel-cms-installer/health.svg)](https://phpackages.com/packages/shamimstack-laravel-cms-installer)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9742.3M121](/packages/roots-acorn)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k28.4M136](/packages/laravel-cashier)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k14.1M122](/packages/laravel-pulse)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[aedart/athenaeum

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

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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