PHPackages                             alizharb/filament-module-manager - 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. [Admin Panels](/categories/admin)
4. /
5. alizharb/filament-module-manager

AbandonedArchivedLibrary[Admin Panels](/categories/admin)

alizharb/filament-module-manager
================================

Filament v4 plugin: Module Manager page + Modules overview widget (Nwidart modules integration).

v2.2.0(3mo ago)201.3k↑37.5%5MITPHPPHP ^8.3CI passing

Since Aug 23Pushed 3mo agoCompare

[ Source](https://github.com/AlizHarb/filament-module-manager)[ Packagist](https://packagist.org/packages/alizharb/filament-module-manager)[ GitHub Sponsors](https://github.com/alizharb)[ RSS](/packages/alizharb-filament-module-manager/feed)WikiDiscussions main Synced 1mo ago

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

🚀 Filament Module Manager
=========================

[](#-filament-module-manager)

 [![Filament Module Manager](https://camo.githubusercontent.com/6629b774160a3a37b4f4f337779774c269dc2d95335b9b639a1e163ce684d4e9/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f46696c616d656e742532304d6f64756c652532304d616e616765722e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d616c697a6861726225324666696c616d656e742d6d6f64756c652d6d616e61676572267061747465726e3d617263686974656374267374796c653d7374796c655f31266465736372697074696f6e3d456e74657270726973652d67726164652b6d6f64756c652b6d616e6167656d656e742b666f722b46696c616d656e742b7634266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)](https://camo.githubusercontent.com/6629b774160a3a37b4f4f337779774c269dc2d95335b9b639a1e163ce684d4e9/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f46696c616d656e742532304d6f64756c652532304d616e616765722e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d616c697a6861726225324666696c616d656e742d6d6f64756c652d6d616e61676572267061747465726e3d617263686974656374267374796c653d7374796c655f31266465736372697074696f6e3d456e74657270726973652d67726164652b6d6f64756c652b6d616e6167656d656e742b666f722b46696c616d656e742b7634266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)

[![License](https://camo.githubusercontent.com/31e62e0eff03ce9ddfdf69d8476340d4f541990bfb152cb02a0f342965252997/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666f722d7468652d6261646765)](LICENSE)[![Latest Version on Packagist](https://camo.githubusercontent.com/8a0879d5d33db895ae7909d1651d8a80ab4bad006dd8172ee5304b684cd253f0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616c697a686172622f66696c616d656e742d6d6f64756c652d6d616e616765722e7376673f7374796c653d666f722d7468652d626164676526636f6c6f723d6f72616e6765)](https://packagist.org/packages/alizharb/filament-module-manager)[![Total Downloads](https://camo.githubusercontent.com/6eb3cd9145bd8d13ff6a19085fda8e2366dfaf9210f4310aa6ee829438285bfb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616c697a686172622f66696c616d656e742d6d6f64756c652d6d616e616765722e7376673f7374796c653d666f722d7468652d626164676526636f6c6f723d677265656e)](https://packagist.org/packages/alizharb/filament-module-manager)[![GitHub Stars](https://camo.githubusercontent.com/f1a29dd1180b5888c4652ebcd61d0ee26b0dd607174e52a17064c5cdf3cc82bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f416c697a486172622f66696c616d656e742d6d6f64756c652d6d616e616765722e7376673f7374796c653d666f722d7468652d626164676526636f6c6f723d79656c6c6f77)](https://github.com/AlizHarb/filament-module-manager/stargazers)[![PHP Version](https://camo.githubusercontent.com/5cfe9452485ebcbed498a8d816c1df488a2530c1c16359cfe59cda49cf3e26d8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f616c697a686172622f66696c616d656e742d6d6f64756c652d6d616e616765722e7376673f7374796c653d666f722d7468652d626164676526636f6c6f723d707572706c65)](https://packagist.org/packages/alizharb/filament-module-manager)

 **Enterprise-grade module management for Filament v4 &amp; v5 admin panels**
 Complete lifecycle management with dependencies, updates, backups, and health monitoring
 Built on [Nwidart/laravel-modules](https://nwidart.com/laravel-modules)

---

📖 Table of Contents
-------------------

[](#-table-of-contents)

- [Features](#-features)
- [Requirements](#-requirements)
- [Installation](#-installation)
- [Quick Start](#-quick-start)
- [Core Features](#-core-features)
- [Enterprise Features](#-enterprise-features)
- [Configuration](#%EF%B8%8F-configuration)
- [Usage Examples](#-usage-examples)
- [Contributing](#-contributing)
- [License](#-license)

---

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

[](#-features)

### 🎯 Core Module Management

[](#-core-module-management)

- **📦 Full CRUD Operations** - View, install, enable, disable, and uninstall modules
- **📤 Multiple Installation Methods** - ZIP upload, GitHub repository, or local path
- **🏷️ Multi-Module Packages** - Install multiple modules from a single package
- **📊 Dashboard Widget** - Real-time statistics and module overview
- **🌍 Multi-Language Support** - 20+ languages included
- **⚙️ Highly Configurable** - Customize navigation, uploads, and behavior

### 🚀 Enterprise Features (v2.0)

[](#-enterprise-features-v20)

#### 🔗 **Dependency Management**

[](#-dependency-management)

- Automatic dependency validation
- Circular dependency detection
- Version constraint support
- Prevents breaking changes

#### 🔄 **Update System**

[](#-update-system)

- GitHub releases integration
- One-click updates
- Changelog display
- Automatic backups before update

#### 💾 **Backup &amp; Restore**

[](#-backup--restore)

- Automatic backups (updates/uninstalls)
- One-click restore
- Retention management
- Size tracking

#### 🏥 **Health Monitoring**

[](#-health-monitoring)

- Automated integrity checks
- File validation
- Dependency verification
- Health scoring (0-100)

#### 📝 **Audit Logging**

[](#-audit-logging)

- Complete operation trail
- User tracking
- IP &amp; timestamp logging
- Success/failure tracking

#### 🐙 **GitHub Integration**

[](#-github-integration)

- Install from releases/tags
- OAuth token support
- Rate limit management
- Branch fallback (main/master)

---

📋 Requirements
--------------

[](#-requirements)

RequirementVersionStatus[![PHP](https://camo.githubusercontent.com/fe60a3918bae3bc2ed56c6c5329ac0cb7462196b3061d0afb91fc4a241fe4172/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322b2d3737374242343f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/fe60a3918bae3bc2ed56c6c5329ac0cb7462196b3061d0afb91fc4a241fe4172/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322b2d3737374242343f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)8.3+✅[![Laravel](https://camo.githubusercontent.com/b225868948f420447422de34bb3a3dba841918fc03251fdf98f10aeba7b05027/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302b2d4646324432303f7374796c653d666c6174266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/b225868948f420447422de34bb3a3dba841918fc03251fdf98f10aeba7b05027/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302b2d4646324432303f7374796c653d666c6174266c6f676f3d6c61726176656c266c6f676f436f6c6f723d7768697465)10+✅[![Filament](https://camo.githubusercontent.com/1472c92f1a1befcd735a9fe5b40b014df41e96a1a0037ac457c0d0ded2030958/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76342b2d4635394530423f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/1472c92f1a1befcd735a9fe5b40b014df41e96a1a0037ac457c0d0ded2030958/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76342b2d4635394530423f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)v4/v5✅**Dependencies:**

- [Nwidart Laravel Modules](https://nwidart.com/laravel-modules) - Module foundation
- [Spatie Laravel Data](https://github.com/spatie/laravel-data) - Type-safe DTOs

---

⚡ Installation
--------------

[](#-installation)

### Step 1: Install via Composer

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

```
composer require alizharb/filament-module-manager
```

### Step 2: Register the Plugin

[](#step-2-register-the-plugin)

Add to your `AdminPanelProvider`:

```
use Alizharb\FilamentModuleManager\FilamentModuleManagerPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(FilamentModuleManagerPlugin::make());
}
```

### Step 3: Publish Assets (Optional)

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

```
# Publish configuration
php artisan vendor:publish --tag="filament-module-manager-config"

# Publish translations
php artisan vendor:publish --tag="filament-module-manager-translations"
```

---

🎯 Quick Start
-------------

[](#-quick-start)

### Access the Module Manager

[](#access-the-module-manager)

Navigate to **Module Manager** in your Filament admin sidebar.

### Install Your First Module

[](#install-your-first-module)

**Option 1: Upload ZIP**

1. Prepare module as ZIP with `module.json` in root
2. Click "Upload Module" button
3. Select ZIP file (max 20MB by default)
4. Module installs and appears in list

**Option 2: Install from GitHub**

1. Add repository to module's `module.json`: ```
    {
      "name": "Blog",
      "repository": "username/blog-module"
    }
    ```
2. Use GitHub installation feature
3. Module downloads and installs automatically

### Enable/Disable Modules

[](#enabledisable-modules)

- Toggle module status with one click
- Automatic dependency validation
- Cache clearing after changes

---

🎯 Core Features
---------------

[](#-core-features)

### 📦 Module Installation

[](#-module-installation)

#### ZIP Upload Installation

[](#zip-upload-installation)

Upload modules as ZIP files with automatic validation:

```
MyModule.zip
└── MyModule/
    ├── module.json      # Required
    ├── composer.json    # Optional
    ├── Config/
    ├── Http/
    └── resources/

```

**Features:**

- ✅ Automatic module.json validation
- ✅ Folder name correction
- ✅ Metadata extraction
- ✅ Duplicate detection
- ✅ Size limit enforcement

#### Multi-Module Package Installation

[](#multi-module-package-installation)

Install multiple modules from a single package:

```
// package.json in ZIP root
{
  "name": "my-module-collection",
  "version": "1.0.0",
  "modules": ["Modules/Blog", "Modules/Shop", "Modules/User"]
}
```

Upload the package ZIP and all modules install automatically.

#### GitHub Repository Installation

[](#github-repository-installation)

Install directly from GitHub repositories:

```
// module.json
{
  "name": "Blog",
  "version": "1.0.0",
  "repository": "username/blog-module"
}
```

**Features:**

- ✅ Branch fallback (main → master)
- ✅ OAuth token support for private repos
- ✅ Automatic extraction and installation

### 📊 Dashboard Widget

[](#-dashboard-widget)

Real-time module statistics:

- 🟢 **Active Modules** - Currently enabled
- 🔴 **Disabled Modules** - Installed but inactive
- 📈 **Total Modules** - All installed modules

Configure widget placement:

```
'widget' => [
    'enabled' => true,
    'show_on_dashboard' => true,
    'show_on_module_page' => true,
],
```

---

🚀 Enterprise Features
---------------------

[](#-enterprise-features)

### 1. 🔗 Module Dependencies Management

[](#1--module-dependencies-management)

Automatically manage module dependencies with validation and conflict prevention.

#### Define Dependencies

[](#define-dependencies)

In your `module.json`:

```
{
  "name": "Blog",
  "version": "1.0.0",
  "requires": {
    "User": "^1.0",
    "Media": "~2.0",
    "Core": "*"
  }
}
```

#### Version Constraints

[](#version-constraints)

ConstraintMeaningExample`^1.0`Caret`>=1.0.0 =2.0.0
