digiants-agency/fastadminpanel is a Laravel package for fast admin panel generator.
It currently has 10 GitHub stars and 157 downloads on Packagist (latest version v3.1.2).
Install it with composer require digiants-agency/fastadminpanel.
Discover more Laravel packages by digiants-agency
or browse all Laravel packages to compare alternatives.
Last updated
The open-source headless CMS made with Laravel and Vue.js, flexible and fully customizable.
FastAdminPanel is a free and open-source headless multilangual CMS enabling you to manage any content.
You can find some screenshots below.
Feel free to contact me: [email protected]
composer create-project laravel/laravel="13.*" PROJECT_NAME
cd PROJECT_NAME
composer require digiants-agency/fastadminpanel
Configure DB and APP_URL in the .env file
Run the install command
php artisan fastadminpanel:install
composer require intervention/image-laravel
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
change line: ('disk' => 'public',) to ('disk' => 'lfm',)
// add category of folder in folder_categories (48 line)
'admin' => [
'folder_name' => 'vendor/fastadminpanel/icons',
'startup_view' => 'list',
'max_size' => 50000, // size in KB
'valid_mime' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/svg+xml',
'application/pdf',
'text/plain',
],
],
// add this config beginning from the line 44:
'lfm' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL'),
'visibility' => 'public',
],
Enjoy 🎉
Notes:
You can see the examples below:



use Single;
Single::get('your_slug_here');
You can see the examples below:


Every CRUD created that has “Is docs” = Yes is displayed in the documentation. Also all static content “single” is displayed in the documentation.
Documentation can be viewed at https://yourdomain.com/admin/docs.
If you want to add your own documentation, go to /app/FastAdminPanel/Controllers/DocsController.php. There's already an example of how to write it
You can see the example of the documentation below:

You can add a parent menu item for the singles and CRUDs you create.
Go to: https://yourdomain.com/admin/dropdowns
Add dropdowns
Go to CRUD or single (static content generator) and add parent
You can see the example of the dropdown below:

The admin panel is fully multi-lingual. CRUD multilingualism is represented as identical tables in different languages, e.g. post_en, post_de. This approach denormalizes the database (increasing the amount of space occupied), but makes a very simple approach to manage it. The multilanguage model is very simple and is represented by the MultilanguageModel class.
To make the custom model multilingual - just inherit the App\FastAdminPanel\Models\MultilanguageModel class.
There is "Multilanguage" select in CRUD to make it multilangual.
Each field has a Lang column to make it multi-lingual. If Lang == “common”, then when saving the field - the value will be updated in all the tables (for example posts_en, posts_de, posts_fr). If Lang == “separate”, then when saving the field - the value will be updated in the current language table only (for example posts_en).
You can edit languages at https://yourdomain.com/admin/settings.
The language of the admin panel is represented in the “admin_lang_tag” column of the User.
There is a class Lang. It has several useful methods:
use Lang;
Lang::count(); // languages count
Lang::all(); // get all languages
Lang::get(); // get current language tag
Lang::is($langTag); // check language tag
Lang::main(); // get main language tag
...
By default, internal settings for permissions, languages, crud, single and dropdown are hidden.
All hidden menu items are displayed if APP_DEBUG=true in the .env file.
You can also hide CRUDs ("Is dev" option).
To show hidden menu items, you need to add "?dev=" to your address, for example: https://yourdomain.com/admin?dev=.
To change query parameter, go to: /config/fap.php
Go to https://yourdomain.com/admin/cruds/roles to add roles.
Each role has the “Is admin” option that allows the role to log into the admin panel.
Go to https://yourdomain.com/admin/settings to change role permissions.
Warning: be careful with relations. Someone can use a GET method with a relation (and the relation will not be checked for permission).
Superadmin role is: Entities = all, All = true.
The example below exists, but it is commented out (https://github.com/digiants-agency/fastadminpanel/commit/5d6f2eb4bab58cebe1ddfc9a4a66f7e18e95a51b).
Create Vue component. For example:
/views/fastadminpanel/pages/admin/pages/custom.blade.php
/views/fastadminpanel/layouts/app.blade.php
@include('fastadminpanel.pages.admin.pages.dashboard')
@include('fastadminpanel.pages.admin.pages.custom')
{
path: '',
name: 'home',
component: dashboardPage,
},
{
path: 'custom',
name: 'custom',
component: customPage,
},
/views/fastadminpanel/pages/admin/parts/sidebar.blade.php
/views/fastadminpanel/pages/admin/fields/custom/FIELD_TYPE-TABLE_NAME-DB_TITLE.blade.php
FIELD_TYPE - the type of the field, for example: ckeditor, date etc.
TABLE_NAME - the name of the CRUD table (place the word "all" for all tables)
DB_TITLE - the title in the database of the field (place the word "all" for all fields)
Some examples already exist in the "custom" folder.
Add your own CRUD service to override some methods: index, show, store, update, copy, destroy.
Create your service here (it will be applied automatically):
/app/FastAdminPanel/Services/Crud/Entity/Custom/MethodTableService.php
Method can be: index, show, store, update, copy, destroy.
Table: as you named it in the database.
One such service already exists as the example. The example below overrides “show” method, “products” table.
/app/FastAdminPanel/Services/Crud/Entity/Custom/ShowProductsService.php
Add your own API validation for the methods: index, show, store, update, destroy.
Create your validator here (it will be applied automatically):
/app/FastAdminPanel/Api/Validation/MethodTableValidation.php
Method can be: index, show, store, update, destroy.
Table: as you named it in the database.
One such validator already exists as the example. The example below overrides “store” method, “callbacks” table.
/app/FastAdminPanel/Api/Validation/StoreCallbacksValidation.php
Add your own API filter to change data or do something (send email after creation, set user id etc) for the methods: index, show, store, update.
Create your filter here (it will be applied automatically):
/app/FastAdminPanel/Api/Filter/MethodTableFilter.php
Method can be: index, show, store, update.
Table: as you named it in the database.
One such filter already exists as the example. The example below overrides “store” method, “callbacks” table.
/app/FastAdminPanel/Api/Filter/StoreCallbacksFilter.php