EasyPanel is a beautiful, customizable and flexible admin panel based on Livewire for Laravel.

Overview

Scrutinizer Code Quality Build Status

EasyPanel

EasyPanel is a beautiful, customizable and flexible admin panel based on Livewire for Laravel.

EasyPanel screenshots

Features :

  • Easy to install
  • Multi Language
  • RTL and LTR mode
  • Sort Data just with a click
  • Support CKEditor and Persian Font for RTL mode
  • Create CRUD for every model in 1 minute
  • Manage route prefix and addresses
  • A beautiful UI/UX with AdminMart template
  • Add/remove Admins with command line
  • UserProviders and Authentication classes are customizable and you can change them
  • You can create your own routes and customize view and components
  • Manage pagination count
  • Real time validation with Livewire
  • A small and beautiful TODO (You can disable it in config)
  • Create a nice and responsive view based on your data in config file for every CRUDs
  • Strong commands to manage package
  • Custom validation based on config file
  • Ajax search with Livewire in every column which you want

Install:

  1. Install the Package in Laravel project with Composer.
composer require rezaamini-ir/laravel-easypanel
  1. Publish EasyPanel files with one command :
php artisan panel:install

Congrats! You installed the package, follow the Usage section.

Usage:

First you have to define admins then You can create a CRUD for a model. Follow the doc.

Define Admins

In default EasyPanel uses is_superuser column in your users table to detect an admin (you can customize it).

If you don't have any column in your users table you have to create a boolean column with is_superuser name then do these steps:

Run this command out to make a user as an admin:

php artisan panel:add [user_id]

To remove an admin you can execute this command:

php artisan panel:remove [user_id]

[user_id] : It's id of user that you want to make as an admin

These commands use UserProvider class in EasyPanel and You can use your own class instead of that and pass it in config file

Multi Lang

If you want change language of Module You have to pass 2 steps:

1 - copy en_panel.json file in resources/lang and paste it in this folder with your lang name like fr_panel.json then customize it. File format must have _panel.json suffix, e.g: fr_panel.json, fr is your language like : fa, en, fr, ar, ..

2 - Set your lang in easy panel config file in config/easy_panel.php in lang key, this value must be equal to your suffix language file name in the lang directory, like fr.

TODO

If you need TODO feature you have to publish TODO migration with this command

php artisan panel:migration

It will publish TODO's migration file then you can migrate the migrations with php artisan migrate.

After pass these steps, You must set todo key in config file to true.

Now you have a TODO inside your panel for each admin.

Config

Base Config

Key Type Description
enable bool Module status
todo bool TODO feature status
rtl_model bool If you want a RTL base panel set it true
lang bool Your default language with this format : **_panel.json which you have to just use ** like en or fa
user_model string Address of User model class
auth_class string Address of user authentication class
admin_provider_class string Address of user provider class
column string That column in users table which determine user is admin or not
redirect_unauthorized string If user is unauthenticated it will be redirected to this address
route_prefix string Prefix of admin panel address e.g: if set it admin address will be : http://127.0.0.1/admin
pagination_count int Count of data which is showed in read action
lazy_mode bool Lazy mode for Real-Time Validation
actions array List of enabled action which you have created a crud config for them.

CRUD Component methods

Method/Property Return Type Description
create bool Create Action for this model
update bool Update Action for this model
delete bool Delete Action for this model
with_auth bool It will fill user_id key for create and update action with auth()->user()->id
getModel string CRUD Model
searchable array Columns in model table which you want to search in read action
validationRules array Validation rules in create and update action (it uses Laravel validation system)
inputs array Input name as key and Input type as value (for update and create action)
storePaths array Where every files of inputs will store
fields array Every data which you want to show in read action (if data is related on other tables pass it as an array, key is relation name and value is column name in related table)

Examples:

Fields:

    public function fields()
    {
        return ['title', 'image', 'user.name'];
    }

Form Inputs:

    public function inputs()
    {
        return [
            'name' => 'text',
            'email' => 'email',
            'password' => 'password',
            'avatar' => 'file'
        ];
    }
    public function inputs()
    {
        return [
            'title' => 'text',
            'body' => 'ckeditor',
            'photo' => 'file',
            'status' => ['select' => [
                'published' => 'Publish Now!',
                'unpublished' => 'Publish Later..',
            ]],
        ];
    }

