alex-kudrya/adminix

Fast deployment, easy configurable admin panel for Laravel apps

Maintainers

Package info

gitlab.com/alexkudrya91/adminix

Issues

pkg:composer/alex-kudrya/adminix

Transparency log

Statistics

Installs: 275

Dependents: 0

Suggesters: 0

Stars: 1

v2.76.5 2026-07-08 12:46 UTC

This package is auto-updated.

Last update: 2026-07-08 10:48:52 UTC


README

Total Downloads Version License

Adminix Laravel Admin Panel cover

Adminix is a Laravel package for building admin panels from PHP configuration. Pages, menus, lists, resources, modals, widgets, and actions are described in classes and rendered dynamically at runtime.

Highlights

  • PHP-first page providers. Pages are normal PHP classes that return AdminixPage objects.
  • Runtime modules for lists, resources, details, modal CRUD, dashboards, panels, text, charts, counters, metrics, progress bars, imports, media, tenant switchers, maintenance banners, health status cards, notifications, and callback/webhook actions.
  • Operational tables with search, filters, quick filters, saved table views, column ordering/widths, pinned columns, summaries, grouping, row details, row reorder, clone actions, soft deletes, and bulk actions.
  • Page headers, breadcrumbs, menu links, command palette navigation, and global search are declared server-side.
  • Datasources, writable fields, route params, tenant context, actions, imports, media writes, and notification state are resolved on the server.
  • Multi-panel support with isolated paths, guards, middleware, menus, themes, and tenant context providers.
  • Adminix Doctor checks common package setup and safety risks, including tenant-scoped datasources without server-owned tenant criteria.
  • Extension APIs for custom module types, data providers, Blade components, page-scoped assets, generators, and panel-aware route hooks.
  • Optional local asset mode for CDN-free installations, plus lazy CKEditor loading only on pages that need the editor.

Mental Model

  1. Register Adminix in a Laravel app.
  2. Add page providers to config/adminix.php or to one or more AdminixPanel objects.
  3. Build each page from modules such as lists, resources, dashboards, imports, and media browsers.
  4. Keep permissions, tenant scope, writable fields, and route parameters server-owned.
  5. Run adminix:doctor, package tests, and live browser checks for UI-facing changes.

Requirements

  • PHP >=8.2
  • Laravel ^12.0 or ^13.0
  • PHP extensions: PDO, mbstring, SimpleXML

Installation

composer require alex-kudrya/adminix
php artisan adminix:install

Optional example pages:

php artisan adminix:install --examples

Check the installed configuration:

php artisan adminix:doctor

Security rule of thumb: browser validation is never enough. Use HTML constraints and JavaScript feedback for UX, but keep Laravel/backend validation, server-side module configuration, upload format checks, and max-size limits as the authoritative security boundary.

If the consuming Laravel application uses Laravel Boost, let Boost discover Adminix's package guidance after installing or updating Adminix:

php artisan boost:install
php artisan boost:update --discover

Adminix ships a compact Boost guideline file and an Adminix development skill at resources/boost/guidelines/core.blade.php and resources/boost/skills/adminix-development/SKILL.md. These resources help agents follow the package's PHP-first module architecture, layered validation rules, safety rules, Doctor checks, documentation expectations, and live browser verification workflow while working in a parent Laravel project.

CDN-free installations can use the bundled local vendor assets:

ADMINIX_ASSET_MODE=local
php artisan adminix:install --force
php artisan adminix:doctor --strict

Generate starter classes:

php artisan make:adminix_page OrdersPage --tests --dry-run
php artisan make:adminix_page OrdersPage --tests
php artisan make:adminix_resource ProductsPage
php artisan make:adminix_action ArchiveOrdersAction --tests
php artisan make:adminix_module AcmeCard --tests

A minimal page provider returns an AdminixPage and attaches one or more modules:

use AlexKudrya\Adminix\AdminixPage;
use AlexKudrya\Adminix\Modules\Module;
use App\Models\Order;

return AdminixPage::uri('orders')
    ->name('orders')
    ->title('Orders')
    ->addModule(
        Module::list()
            ->name('orders')
            ->dataSource(Order::class)
            ->primaryKey('id')
    );

Package visual QA stand

Package contributors can run the Testbench workbench and open a manual visual QA stand that covers Adminix modules, fields, lists, actions, layout surfaces, and focused edge-case pages.

./vendor/bin/testbench serve --host=127.0.0.1 --port=8097

Open http://127.0.0.1:8097/adminix/showcase/9 and click through the sidebar or the showcase map. For a focused automated smoke check against the same rendered pages, run:

npm run e2e:showcase

Documentation