Lean is a composer package that can be installed in multiple ways: zip files, the GitHub repository, and our private composer repository.

We recommend using the private composer repository, because you won't have to change your composer.json repositories for production deploys.

That option also comes with an automatic installer.


Lean requires Laravel 8 and PHP 7.4.

PHP 8 was released a few months ago and it's close to having full support by the most popular tools and extensions. Which means that in the near future, Lean might switch to PHP 8 as well.

Since Lean is an admin panel built using very new technology (Livewire, Tailwind CSS, Alpine.js), this shouldn't be an issue to our users.

In general, we like to keep things as modern as possible and have a "release early, release often" approach to major releases. Meaning, we won't wait an arbitrary number of months to accumulate big changes and release the next major version. By releasing major versions often, new features will be out earlier, and upgrading between versions will be much easier.

Automatic installer

To install Lean using the private composer package — the recommended approach — you can use our automatic installer.

Simply require the installer with composer:

composer require leanadmin/installer

And run the lean:setup command:

php artisan lean:setup

This will run the installation wizard which does everything for you — sets up an API token, adds it to auth.json, adds a composer repository, and installs the actual package.

Lean Admin Installer

First, we'll need your login information for
This won't be stored anywhere and will only be used to generate an API token.

 What's your email? [[email protected]]:
 > [email protected]

 What's your password?:

Successfully logged in.

Now we need to generate an access token for composer.

 Token name [Laravel @ MacBook-Pro.local]:
 > Laravel @ MacBook-Pro.local

Generating token...
Token successfully added to auth.json.
Repository added to composer.json.
Requiring leanadmin/lean...
leanadmin/lean required.
Running the install command...
Provider published and registered.
Frontend assets published.
Translation files published.
User Resource published.
Welcome Page published.
Config file published.
Added Lean routes.
✨ Lean is fully installed.
Install command succeeded.


✅ Everything succeeded ✅

🚀 Lean is now installed and accessible on http://installer-test.test/admin.

If the /admin route is already occupied, you may need to make small changes.
Please see your routes/web.php file to verify that the routes were added correctly.


You can remove the installer dependency by running `composer remove leanadmin/installer`.

 Remove installer now? (yes/no) [yes]:
 > yes

Installer dependency removed.

If you use the automatic installer, you don't need to follow the rest of this page. Everything has been taken care of for you.

Manual installation

In some cases, the automatic installer might not work for you, or you may want a little more control. For that, we have documented manual installation too.

First, to pull in Lean, you need to tell composer where to find it.

GitHub repository

Will work locally and supports dev version constraints (e.g. dev-master). Not recommended in production.

Configure a composer repository:

composer config repositories.lean vcs [email protected]:LeanAdmin/lean.git

When you install the package, it will ask you for authentication details. Usually you'll want to use a Personal Access Token.

Private composer repository

Recommended, works both locally and in production. Only supports tagged versions.

Configure a composer repository:

composer config repositories.lean composer

And create an auth.json file at the root of your project. It should look like this:

    "bearer": {
        "": "your-api-token"

You can generate an API token on your API tokens page.

Production considerations

It's a good idea to use one API token per deploy environment — with each token having a name that tells you what environment it's being used in.

Creating an auth.json file can be painful in some environments (however most apps can use it just fine). A good alternative is using a global auth.json file on the server or the COMPOSER_AUTH environment variable.

You can locate the global composer config directory using this command:

composer config --list --global | grep home

It will show a directory. cd into it and create an auth.json file if it doesn't exist yet. If it does exist, add the key to the bearer section.

If you want to use the COMPOSER_AUTH environment variable, set it to the above JSON snippet (formatted into a single line).

Installing the package

Note: This is only needed if you installed Lean manually. If you used the automatic installer, this is already done.

After you've configured the repository, you can install the package via composer:

composer require leanadmin/lean

After that, run:

php artisan lean:install

This will publish:

  • a service provider and register it in your config/app.php file
  • the localization file
  • the WelcomePage
  • the UserResource

It will also add a Lean::routes() call to your routes/web.php file. Please check that it's in the right place — and if not, move it to the right route group.

If this all went well, you can start using Lean. Visit /admin on your app and you should be presented with a Welcome screen.

Now, it's time to create your own Resources.