Installation

Install the package with Composer, run the installer, wire two entry files into Vite, then build. AdminLTE 4 for Laravel uses a Vite-first asset pipeline — no precompiled CSS/JS is shipped into your app.

1. Require the package

composer require colorlibhq/adminlte-laravel

2. Run the installer

php artisan adminlte:install

This will:

  • Publish config/adminlte.php.
  • Drop the Vite entry stubs into resources/css/adminlte.css and resources/js/adminlte.js.
  • Offer to npm install the frontend dependencies, pinned to the tested major versions: admin-lte@^4.0, bootstrap@^5.3, @popperjs/core@^2.11, overlayscrollbars@^2.0, bootstrap-icons@^1.13, apexcharts@^5.0, jsvectormap@^1.7, fullcalendar@^6.1, sortablejs@^1.15, sass@^1.77.
  • Copy plugin vendor files (ApexCharts, jsVectorMap, FullCalendar, SortableJS, plus the AdminLTE RTL stylesheet) into public/vendor/.

Publish tags

The installer wraps Laravel's vendor:publish. You can also publish individual asset groups directly by tag, or scope the installer with --only:

Publish tagInstaller flagPublishes
adminlte-config--only=configconfig/adminlte.php
adminlte-views--only=viewsBlade views → resources/views/vendor/adminlte
adminlte-assets--only=assetsVite stubs → resources/js/adminlte.js, resources/css/adminlte.css
adminlte-lang--only=langTranslations → lang/vendor/adminlte
php artisan vendor:publish --tag=adminlte-config
php artisan adminlte:install --only=views --force

3. Wire Vite

Add the two published entry files to your vite.config.js input array:

import { defineConfig } from 'vite'
import laravel from 'laravel-vite-plugin'

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/adminlte.css',
                'resources/js/adminlte.js',
            ],
            refresh: true,
        }),
    ],
})

4. Build assets

npm run dev      # development (HMR)
npm run build    # production

5. Create your first page

{{-- resources/views/dashboard.blade.php --}}
@extends('adminlte::page')

@section('title', 'Dashboard')

@section('content_header')
    <h3 class="mb-0">Dashboard</h3>
@stop

@section('content')
    <x-adminlte-info-box title="Orders" text="150" icon="bi bi-bag" theme="primary" />
@stop
// routes/web.php
Route::view('/', 'dashboard')->middleware('auth');

6. Verify

php artisan adminlte:status

This reports which resources are installed: config, stubs, published views, npm packages, plugin vendor files and scaffolded sections.

Optional plugins (Flatpickr, Tom Select, Tabulator, Quill) are disabled by default and not installed. Add them only if you enable them in config/adminlte.php: npm install -D flatpickr@^4.6 tom-select@^2.4 tabulator-tables@^6.0 quill@^2.0. See Charts & Plugins.

Next step

Edit your configuration — see Configuration.


AdminLTE 4 · Laravel port Edit on GitHub