Dynamic value from a table

    public function inputs()
    {
        return [
            'title' => 'text',
            'body' => 'ckeditor',
            'photo' => 'file',
            'category' => ['select' => 
                Category::where('active', true)
                    ->get()
                    ->pluck('name', 'id') // [1 => 'IT', 2 => 'History', 2 => 'Medicine']
            ],
        ];
    }

What do we use in this package?

Contribution:

If you feel you can improve our package You are free to send a pull request or submit an issue :)

V2 Path

  • ACL System
  • Logging System
  • CRUD Maker GUI
  • File manager
  • RTL Style
  • Translation
  • Custom menu
  • Relational inputs
  • Multiple Templates
  • More input types & editors
  • Admin Manager page in panel
Comments
  • I could not create new crud

    I could not create new crud

    I got same issue. laravel/framework: "^7.24", rezaamini-ir/laravel-easypanel: "^1.5",

    php artisan panel:config User
    
    BadMethodCallException 
    
    Method EasyPanel\Commands\Actions\MakeCRUDConfig::qualifyModel does not exist.
    
    at vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php:103
    

    Originally posted by @shankar-bavan in https://github.com/rezaamini-ir/laravel-easypanel/issues/11#issuecomment-847569771

    opened by shankar-bavan 20
  • Files are not being generated properly

    Files are not being generated properly

    After crud generation files are not being generated properly. Controllers are showing on the root with names like below.

    "App\\Http\\Livewire\\Admin\\Article\\Create.php"
    "App\\Http\\Livewire\\Admin\\Article\\Read.php"
    "App\\Http\\Livewire\\Admin\\Article\\Single.php"
    "App\\Http\\Livewire\\Admin\\Article\\Update.php"
    "App\\Http\\Livewire\\Admin\\User\\Create.php"
    "App\\Http\\Livewire\\Admin\\User\\Read.php"
    "App\\Http\\Livewire\\Admin\\User\\Single.php"
    "App\\Http\\Livewire\\Admin\\User\\Update.php"
    

    Screenshot from 2021-02-18 14-40-29

    I am using EasyPanel with Laravel Framework 8.27.0 and installed Jetstream with livewire as well.

    opened by mgrWetales 13
  • how to use

    how to use "select" type for fields in config file

    I want to use "select" type for ground_name, but I don't know how to write options
    
        // Write every fields in your db which you want to have a input
        // Available types : "ckeditor", "text", "file", "textarea", "password", "number", "email", "select"
        'fields' => [
            'ground_name'=>'select:out,indoor',
             'content'=>'text',
             'place_count'=>'text',
             'used_place_count'=>'text',
        ],
    

    I got this error

    ErrorException 
    
      Undefined index: select:out,indoor
    
      at vendor/rezaamini-ir/laravel-easypanel/src/Parsers/HTMLInputs/BaseInput.php:37
         33▕ 
         34▕         // Create an instance of input class
         35▕         // then call handle() method to get input as a steing
         36▕         if(!is_array($this->type)) {
      ➜  37▕             $inputStringClass = static::classMap[$this->type];
         38▕             $input = (new $inputStringClass())->handle($name);
         39▕         } else {
         40▕             $type = array_key_first($this->type);
         41▕             $inputStringClass = static::classMap[$type];
    
          +30 vendor frames 
      31  artisan:37
          Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    
    opened by dark-wind 7
  • Some file are missing

    Some file are missing

    Hi, I'm trying to install the package but some errors occurs, i've laravel/framework ^8.65, rezaamini-ir/laravel-easypanel ^1.8, breeze for login manager and below all step executed:

    composer require laravel/laravel laravel-easypanel.dev.local
    composer require laravel/breeze --dev
    php artisan breeze:install
    npm install && npm run dev
    composer require rezaamini-ir/laravel-easypanel
    

    Here i've created sqlite db, added is_superuser type boolean on user migration, create a seed wirth only one user as admin, next steps:

    php artisan panel:install
    php artisan migrate:fresh --seed
    php artisan panel:add 1
    

    I see the panel when i go to /admin, but if i try to create CRUDs from panel and i've got an error

    Route  admin user read  not defined (View C Users Cutrone laragon www larvel-easypanel

    So i try to perform crud from console and i run:

    php artisan make:model -crfm Article
    php artisan panel:config Article
    

    This return message:

    Article config file was created for Article model You can manage it in : app/CRUD/ArticleComponent.php and then run

    php artisan panel:crud article
    

    but i've got this other error

    route_error

    In other issue posted i've seen that the folder structure after package installation are bit different, in the resource/view folder i've only vendor, and i can't see the cruds for the user, the attachments below show up my folder structure after run all of the commands above.

    VScode_structure01 VScode_structure02 VScode_structure03

    And another thing is that if i try to run php artisan panel:migration and then i run php artisan migrate an then set 'todos' => true to config/easy_panel.php i've got this

    SQLSTATE HY000  General error 1 no such table todos (SQL select count( ) as aggregate

    What can i do for this? Thank you!

    opened by webtasty 6
  • Error in create crud process

    Error in create crud process

    I have just installed the latest version of the package and got this error when creating crud

    ErrorException

    Trying to get property 'route' of non-object

    at vendor/rezaamini-ir/laravel-easypanel/src/Parsers/StubParser.php:202 198▕ '{{ modelName }}' => ucfirst($modelName), 199▕ '{{ data }}' => $this->parseDataInBlade(), 200▕ '{{ titles }}' => $this->parseTitlesInBlade(), 201▕ '{{ inputs }}' => $this->parseInputsInBlade(), ➜ 202▕ '{{ routeName }}' => crud(strtolower($modelName))->route, 203▕ ]; 204▕ 205▕ $this->setLocaleTexts(); 206▕

    +28 vendor frames 
    

    29 artisan:37 Illuminate\Foundation\Console\Kernel::handle()

    The steps I passed

    1. install package
    2. add admin user
    3. create config file for Post model :: php artisan panel:config Post and get this result Post config file was created for Post model You can manage it in : app/CRUD/PostComponent.php
    4. php artisan panel:crud Post and then got the error

    I think the documention is not clear and actually complete, and it makes using the package hard.

    opened by m-mohammadi1 5
  •  Method EasyPanel\Commands\Actions\MakeCRUDConfig::qualifyModel does not exist.

    Method EasyPanel\Commands\Actions\MakeCRUDConfig::qualifyModel does not exist.

    Hello, When i try to run php artisan panel:config user -m User i get this error

    Method EasyPanel\Commands\Actions\MakeCRUDConfig::qualifyModel does not exist. can you help please ?

    opened by GuerfiHamza 5
  • This problem has been fixed in 1.8.0 version.

    This problem has been fixed in 1.8.0 version.

    I have the same problem in the 1.9 version

    Originally posted by @rezaamini-ir in https://github.com/rezaamini-ir/laravel-easypanel/issues/34#issuecomment-981108476

    opened by Kirad20 4
  • Passwords are stored in plain text

    Passwords are stored in plain text

    Using a field of type password stores the value in plain text.

    The password should be hashed with default Laravel methods so we can use the panel to change passwords of users.

    opened by patriksh 3
  • Update LangChanger.php

    Update LangChanger.php

    Need to add this here so I am able to change language using sessions. Dont know if there is a better way.

    Im using Translatable package so need to do something like this.

    opened by vorja 3
  • Route /admin Not Found

    Route /admin Not Found

    I have installed panel and crud . i also defined the admin but when i go to /admin it says Not Found . Why? i also ran php artisan route:list command but there was no additional routes

    opened by hamidreza2005 3
  • error when i want make crud

    error when i want make crud

    درود و تشکر بابت پنل کاربردیتون ، من اول panel:config رو اجرا کردم و برای یکی از مدل هام کانفیگ رو ست کردم و بعدش دستور panel:crud رو اجرا گرفتم اما ارور null بودن route در صفحه vendor\rezaamini-ir\laravel-easypanel\src\Parsers\StubParser.php:197 دریافت کردم این ارور بابت چیه و چطور میتونم رفعش کنم ؟ مورد بعدی که خواستم مطرح کنم ست کردن فایل منیجر بود پنل رو من هنوز کامل برسی نکردم اما طبق داکیومنتی که خوندم انگاری برای اپلود فایل از فایل منیجر استفاده نشده خواستم پیشنهاد بدم بصورت دیفالت یا حدعقل یک ماژول انتخاب این مورد رو به پکیج اضاف کنید ، https://github.com/UniSharp/laravel-filemanager

    opened by HoseinSatari 2
  • By installing easypanel got error DynamicServiceProvider.php:55

    By installing easypanel got error DynamicServiceProvider.php:55

    Exception

    The class "" does not exists

    at E:\htdocs\agenda\vendor\iya30n\dynamic-acl\src\Providers\DynamicAclServiceProvider.php:55 51▕ private function registerMacros() 52▕ { 53▕ $authModel = config('auth.providers.users.model'); 54▕ 56▕ 57▕ /* MacroableModels::addMacro($authModel, 'roles', function () { 58▕ return $this->belongsToMany(Role::class); 59▕ }); */

    1 E:\htdocs\agenda\vendor\iya30n\dynamic-acl\src\Providers\DynamicAclServiceProvider.php:37 Iya30n\DynamicAcl\Providers\DynamicAclServiceProvider::registerMacros()

    2 E:\htdocs\agenda\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36 Iya30n\DynamicAcl\Providers\DynamicAclServiceProvider::boot()

    opened by almirhodzic 0
  • I have error when I try to install laravel-esaypanel

    I have error when I try to install laravel-esaypanel

    Call to undefined method Illuminate\View\Compilers\BladeCompiler::componentNamespace() at .....\s...\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:261 257| if (! $instance) { 258| throw new RuntimeException('A facade root has not been set.'); 259| } 260|

    261| return $instance->$method(...$args); 262| } 263| } 264|

    1 ....\vendor\rezaamini-ir\laravel-easypanel\src\EasyPanelServiceProvider.php:74 Illuminate\Support\Facades\Facade::__callStatic("componentNamespace")

    2 ....\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36 EasyPanel\EasyPanelServiceProvider::boot() Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

    I use Laravel 7

    opened by julienawon 0
  • Use Laravel's `Gate::check(...)` instead of 3rd party ACL

    Use Laravel's `Gate::check(...)` instead of 3rd party ACL

    Hi,

    I think Easypanel can be made more modular if it uses Gate::check(...) instead of 3rd party ACL. I'm using spatie/permissions and it has conflicts with the roles table.

    opened by bilogic 0
  • Example setup for authentication

    Example setup for authentication

    Hi,

    I like that this admin panel doesn't come integrated with its own authentication. However, I wasn't able to get things going. When I loaded /admin, it literally redirects to http://admin, and I can't quite figure out what the issue is. It was a fresh Laravel installation.

    Perhaps can add an example of how to include a basic authentication setup in the installation steps?

    Thank you.

    opened by bilogic 1
  • Testing messed out

    Testing messed out

    After installing the package, whenever I run my tests that involves my user model, I get this Class "EasyPanelTest/Dependencies/User" not found

    opened by mohafiz 3
  • many to many relationship with additional pivot column

    many to many relationship with additional pivot column

    Hi There is any input type for belongsToMany relationship with additional pivot column? for example u can check below link: https://blog.quickadminpanel.com/laravel-belongstomany-add-extra-fields-to-pivot-table/

    opened by AmirAghaee 0
Releases(2.0.0)
Owner
Reza Amini
TALL Stack Developer, 18 y.o From Kermanshah.
Reza Amini
Admin One is simple, beautiful and free Laravel admin dashboard (built with Vue.js, Bulma & Buefy).

Admin One — Free Laravel Vue Bulma Dashboard Admin One is simple, beautiful and free Laravel admin dashboard (built with Vue.js, Bulma & Buefy). Built

Viktor Kuzhelny 136 Dec 27, 2022
LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like Advanced CRUD Generation, Module Manager, Backups and many more.

LaraAdmin 1.0 LaraAdmin is a Open source CRM for quick-start Admin based applications with features like Advanced CRUD Generation, Schema Manager and

Dwij IT Solutions 1.5k Dec 29, 2022
Admin Columns allows you to manage and organize columns in the posts, users, comments, and media lists tables in the WordPress admin panel.

Admin Columns allows you to manage and organize columns in the posts, users, comments, and media lists tables in the WordPress admin panel. Transform the WordPress admin screens into beautiful, clear overviews.

Codepress 67 Dec 14, 2022
Until 2018, Backpack v3 used this Base package to offer admin authentication and a blank admin panel using AdminLTE. Backpack v4 no longer uses this package, they're now built-in - use Backpack/CRUD instead.

Note: This package is only used by Backpack v3. Starting with Backpack v4, everything this package does is included in Backpack/CRUD - one package to

Backpack for Laravel 845 Nov 29, 2022
Backpack v3 used this Base package to offer admin authentication and a blank admin panel using AdminLTE

Until 2018, Backpack v3 used this Base package to offer admin authentication and a blank admin panel using AdminLTE. Backpack v4 no longer uses this package, they're now built-in - use Backpack/CRUD instead.

Backpack for Laravel 845 Nov 29, 2022
Littlelink admin is an admin panel for littlelink that provides you a website similar linktree.

⚙️ LittleLink Admin LittleLink Admin is an admin panel for littlelink that provides you a website similar linktree. ?? Features creating a link page w

Khashayar Zavosh 70 Oct 29, 2022
Littlelink admin is an admin panel for littlelink that provides you a website similar linktree.

LittleLink Admin is an admin panel for littlelink that provides you a website similar linktree.

Khashayar Zavosh 70 Oct 29, 2022
An account management Panel based on Laravel7 framework. Include multiple payment, account management, system caching, admin notification, products models, and more.

ProxyPanel 简体中文 Support but not limited to: Shadowsocks,ShadowsocksR,ShadowsocksRR,V2Ray,Trojan,VNET Demo Demo will always on dev/latest code, rather

null 17 Sep 3, 2022
A Laravel Admin Panel (Laravel Version : 6.0)

Laravel Admin Panel (Current: Laravel 7.*) Introduction Laravel Admin Panel provides you with a massive head start on any size web application. It com

ftxinfotech 903 Dec 31, 2022
A Laravel admin panel which is creating CRUD for your application automatically.

Adds a zero configuration Admin Panel to your Laravel Application Installation You can install the package via composer: composer require max-hutschen

42coders 10 Aug 24, 2022
Laravel Admin Panel

Laravel Admin Panel An admin panel for managing users, roles, permissions & crud. Requirements Laravel >=5.5 PHP >= 7.0 Features User, Role & Permiss

AppzCoder 668 Dec 18, 2022
A seamless django like admin panel setup for Laravel. Simple, non-cms table manager for admins.

Seamless Admin Panel A seamless Django-like admin panel setup for Laravel. Simple, non-cms table manager for admins. Installation steps Require the Pa

Advaith A J 15 Jan 2, 2023
Basic admin panel with authentication and CURD operation..

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Raja kumar 2 Nov 21, 2022
Admin panel for Uguu and Pomf.

Moe Panel Admin panel for Uguu and Pomf which makes it easier to remove and blacklist files. Features Information about number of files uploaded & sto

Pomf 21 Dec 25, 2022
A very simple admin panel for managing users, roles & permissions.

Laravel Admin Starter A very simple admin panel for managing users, roles & permissions. The premise for this package is to eradicate the duplicate wo

James Mills 26 Sep 24, 2022
Cipi is a Laravel based cloud server control panel that supports Digital Ocean, AWS, Vultr, Google Cloud, Linode, Azure and other VPS.

Cipi is a Laravel based cloud server control panel that supports Digital Ocean, AWS, Vultr, Google Cloud, Linode, Azure and other VPS. It comes with nginx, Mysql, multi PHP-FPM versions, multi users, Supervisor, Composer, npm, free Let's Encrypt certificates, Git deployment, backups, ffmpeg, fail2ban, Redis, API and with a simple graphical interface useful to manage Laravel, Codeigniter, Symfony, WordPress or other PHP applications. With Cipi you don’t need to be a Sys Admin to deploy and manage websites and PHP applications powered by cloud VPS.

Andrea Pollastri 907 Jan 8, 2023
Official website of Giada Loop Machine. Powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries.

Giada WWW Official website of Giada Loop Machine, proudly powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries. What is Giada? Giad

Monocasual Laboratories 14 Oct 7, 2022
Easiest way to create beautiful administration backends with Symfony.

☂ Umbrella framework Easiest way to create beautiful administration backends with Symfony. Demo website • Demo repository Create a new project with Um

Adrien Cantepie 116 Dec 18, 2022