laradashboard
⚡ Lara Dashboard - CMS by Laravel - All In One solution to start your Laravel Application from Basic to Enterprise. Manages Users, Roles, Permissions, Modules, Settings, Translations, Contents, Monitoring and every actions of your Laravel application. Complete solution for Laravel application with Tailwind, Livewire, Rest API, Unit-Tests and more.
Links
README
From the repo.
⚡ Lara Dashboard
Open-source Laravel Admin Panel, CMS & Modular Starter Kit — powered by Laravel 13, Livewire 3, Tailwind CSS v4, built-in MCP for AI agents, and inline AI content tools.
🌐 Website • 🚀 Live Demo • 📖 Documentation • 🧩 Marketplace • 💬 Community
Lara Dashboard is a production-ready Laravel admin panel and headless CMS — a batteries-included Laravel boilerplate / starter kit with Users, Roles, Permissions (RBAC via Spatie), Modules, Settings, Translations, Posts & Pages, Media Library, REST API, MCP server for AI agents (Cursor, Claude Desktop, Claude Code), AI content generation, and a WordPress-style hooks system (via eventy) for extensibility.
Built for Laravel developers who want to ship admin dashboards, SaaS apps, CRMs and internal tools in hours, not weeks — without trading away Laravel idioms, testability or type-safety.
Try the live demo: https://laradashboard.com/try-demo/ Credentials:
superadmin@example.com/12345678
✨ Why Lara Dashboard?
- 🔐 Complete RBAC — Users, Roles, Permissions via Spatie, admin impersonation, social auth (Socialite), and 2FA-ready flows.
- 🧩 Modular Architecture — Self-contained modules via nwidart/laravel-modules. Install, enable, disable, zip and distribute with a single command.
- ⚡ CRUD Generator —
php artisan module:make-crudscaffolds Model, Migration, Service, FormRequest, Controller, Datatable, Views, Routes, Menu and Tests in one pass. - 📝 Full CMS — Posts, Pages, Categories, Tags, Media Library, visual block-based editor with drag-and-drop.
- 🤖 Develop & manage with AI (MCP) — Connect Cursor, Claude Desktop, or Claude Code to your site. Create posts, review CRM leads, send emails, search docs, clear cache, and run daily briefings from natural language — with token-based, permission-scoped access from Settings → MCP.
- ✍️ Inline AI content — Configure OpenAI, Anthropic, Gemini and more via filter hooks. Generate and refine content inside the admin and builder.
- 📧 Email System — Inbound/outbound SMTP connections, visual email template builder, campaign tracking, notifications.
- 🌐 i18n Out-of-the-box — 21 languages preloaded, chunked translation management, one-click language adds.
- 🔌 REST API — Auto-documented with Scramble, Sanctum-auth, ready for mobile apps and SPAs.
- 🎨 Beautiful UI — Tailwind CSS v4, Alpine.js, dark/light mode, 60+ components, responsive on every breakpoint.
- 🪝 WordPress-style Hooks — Actions and filters everywhere so you can extend without forking.
- 🧪 Tests & Static Analysis — Pest, PHPStan (Larastan), Rector, Pint — all wired up out of the box.
- 📦 Zero-friction Deploy — cPanel/shared-hosting ready, ZIP distribution with vendor folder, one-click core upgrades with backup/restore.
🤖 Develop & Manage Your Site with AI (MCP)
Lara Dashboard ships a built-in Model Context Protocol (MCP) server so AI coding assistants can operate your site like a power user — not just write code about it.
Connect Cursor (Desktop or CLI), Claude Desktop, or Claude Code, generate an MCP agent token in Settings → MCP, and ask your assistant to manage day-to-day work: draft and publish posts, triage form submissions, update CRM records, send templated email, inspect logs, and more. Installed modules can expose their own tools through the McpFilterHook registry.
What you can do from Cursor, Claude, or similar clients
| Area | Examples |
|---|---|
| Content | List, create, and update posts; generate SEO meta |
| CRM | Contacts, deals, tickets, and activities (CRM module) |
| Forms | Review new submissions and mark them viewed (Forms module) |
| List templates and send mail to users or contacts | |
| Operations | Daily briefing, clear cache, list storage log files |
| Docs | Search and read LaraDashboard guides (DocForge module) |
Quick start
- Open Settings → MCP, enable the MCP server, and save.
- Click Generate MCP token and copy the token (shown once).
- Add the server config to your AI client — the admin UI includes ready-made JSON for Cursor, Claude Desktop, and Claude Code.
Example config for Cursor (~/.cursor/mcp.json or project .cursor/mcp.json):
{
"mcpServers": {
"laradashboard": {
"url": "https://your-site.test/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_AGENT_TOKEN"
}
}
}
}
For local development, you can store the token in an env var (LARADASHBOARD_MCP_TOKEN) and reference it from the config snippet in Settings → MCP.
Note: The MCP endpoint returns 404 until MCP is enabled in settings. Regular API login tokens do not work — use a dedicated MCP agent token with the abilities you choose.
📚 Table of Contents
📋 Requirements:
- Spatie role permission package
^6.4 - Pest test package
^4.x - Tailwind CSS >= 4.x
- Laravel Modules - https://laravelmodules.com/docs/12/getting-started/introduction
- Laravel Events (A WordPress like action/filter hooks) - https://github.com/tormjens/eventy
- PHP 8.3 or 8.4
- Node.js >= 20.19 - https://nodejs.org/en/download/
🛠️ Built With
📝 Changelog
Latest release: v1.4.5 • Full changelog → • All GitHub releases
[v1.4.5] — 2026-09-23
- New: Datatable column visibility on every list, and unified page scroll with sticky headers and pagination.
- New: View counts on Posts and Pages admin lists.
- New: MCP multipart hero uploads with
serve_okchecks; base64 uploads capped at ~100KB (#327). - New: Multi-turn AI chat completion across OpenAI, Claude, Gemini, and Ollama.
- Fix (Security): Core upgrades and Livewire module enable, disable, delete, and update actions are authorized (Superadmin /
ModulePolicy). - Fix: Text editor autoresize for embedded media; MCP media serve checks and signed uploads.
[v1.4.2] — 2026-09-14
- New: Public-form spam protection — honeypot, reCAPTCHA v3, disposable/typo/domain email validation, and reusable Blade components for Livewire forms.
- New: MCP
UploadMediaToolfor AI agents to upload files to the media library. - Improve: Datatable shift-click bulk selection and sticky headers.
- Improve: Module replace UX (auto-activate + Replaced & active badge), MCP settings UI, and auth email guard settings.
- Fix: MCP media URLs, bulk actions dropdown, Pulse storage on fresh installs.
[v1.4.0] — 2026-09-07
- New: MCP server for AI agents — token-based access from Settings → MCP with tools for content, CRM, forms, email, docs, cache, and logs.
- New: Module MCP registry (
McpFilterHook) so installed modules can expose tools and briefing providers.
[v1.3.2] — 2026-09-06
- New: Dashboard widget customization — per-user show/hide for stat cards and sections.
- Improve: Lara Builder drag preview, save reliability, and list block UX.
- Fix:
ModuleStylesasset scoping and module installation activation edge cases. - Fix (Security): Superadmin-only marketplace install and manual core upgrade upload; post builder upload authorization; markdown fetch SSRF hardening.
- Chore: Dependency updates (
livewire,league/commonmark,browserslist,fast-uri).
[v1.3.1] — 2026-08-31
- Fix: Password visibility toggle accessibility —
aria-label,aria-pressed, and hide tooltip (#296). - Fix: Mobile sidebar toggle icon and
aria-label/aria-expandedon small screens (#295). - Fix: Fresh install migration failure when
posts.design_jsonis missing; guarded canvas padding migration. - Improve: Core upgrade supports
UPGRADE_ZIP_PATH; release workflow demo upgrade uses built artifact ZIP. - Chore: Synced new accessibility strings across 31 locales.
[v1.3.0] — 2026-08-30
- Fix: Hardened media uploads — SVG sanitization, MIME validation, and
.htaccesshardening on public storage. - Fix: License API authorization and backup path traversal protection.
- Fix: Media library upload modal Alpine.js quoting; restored header upload button.
- New: GitHub Actions release pipeline — demo deploy, auto-release, marketplace publish,
/api/health. - New: Headless upgrade commands, Hostinger deploy scripts, and
module:publish-images. - Change: Demo refresh moved to hourly; module menu logos fixed after deploy.
- Chore: Dependency updates (
league/commonmark,guzzlehttp/guzzle, npm packages).
[v1.2.2] — 2026-07-17
- Fix: Core upgrade hardening — vendor staging/validation, CLI subprocess migrations, and vendor included in pre-upgrade backups (fixes shared-hosting upgrade failures).
- Fix:
protect-local-filesComposer script runs via PHP for Windows compatibility.
[v1.2.1] — 2026-07-15
- Fix: Text Editor block lifecycle and list markers in the canvas; list blocks keep content when changing type.
- New: Native Ctrl+Z / Cmd+Z undo in Lara Builder;
ModuleStylescomponent for safe module Vite CSS. - Fix:
module:make-crudcommand and stubs; bumpedspatie/laravel-medialibraryto 11.23.0.
[v1.2.0] — 2026-06-21
- New: Lara Builder SEO drawer with live score, checklist, SERP preview, and AI-generated meta fields.
- New: Auto-save for draft posts, text ↔ heading block conversion, and unified content typography tokens (inherit-by-default colors + section text color).
- Fix: Media library featured image duplicates, broken thumbnails/URLs, and publish/save “Unsaved” false-positive state.
- Improve: Media upload auto-select, post list thumbnails, builder header/actions, and AI content modal UX.
[v1.1.5] — 2026-05-18
- Fix: Migration is now idempotent — safe to re-run on databases that half-applied the v1.1.4 release.
[v1.1.4] — 2026-05-18
- New: Daily error digest email notifications for admins with error details.
- Improve: Improved module generator command to support custom stub templates and better error handling.
- Fix: Fixed switch toggle component styling.
[v1.1.3] — 2026-05-04
- Improve: Improved file upload component with close button and better error handling.
- Fix: Fixed minor upgrade issue for demo mode.
[v1.1.2] — 2026-04-19
- Fix: Module generator command improvement for Windows OS.
- Fix: CRUD generator command improvement for Windows OS.
- Improve: Added more extendibility support for email templates.
- Improve: Added more extendibility support for authentication pages.
[v1.1.1] — 2026-04-10
- Feat: Scheduled queue worker — runs every minute via
schedule:runto process queued jobs (workflow actions, emails) without requiring a long-running worker. - Improve: Sidebar submenu supports deeper (3rd and 4th level) nesting with proper indentation.
- Improve: Sidebar submenu expands without an inner scrollbar; the sidebar wrapper handles overflow when nav is long.
- Fix: Cleaned up user dropdown styling in the admin header.
👉 See the full changelog for all versions (v0.9.x – v2.x) →
🚀 Project Setup
Clone and Go Project
git clone git@github.com:laradashboard/laradashboard.git
cd laradashboard
Database & env creation
- Create database called -
laradashboard - Create
.envfile by copying.env.examplefile
cp .env.example .env
Install Composer & Node Dependencies
composer install
npm install
Generate Artisan key
php artisan key:generate
Link storage for file upload processing
php artisan storage:link
Migrate Database with seeder
php artisan migrate:fresh --seed
Run Project
composer run dev
So, You've got the project of Lara Dashboard on your local machine - http://localhost:8000
[Note]: For hot reloading to work, you must need node js version >= 20.19
🔨 Build Commands
| Command | Description |
|---|---|
npm run build | Build core only |
npm run build:all | Build core + all enabled modules |
npm run build:modules | Build all enabled modules |
npm run build:modules -- --modules=crm | Build specific module |
npm run build:modules -- --modules=crm,customform | Build multiple modules |
npm run dev | Dev server (core + modules) |
npm run dev:core | Dev server (core only) |
📦 Distribution Package (Zip Build)
Create a production-ready zip package for distribution or manual upgrades. This package includes the vendor folder so users don't need Composer installed.
Using the Admin Panel:
- For production distribution, first run:
composer install --no-dev --optimize-autoloader - Go to Settings → Core Upgrades
- Click Create Backup
- Select backup type (Core + Modules recommended)
- Check Include vendor folder for production deployment
- Download the generated zip file
- Restore dev dependencies:
composer install
Manual Zip Creation:
# Build all assets first
npm run build:all
# Install production-only dependencies (removes dev packages like Pest, PHPUnit, etc.)
composer install --no-dev --optimize-autoloader
# Create distribution zip (excludes node_modules, .git, tests, uploads, etc.)
zip -r laradashboard-v$(cat version.json | grep -o '"version": "[^"]*' | cut -d'"' -f4).zip \
app bootstrap config database resources routes vendor Modules \
public/.htaccess public/index.php public/favicon.ico public/robots.txt \
public/asset public/backend public/build public/build-* public/css public/js public/images/logo \
storage/app/.gitignore storage/app/public/.gitignore \
storage/framework/.gitignore storage/framework/cache/.gitignore \
storage/framework/sessions/.gitignore storage/framework/views/.gitignore \
storage/logs/.gitignore \
artisan composer.json composer.lock package.json version.json index.php \
.env.example .htaccess vite.config.js tailwind.config.js postcss.config.js \
-x "*.git*" -x "node_modules/*" -x "tests/*" -x "storage/logs/*" -x "public/images/uploads/*" -x "public/uploads/*"
# Restore dev dependencies for local development
composer install
Note: Running
composer install --no-devbefore creating the zip ensures the vendor folder only contains production dependencies, significantly reducing the package size.
What's included in the distribution package:
app/- Application codebootstrap/- Bootstrap filesconfig/- Configuration filesdatabase/- Migrations, seeders, factoriespublic/- Public assets (build, css, js, images)resources/- Views, JS, CSS, lang filesroutes/- Route definitionsvendor/- Composer dependencies (optional, for production)index.php- Root entry point for shared hosting (cPanel).htaccess- Apache rewrite rules.env.example- Environment template- Core config files (composer.json, package.json, etc.)
Shared Hosting (cPanel) Deployment:
The package includes index.php and .htaccess in the root directory, so it works out-of-the-box on shared hosting without changing document root:
# Upload all files to public_html/
# No need to change document root - just upload and configure .env
If you prefer the standard Laravel setup (recommended for VPS/dedicated servers):
- Point your domain's document root to the
public/directory - Or create a symlink:
ln -s /path/to/laradashboard/public /home/user/public_html
Fresh Installation from Zip:
# Extract the zip
unzip laradashboard-vX.X.X.zip -d laradashboard
cd laradashboard
# Configure environment
cp .env.example .env
php artisan key:generate
# Update .env with your database credentials
# DB_DATABASE=your_database
# DB_USERNAME=your_user
# DB_PASSWORD=your_password
# Run migrations
php artisan migrate --seed
php artisan storage:link
# If vendor was not included, run:
composer install --no-dev --optimize-autoloader
🔄 Previously From laravel-role
We were previously at https://github.com/ManiruzzamanAkash/laravel-role, so you need to change the URL if you moved from there
git remote set-url origin git@github.com:laradashboard/laradashboard.git
⚙️ How it works
- Login using Super Admin Credential -
- Email -
superadmin@example.com - Password -
12345678
- Email -
- Forget password - Password forget and reset will work if email is set up properly
- Create User
- Create Role
- Assign Permission to Roles
- Assign Multiple Role to an User
- Check by login with the new credentials.
- If you've not enough permission to do any task, you'll get a warning message.
- Dashboard with Beautiful chart integrated
- Module Based Development - Custom Module Add/Enable/Disable/Delete with detail view
- Monitoring - Logging of every action of your application
- Monitoring - Laravel Pulse
- Translation Management - Add/Edit/Delete Language, Add/Edit/Delete Translation
- Settings - General, Site Appearance, Content, Integration, Security settings
- Admin Menu - Add/Edit/Delete Menu, Submenu, Link
- Admin Impersonation - Login as another user and switch back to your original account
- Custom Error Pages - 404, 500, 503, 403
- Content Management System - Add/Edit/Delete Content, Content Category, Content Tag
- AI Content Generation - Configure AI providers (OpenAI, Anthropic, etc.) for content generation
- MCP Server - Connect Cursor, Claude Desktop, or Claude Code; manage content, CRM, forms, email, cache, and logs from AI agents (Settings → MCP)
- Email Management - Email connections, email templates with visual builder, notifications
- Detail Pages - User, Role, Permission, Module detail views with comprehensive information
- REST API — auto-documented REST endpoints for Users, Roles, Permissions, Settings, Translations, and Content (Post / Page / Category / Tag).
📧 Email setup
You can use Mailpit to test emails easily - https://mailpit.axllent.org/
Installation link - https://mailpit.axllent.org/docs/install/
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=dev@example.com
MAIL_FROM_NAME="${APP_NAME}"
Browse Emails - http://localhost:8025
[!NOTE] You can also create custom Email connection from Email Connections page.
📚 Documentation
https://laradashboard.com/docs/
🔗 Rest API Documentation
We've used Scramble to automatically generate the Rest API documentation for Lara Dashboard. You can find the API documentation at:
http://localhost:8000/docs/api
Tests
We've used Laravel Pint, Rector, Larastan(PHPstan) - static analysis and Pest for unit tests, e2e (browser) tests.
composer run test
composer run test
Format: To format the code, we've used pint. You can run the following command to format the code:
composer run format
Type Safety: To improve type safety, we've used rector. You can run the following command to add type hints:
composer run type-check
You can also run individual commands for each tool (optional):
composer run pint
composer run phpstan
composer run pest
🛠️ Troubleshooting
Laragon/Windows: ext-sockets missing
If you get this error during composer install:
pestphp/pest-plugin-browser requires ext-sockets * -> it is missing from your system
Fix: Enable the sockets extension in php.ini:
extension=sockets
Or via Laragon UI: Right-click tray → PHP → Extensions → check sockets
Quick workaround:
composer install --ignore-platform-req=ext-sockets
🚀 Laravel Boost
Laravel Boost is already installed in this project to provide enhanced development and debugging tools for Lara Dashboard.
How to use Boost:
Visit the Laravel Boost documentation.
📸 Screenshots
🔐 Login & Authentication
Login Page
|
Forget Password Page (Dark Mode)
|
📊 Dashboard
Dashboard (Light Mode)
|
Dashboard (Dark Mode)
|
Dashboard Collapsed Sidebar
|
🔑 Role Management
Role List (Light Mode)
|
Role List (Dark Mode)
|
Role Create
|
Role Edit
|
Role Detail
|
Permission List
|
Permission Detail
|
👥 User Management
Users List (Light mode)
|
User Create (Dark mode)
|
User Detail
|
Profile Edit
|
User Delete
|
📝 Content Management - CMS
Posts List
|
Post Create
|
Pages List
|
Page Edit
|
Category List & Create
|
Category Edit
|
Tag List & Create
|
Tag Edit
|
📁 Media Management
Media List (Light Mode)
|
Media List (Dark Mode)
|
🤖 AI Content Generation
AI Providers Settings
|
AI Providers Settings
|
Use inline AI inside the admin for drafting and editing. For full site management from Cursor, Claude Desktop, or Claude Code, enable the MCP server under Settings → MCP — see Develop & Manage with AI (MCP) above.
📧 Email Management
Email Connections
|
Email Templates
|
Email Template Create
|
Notifications Settings
|
🧩 Module Management
Module List
|
Install Module
|
Module Detail
|
⚙️ Settings Pages
General Settings
|
Site Appearance
|
Content Settings
|
Integration Settings
|
Security Settings
|
🌐 Translations Pages
Translations List (Light Mode)
|
Translations List (Dark Mode)
|
📊 Monitoring
Action Logs
|
Laravel Pulse
|
🧩 Rest API Management
Rest API
|
Rest API Login
|
🔧 Other Pages / Sections / Tests
Custom Error Pages
|
Post activity Chart
|
Pest, Pint, Rector, PHPstan tests
|
🔗 Live Demo
https://laradashboard.com/try-demo/
✨ Premium Features
Visit laradashboard.com for premium modules — CRM, HRM, Course Management, Project Management and more. Each premium module ships with the same CRUD generator, hooks, and test scaffolding as the core.
🧩 Core modules
- Task Manager - https://github.com/laradashboard/TaskManager - Basic Task Manager module for Lara Dashboard | Standard Starter Module for Lara Dashboard.
- User Avatar - https://github.com/laradashboard/UserAvatar - A very simple module create an avatar for a user. Handle migration, entries/updates in user forms and so on.
📦 Module Development
Lara Dashboard uses nwidart/laravel-modules for modular architecture. Modules are self-contained packages with pre-compiled assets - no npm required on the server.
Quick Start
# Create a new module
php artisan module:make Blog
# Build and package for distribution
php artisan module:zip Blog
# Output: Blog-v1.0.0.zip
Learn module development documentation
CRUD Generator
Rapidly scaffold complete CRUD operations with a single command.
php artisan module:make-crud Blog --model=Article --fields="title:string,author:string,content:text,is_published:boolean"
What gets generated:
- ✅ Model with fillable fields and casts
- ✅ Datatable with sorting, searching, pagination
- ✅ Index, Show, Create, Edit Livewire components
- ✅ Blade views with breadcrumb navigation
- ✅ Routes (index, create, show, edit)
- ✅ Sidebar menu item
Learn more CRUD generator documentation
Installing Modules
Via Web UI: Upload ZIP at Modules → Install Module (assets publish automatically)
Via CLI:
unzip Blog-v1.0.0.zip -d modules/
php artisan module:enable Blog
📖 Full Module Development Guide - Covers module structure, Tailwind CSS setup, building, packaging, and best practices.
👥 Contributing
Want to contribute? Fork the project, make your changes, and submit a pull request. Even small improvements to documentation are appreciated!
Please be sure to read our Contribution Guide before submitting your PR.
➶ Coding Standards
✨ Following a consistent coding standard ensures code quality, readability, and easier collaboration for everyone. 📏 Please be sure to read our Contribution Guide before submitting your PR.
🌟 Top contributors:
✩ Growth Story
💖 Support
If you like my work you may consider buying me a ☕ / 🍕
Go to Patreon📞 Connect
- Join Facebook Community (For any questions, latest updates) - https://www.facebook.com/groups/laradashboard
- Linkedin Community - https://www.linkedin.com/groups/14690156
- Youtube channel (For tutorials) - https://www.youtube.com/@laradashboard
- Maniruzzaman Akash - @LinkedIn | manirujjamanakash@gmail.com
Collected info
- ★ 415 stars
- ⎇ 167 forks
- Language: PHP
- Source updated: 9/23/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.