Getting started

Installation

Requirements

To use MoonShine, the following requirements must be met before installation:

  • php >= 8.1
  • laravel >= 10.23
  • composer > 2

Composer

composer require "moonshine/moonshine:^2.0"
composer require "moonshine/moonshine:^2.0"

Installation

php artisan moonshine:install
php artisan moonshine:install

Once executed, a config/moonshine.php with basic settings will be added.
More information about the configuration file

A directory with the administration panel and resources will also be added - app/MoonShine.
More about Resources

And a MoonShineServiceProvider provider will also be added, where resources should be registered.
More about Resources

Creating an administrator

If during the installation of the admin panel MoonShine an administrator was not created or it is necessary to create another one, you can do it by executing the console command.

php artisan moonshine:user
php artisan moonshine:user

Service provider

To register new resources in MoonShine and create a menu, we need app/Providers/MoonShineServiceProvider.php

namespace App\Providers; use MoonShine\Menu\MenuGroup; use MoonShine\Menu\MenuItem; use MoonShine\Providers\MoonShineApplicationServiceProvider; use MoonShine\Resources\MoonShineUserResource; use MoonShine\Resources\MoonShineUserRoleResource; class MoonShineServiceProvider extends MoonShineApplicationServiceProvider { protected function resources(): array { return [ ]; } protected function menu(): array { return [ MenuGroup::make('moonshine::ui.resource.system', [ MenuItem::make('moonshine::ui.resource.admins_title', new MoonShineUserResource()) ->translatable(), MenuItem::make('moonshine::ui.resource.role_title', new MoonShineUserRoleResource()) ->translatable(), ])->translatable(), MenuItem::make('Documentation', 'https://laravel.com') ->badge(fn() => 'Check'), ]; } protected function theme(): array { return []; } }
namespace App\Providers;
 
use MoonShine\Menu\MenuGroup;
use MoonShine\Menu\MenuItem;
use MoonShine\Providers\MoonShineApplicationServiceProvider;
use MoonShine\Resources\MoonShineUserResource;
use MoonShine\Resources\MoonShineUserRoleResource;
 
class MoonShineServiceProvider extends MoonShineApplicationServiceProvider
{
protected function resources(): array
{
return [
];
}
 
protected function menu(): array
{
return [
MenuGroup::make('moonshine::ui.resource.system', [
MenuItem::make('moonshine::ui.resource.admins_title', new MoonShineUserResource())
->translatable(),
MenuItem::make('moonshine::ui.resource.role_title', new MoonShineUserRoleResource())
->translatable(),
])->translatable(),
 
MenuItem::make('Documentation', 'https://laravel.com')
->badge(fn() => 'Check'),
];
}
 
protected function theme(): array
{
return [];
}
}

Once installed, several resources will be registered in the MoonShineServiceProvider.
More about Menu.

Great! Now you can create and register sections of the future admin panel and get to work! But don't forget to read the documentation to the end!

By default, the admin panel can be accessed by url /admin.
You can change the url in the configuration file.