PHPackages                             softmax/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. softmax/installer

ActiveLibrary

softmax/installer
=================

Softmax installer package for Laravel apps with complete installation wizard

v1.1.0(8mo ago)08MITPHPPHP &gt;=8.1CI failing

Since Sep 13Pushed 8mo agoCompare

[ Source](https://github.com/mdiqbalhossan/installer)[ Packagist](https://packagist.org/packages/softmax/installer)[ Docs](https://github.com/softmax/installer)[ RSS](/packages/softmax-installer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (11)Versions (9)Used By (0)

SoftMax Installer Package
=========================

[](#softmax-installer-package)

[![Latest Stable Version](https://camo.githubusercontent.com/c0e72adb7c025899e182bf063ea988c9b8e35b495dbb997fea5b8d767815eea2/68747470733a2f2f706f7365722e707567782e6f72672f736f66746d61782f696e7374616c6c65722f762f737461626c65)](https://packagist.org/packages/softmax/installer)[![Total Downloads](https://camo.githubusercontent.com/5f9bc15b59d4ac3f545d024e4c90f6f3ed5d7c01377d0b84753ba5d7d84cc370/68747470733a2f2f706f7365722e707567782e6f72672f736f66746d61782f696e7374616c6c65722f646f776e6c6f616473)](https://packagist.org/packages/softmax/installer)[![License](https://camo.githubusercontent.com/784d43c7ee00c7a6202d5b165cf1ffb9c2e9d5af4cf5b60fab3733d10c3037e3/68747470733a2f2f706f7365722e707567782e6f72672f736f66746d61782f696e7374616c6c65722f6c6963656e7365)](https://packagist.org/packages/softmax/installer)

A comprehensive Laravel installation wizard package that provides a complete setup process for Laravel applications with license validation, system requirements checking, and guided installation flow. Perfect for commercial Laravel applications that need professional installation experience.

Features
--------

[](#features)

- 🔐 **License Validation**: Integrate with SoftMax core system for license verification
- ⚙️ **System Requirements Check**: Automatically verify PHP version, extensions, and server requirements
- 📊 **Directory Permissions**: Check and validate directory write permissions
- 🗄️ **Database Configuration**: Guided setup and testing for database connections
- 🌍 **Environment Setup**: Configure essential .env variables securely
- 👤 **Admin User Creation**: Set up the initial administrator account with role assignment
- 🔄 **Migration &amp; Seeding**: Run database migrations automatically
- 🔒 **Installation Lock**: Prevent re-installation and validate encryption keys
- 🎨 **Beautiful UI**: Modern, responsive installation wizard interface
- 🛡️ **Security**: CSRF protection, input validation, and secure key storage
- 📡 **API Integration**: Register installation with core licensing system

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

[](#requirements)

- PHP 8.1 or higher
- Laravel 10.x or 11.x
- MySQL/MariaDB database
- Required PHP extensions: PDO, OpenSSL, Mbstring, ZIP, XML, cURL, GD, Fileinfo, Tokenizer, JSON

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

[](#installation)

Install the package via Composer:

```
composer require softmax/installer
```

If you encounter a minimum stability error, you can install a specific stable version:

```
composer require softmax/installer:^1.0
```

For Laravel 10+, the package will automatically register its service provider and middleware.

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

[](#quick-start)

1. **Install the package:**

```
composer require softmax/installer
```

If you encounter a minimum stability error, use:

```
composer require softmax/installer:^1.0
```

2. **Publish the configuration:**

```
php artisan vendor:publish --tag=softmax-installer-config
```

3. **Configure your environment variables:**

```
SOFTMAX_API_BASE=https://api.soft-max.app
SOFTMAX_API_TIMEOUT=30
```

4. **Access the installer:**Navigate to `/softmax-installer` in your browser to start the installation process.

Installation Process
--------------------

[](#installation-process)

The installer follows a comprehensive multi-step process:

1. **System Check**: Verifies if application is already installed
2. **Requirements Validation**: Checks PHP extensions and system requirements
3. **Permissions Check**: Validates directory write permissions
4. **License Validation**: Verifies customer ID and license key with API
5. **Database Configuration**: Tests and configures database connection
6. **Environment Setup**: Configures application name, URL, and essential settings
7. **Admin Account**: Creates the initial administrator user
8. **Final Installation**: Runs migrations and registers with core system
9. **Completion**: Shows success message with launch button

Configuration
-------------

[](#configuration)

The package configuration can be customized in `config/softmax-installer.php`:

```
return [
    /*
    |--------------------------------------------------------------------------
    | API Configuration
    |--------------------------------------------------------------------------
    */
    'api_base' => env('SOFTMAX_API_BASE', 'https://api.soft-max.app'),
    'api_timeout' => env('SOFTMAX_API_TIMEOUT', 30),
    'product_code' => '12345',

    /*
    |--------------------------------------------------------------------------
    | Installation Configuration
    |--------------------------------------------------------------------------
    */
    'installation' => [
        'lock_file' => 'installed/installer.lock',
        'encryption_key_file' => 'installed/encryption_key',
        'license_file' => 'installed/license.json',
    ],

    /*
    |--------------------------------------------------------------------------
    | Requirements Configuration
    |--------------------------------------------------------------------------
    */
    'requirements' => [
        'php_extensions' => [
            'pdo', 'pdo_mysql', 'openssl', 'mbstring', 'zip',
            'xml', 'curl', 'gd', 'fileinfo', 'tokenizer', 'json',
        ],
        'directories' => [
            'storage', 'bootstrap/cache', 'storage/app',
            'storage/framework', 'storage/logs',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Database Configuration
    |--------------------------------------------------------------------------
    */
    'database' => [
        'default_host' => 'localhost',
        'default_port' => '3306',
        'timeout' => 10,
    ],

    /*
    |--------------------------------------------------------------------------
    | Admin Configuration
    |--------------------------------------------------------------------------
    */
    'admin' => [
        'default_role' => 'Super Admin',
        'min_password_length' => 8,
    ],
];
```

Environment Variables
---------------------

[](#environment-variables)

Add these variables to your `.env` file:

```
# SoftMax Installer Configuration
SOFTMAX_API_BASE=https://api.soft-max.app
SOFTMAX_API_TIMEOUT=30

# Your product configuration
SOFTMAX_PRODUCT_CODE=your_product_code
```

Usage
-----

[](#usage)

### Facade Usage

[](#facade-usage)

The package provides a convenient facade for checking installation status:

```
use Softmax\Installer\Facades\Installer;

// Check if application is installed
if (Installer::isInstalled()) {
    // Application is installed
}

// Verify encryption key
if (Installer::verifyEncryptionKey()) {
    // Key is valid
}

// Check system requirements
$requirements = Installer::checkRequirements();
$permissions = Installer::checkPermissions();
```

### API Endpoints

[](#api-endpoints)

The installer provides several API endpoints:

- `GET /softmax-installer/system-info` - Get system requirements and permissions
- `POST /softmax-installer/validate-license` - Validate license credentials
- `POST /softmax-installer/test-database` - Test database connection
- `POST /softmax-installer/install` - Complete installation process
- `POST /softmax-installer/reset` - Reset installation (development only)

### Middleware

[](#middleware)

The package automatically applies the [`RedirectIfNotInstalled`](packages/softmax/installer/src/Http/Middleware/RedirectIfNotInstalled.php) middleware to all web routes. This middleware:

- Redirects to installer if application is not installed
- Validates encryption key matches stored key
- Allows access to installer routes and assets

Customization
-------------

[](#customization)

### Publishing Views

[](#publishing-views)

Customize the installer's appearance by publishing the view files:

```
php artisan vendor:publish --tag=softmax-installer-views
```

Views will be published to `resources/views/vendor/softmax-installer/`.

### Custom Installation Steps

[](#custom-installation-steps)

Extend the [`InstallerService`](packages/softmax/installer/src/Services/InstallerService.php) to add custom installation logic:

```
use Softmax\Installer\Services\InstallerService;

class CustomInstallerService extends InstallerService
{
    public function customInstallationStep(array $data): array
    {
        // Your custom installation logic

        return [
            'success' => true,
            'message' => 'Custom step completed successfully.'
        ];
    }
}
```

### Exception Handling

[](#exception-handling)

The package includes custom exceptions for different scenarios:

```
use Softmax\Installer\Exceptions\{
    InstallerException,
    RequirementException,
    LicenseException,
    DatabaseException,
    InstallationException
};

try {
    // Installation code
} catch (LicenseException $e) {
    // Handle license validation errors
} catch (DatabaseException $e) {
    // Handle database connection errors
}
```

Development
-----------

[](#development)

### Reset Installation

[](#reset-installation)

For development purposes, you can reset the installation:

```
# Remove installation files manually
rm -rf storage/installed/

# Or use the API endpoint (non-production only)
curl -X POST http://your-app.test/softmax-installer/reset
```

### Testing

[](#testing)

Run the package tests:

```
composer test
```

The package includes comprehensive validation for:

- PHP extension requirements
- Directory permissions
- License validation
- Database connectivity
- Admin user creation

Security
--------

[](#security)

- ✅ License validation with remote API
- ✅ Secure encryption key storage and verification
- ✅ CSRF protection on all forms
- ✅ Input validation and sanitization
- ✅ Production environment restrictions
- ✅ Prevents reinstallation attempts

Integration with Laravel
------------------------

[](#integration-with-laravel)

The package integrates seamlessly with Laravel:

- **Service Provider**: [`InstallerServiceProvider`](packages/softmax/installer/src/InstallerServiceProvider.php) automatically registers services
- **Facade**: [`Installer`](packages/softmax/installer/src/Facades/Installer.php) provides convenient static methods
- **Middleware**: [`RedirectIfNotInstalled`](packages/softmax/installer/src/Http/Middleware/RedirectIfNotInstalled.php) protects your application
- **Routes**: Automatically loaded from [`routes/web.php`](packages/softmax/installer/routes/web.php)
- **Views**: Responsive UI built with Tailwind CSS and Alpine.js

Code Quality &amp; Analysis
---------------------------

[](#code-quality--analysis)

This package includes comprehensive code quality analysis using SonarQube for maintaining the highest standards of code quality.

### SonarQube Integration

[](#sonarqube-integration)

#### Setup SonarQube Analysis

[](#setup-sonarqube-analysis)

1. **Create SonarQube Project**:

    - Set up a project in your SonarQube instance
    - Generate a project token
    - Note your SonarQube server URL
2. **Configure GitHub Secrets**:

    ```
    SONAR_TOKEN: your_sonarqube_project_token
    SONAR_HOST_URL: https://your-sonarqube-instance.com
    CODECOV_TOKEN: your_codecov_token (optional)

    ```
3. **Automated Analysis**:

    - SonarQube analysis runs automatically on push/PR to main/develop branches
    - Code coverage is collected and uploaded to SonarQube
    - Quality gates are enforced to maintain code standards

#### Quality Metrics Tracked

[](#quality-metrics-tracked)

- **Code Coverage**: Minimum 80% coverage required
- **Maintainability**: Technical debt ratio &lt; 5%
- **Reliability**: Zero bugs on new code
- **Security**: Zero vulnerabilities on new code
- **Duplications**: Maximum 3% duplicated lines
- **Code Smells**: Clean code principles enforcement

#### Running Local Analysis

[](#running-local-analysis)

```
# Prepare for SonarQube analysis
composer sonar-prepare

# Run full analysis with coverage
composer sonar-analysis

# Run quality checks with coverage
composer quality-full
```

#### Manual SonarQube Scan

[](#manual-sonarqube-scan)

```
# Install SonarQube Scanner (if not in CI)
# Download from: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

# Run analysis
sonar-scanner \
  -Dsonar.projectKey=your_project_key \
  -Dsonar.sources=src \
  -Dsonar.host.url=https://your-sonarqube-instance.com \
  -Dsonar.login=your_token
```

#### Configuration Files

[](#configuration-files)

- `sonar-project.properties`: Main SonarQube configuration
- `.github/workflows/sonarqube.yml`: GitHub Actions workflow
- `phpunit.xml`: Coverage and testing configuration

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

If you discover a security vulnerability within this package, please send an e-mail to . All security vulnerabilities will be promptly addressed.

License
-------

[](#license)

This package is proprietary software owned by SoftMax. Unauthorized distribution is prohibited.

Support
-------

[](#support)

- **Documentation**: Visit our [documentation site](https://docs.soft-max.app)
- **Email Support**:
- **Issue Tracker**: [GitHub Issues](https://github.com/softmax/installer/issues)

Credits
-------

[](#credits)

- [SoftMax Team](https://github.com/softmax)
- [All Contributors](../../contributors)

---

Made with ❤️ by [SoftMax](https://soft-max.app)

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance61

Regular maintenance activity

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.5% 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

246d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b89e6454f69021340f7163b968e9019db5c55538418ff11c6d48fd09493e94b8?d=identicon)[mdiqbalhossen7265](/maintainers/mdiqbalhossen7265)

---

Top Contributors

[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (15 commits)")[![mdiqbalhossan](https://avatars.githubusercontent.com/u/88248100?v=4)](https://github.com/mdiqbalhossan "mdiqbalhossan (9 commits)")

---

Tags

laravelinstallersoftmaxinstallation-wizardlicense-validation

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

74310.9M66](/packages/laravel-mcp)[laravel/cashier-paddle

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

264778.4k3](/packages/laravel-cashier-paddle)[aedart/athenaeum

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

245.2k](/packages/aedart-athenaeum)[flat3/lodata

OData v4.01 Producer for Laravel

96320.9k](/packages/flat3-lodata)[galahad/laravel-addressing

Laravel package providing addressing functionality

70316.6k](/packages/galahad-laravel-addressing)

PHPackages © 2026

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