charlesg41 / lunexa
Lunexa content management system for Laravel
Requires
- illuminate/support: ^12.0
- ramsey/uuid: ^4.9
README
Lunexa is a Laravel content management system with a bundled Vue interface. Applications install it as a single Composer package; Node.js is not required.
Requirements
- PHP 8.2 or newer
- Laravel 12
Installation
composer require charlesg41/lunexa php artisan lunexa:install
The installer publishes configuration and production assets, creates missing storage links, runs migrations, and seeds the initial Lunexa data when no entry types exist. It also creates these application-owned extension points:
app/Managers/EntryTypeManager.php
app/Managers/GroupManager.php
app/Managers/UserManager.php
app/Models/LunexaUser.php
The generated managers and model are registered in config/cms.php. Existing
files are never overwritten, and the host application's App\Models\User
remains untouched. The installer does not wipe application data.
Open /cms after installation.
Configuration
Publish the configuration independently when needed:
php artisan vendor:publish --tag=lunexa-config
Production assets are bundled with the Composer package. Republish them after an upgrade with:
php artisan vendor:publish --tag=lunexa-assets --force
Set LUNEXA_VITE_DEV_SERVER_URL only when developing the Vue client against a
running Vite server. Installed applications use the compiled assets by default.
Generate application-specific model and manager classes for an entry type with:
php artisan lunexa:make-entry-type news