alex-kudrya / adminix
Fast deployment, easy configurable admin panel for Laravel apps
Requires
- php: >=8.2
- ext-mbstring: *
- ext-pdo: *
- ext-simplexml: *
- illuminate/contracts: ^12.0|^13.0
- illuminate/http: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- laravel/framework: ^12.0|^13.0
- nesbot/carbon: ^2.67|^3.0
- symfony/http-foundation: ^6.3|^7.0|^8.0
Requires (Dev)
- ext-pdo_sqlite: *
- laravel/pint: ^1.13
- orchestra/testbench: ^10.0|^11.0
- phpunit/phpunit: ^10.5|^11.0
This package is auto-updated.
Last update: 2026-07-08 10:48:52 UTC
README

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
AdminixPageobjects. - 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
- Register Adminix in a Laravel app.
- Add page providers to
config/adminix.phpor to one or moreAdminixPanelobjects. - Build each page from modules such as lists, resources, dashboards, imports, and media browsers.
- Keep permissions, tenant scope, writable fields, and route parameters server-owned.
- Run
adminix:doctor, package tests, and live browser checks for UI-facing changes.
Requirements
- PHP
>=8.2 - Laravel
^12.0or^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
- Documentation
- Installation
- Configuration
- Global Search
- Command Palette
- Pages
- Modules
- Maintenance Banner module
- Health Status module
- Import module
- Media Browser
- Tenant Switcher
- Dashboard module
- Progress Bar module
- Panel module
- Text module
- List module
- Resource module
- Console commands
- Security
- Extension API
- Changelog