bangsamu/plugin-manager

Dashboard plugin manager for installing/removing/updating bangsamu/* packages via UI — WordPress-like plugin experience for Laravel.

v0.0.0 2025-08-21 08:03 UTC

This package is not auto-updated.

Last update: 2025-09-05 06:37:08 UTC


README

WordPress-style plugin dashboard for Laravel to install/update/remove packages in the bangsamu/* namespace.

Features

  • Discover packages from Packagist vendor: bangsamu
  • Install / Update / Remove from dashboard
  • Shows installed status & version
  • Configurable middleware (e.g., auth)
  • Simple Tailwind UI

⚠️ Security note: Executing Composer from the web is powerful and risky. Restrict access via middleware and allowlist commands in production.

Install (into your Laravel 10/11/12 app)

composer require bangsamu/plugin-manager:*@dev

If you are using the local path for testing this demo:

// composer.json (root of your app)
"repositories": [
  {"type":"path","url":"packages/bangsamu/plugin-manager"}
]

Then:

composer require bangsamu/plugin-manager:*
php artisan vendor:publish --tag=plugin-manager-config
php artisan vendor:publish --tag=plugin-manager-views

Add route (optional if you want custom prefix) in routes/web.php:

Route::middleware(config('plugin-manager.middleware', ['web']))->group(function () {
    \Bangsamu\PluginManager\PluginManager::routes();
});

Open: /plugin-manager

Config

config/plugin-manager.php

return [
    'vendor' => env('PM_VENDOR', 'bangsamu'),
    'route_prefix' => env('PM_PREFIX', 'plugin-manager'),
    'middleware' => explode(',', env('PM_MIDDLEWARE', 'web,auth')), // protect in prod!
    'timeout' => (int) env('PM_COMPOSER_TIMEOUT', 600),
    'allow_remove' => (bool) env('PM_ALLOW_REMOVE', true),
    'allow_commands' => ['require','update','remove'],
];

Environment

PM_VENDOR=bangsamu
PM_PREFIX=plugin-manager
PM_MIDDLEWARE=web,auth
PM_COMPOSER_TIMEOUT=600
PM_ALLOW_REMOVE=true

Screenshots

  • Index list with install/update/remove buttons
  • Modal output log (composer stdout/stderr)