PHPackages                             alexstack/laravel-cms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. alexstack/laravel-cms

ActiveLibrary[Admin Panels](/categories/admin)

alexstack/laravel-cms
=====================

Simple Bootstrap Laravel CMS. Can integrate to any existing Laravel project. Only add few database tables with prefix, not effect your existing database tables. Support Laravel 8.x &amp; 7.x &amp; Laravel 6.x &amp; Laravel 5.x - Amila Laravel CMS

1.4.7(4y ago)1084.3k26[1 issues](https://github.com/AlexStack/Laravel-CMS/issues)5MITPHPPHP &gt;=7.0.0

Since Aug 16Pushed 4y ago7 watchersCompare

[ Source](https://github.com/AlexStack/Laravel-CMS)[ Packagist](https://packagist.org/packages/alexstack/laravel-cms)[ Docs](https://github.com/AlexStack/Laravel-CMS/)[ RSS](/packages/alexstack-laravel-cms/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (36)Used By (5)

Amila Laravel CMS
=================

[](#amila-laravel-cms)

[![image](docs/images/min/travis.svg)](https://github.com/AlexStack/Laravel-CMS/releases)[![Laravel CMS](docs/images/min/mit.svg)](https://www.laravelcms.tech/ "Laravel CMS 2020")[![image](docs/images/min/styleci.svg)](https://github.com/AlexStack/Laravel-CMS/releases)[![Latest Stable Version](https://camo.githubusercontent.com/7f8b6fdbe1ceee453a8e641a59a2762ba2513631b7d0b843a067d1f0844bf1b9/68747470733a2f2f706f7365722e707567782e6f72672f616c6578737461636b2f6c61726176656c2d636d732f762f737461626c65)](https://github.com/AlexStack/Laravel-CMS/releases)

- Free, open-source Simple Bootstrap Laravel CMS, support Laravel 8.x or 7.x or old Laravel 6.x &amp; 5.x, support MySql &amp; MariaDB &amp; PostgreSQL
- Can integrate with any existing Laravel project, install as an individual Laravel package
- Only add a few database tables with a prefix, not effect your existing database tables.
- You can easily custom the database table names, the page URL path(route) and the template(theme)
- Build-in Website is ready after install. Easy to use, simple enough but flexible.
- Basic Laravel 8.x/ Laravel 7.x /Laravel 6.x / Laravel 5.x syntax and blade template, no need to learn a "new language"

How to install for an existing Laravel project
----------------------------------------------

[](#how-to-install-for-an-existing-laravel-project)

- Support Laravel 8.x &amp; Laravel 7.x &amp; Laravel 6.x &amp; Laravel 5.x

```
// Make sure you already have laravel installed and configured the database in the .env
// Go to your laravel project folder and install it via composer
// Initialize the CMS (You can set up database table prefix and locale here)

composer require alexstack/laravel-cms && php artisan laravelcms

// Now you can access the cms frontend site: http://yourdomain/cms-home

// Access the backend with the FIRST USER of your site: http://yourdomain/cmsadmin

// Note: The default admin is the first user in your laravel database(user id = 1 )
```

How to set up a brand new CMS website with the latest Laravel
-------------------------------------------------------------

[](#how-to-set-up-a-brand-new-cms-website-with-the-latest-laravel)

- It's good for a local testing, it's support the latest Laravel version

```
// Step 1: Install Laravel to folder cms
composer create-project laravel/laravel cms && cd cms && composer require alexstack/laravel-cms

// Step 2: install CMS in silent mode
php artisan laravelcms --locale=en --table_prefix=cms_ --silent=yes

// Note: it will ask for database settings if you did not change the default .env file
// Note: it will automatically run a web server on port 9321 for your project

// Step 3: Now, you can access your cms backend via http://127.0.0.1:9321/cmsadmin/
// Default admin username: admin@admin.com  password: admin321
```

How to uninstall
----------------

[](#how-to-uninstall)

```
// Uninstall the CMS
php artisan laravelcms --action=uninstall
```

Demo &amp; Documents
--------------------

[](#demo--documents)

- [Laravel CMS frontend demo &amp; documents](https://www.laravelcms.tech "Laravel CMS") 📙

Screenshot of the output of install command
-------------------------------------------

[](#screenshot-of-the-output-of-install-command)

[![image](docs/images/min/artisan-install-command-min.png)](docs/images/min/artisan-install-command-min.png)

Screenshot of the output of uninstalling command
------------------------------------------------

[](#screenshot-of-the-output-of-uninstalling-command)

[![image](docs/images/min/artisan-uninstall-command-min.png)](docs/images/min/artisan-uninstall-command-min.png)

Screenshot of the admin panel
-----------------------------

[](#screenshot-of-the-admin-panel)

[![image](docs/images/min/all-pages-min.png)](docs/images/min/all-pages-min.png)[![image](docs/images/min/settings-template-min.png)](docs/images/min/settings-template-min.png)[![image](docs/images/min/create-new-page-min.png)](docs/images/min/create-new-page-min.png)

Set locale language to **cn** instead of **en**
-----------------------------------------------

[](#set-locale-language-to-cn-instead-of-en)

[![cn_image](docs/images/min/settings-global-cn-min.png)](docs/images/min/settings-global-cn-min.png)

Error "Route \[login\] not defined" while access the backend /cmsadmin/
-----------------------------------------------------------------------

[](#error-route-login-not-defined-while-access-the-backend-cmsadmin)

- This means you did not install Laravel Auth(User system)
- Can be fixed by the below commands:

```
// Laravel 6.x & Laravel >= 7 & Laravel >= 8
composer require laravel/ui && php artisan ui vue --auth
// Laravel 5.x, run blow command instead
php artisan make:auth && php artisan migrate
```

- After install the Auth package, please register the first user as the admin

How to log into the backend /cmsadmin/?
---------------------------------------

[](#how-to-log-into-the-backend-cmsadmin)

- Amila CMS use your existing Laravel user system
- You need to log in with the FIRST USER of your site (user\_id = 1)
- You can add more admin users by change the admin\_ary in config/laravel-cms.php
- If you don't have any existing user, then register a new one via

Why the uploaded image can not display (404 error)
--------------------------------------------------

[](#why-the-uploaded-image-can-not-display-404-error)

- You can fix it by creating a storage public link
- **php artisan storage:link**
- eg. The public/storage should link to ../storage/app/public, if the public/storage is a real folder, you should remove/rename it and run "php artisan storage:link" to set up the link.

Custom the cms route in config/laravel-cms.php
----------------------------------------------

[](#custom-the-cms-route-in-configlaravel-cmsphp)

- **homepage\_route**: This is the frontend homepage. By default it is /cms-home, you can change it to / then remove the existing / route in the routes/web.php

```
# Change homepage_route to /  in config/laravel-cms.php
'homepage_route'    => env('LARAVEL_CMS_HOMEPAGE_ROUTE', '/'),

# Remove the existing / route in the routes/web.php

// Route::get('/', function () {
//     return view('welcome');
// });
```

- **page\_route\_prefix**: This is the frontend page prefix. By default it is /cms-, it will match path like /cms-\*. You can change it to a folder like /xxx/ or anything like xxx-, eg. Page- Article-

```
'page_route_prefix' => env('LARAVEL_CMS_PAGE_PREFIX', '/Article-'),
```

- **admin\_route**: This is the backend admin page route, By default, it is /cmsadmin

```
'admin_route'       => env('LARAVEL_CMS_BACKEND_ROUTE', '/admin2019'),
```

- **After changing the route, you will need to run below commands:**

```
php artisan laravelcms --action=clear
```

Display an image with different size in the frontend Laravel .blade.php template file
-------------------------------------------------------------------------------------

[](#display-an-image-with-different-size-in-the-frontend-laravel-bladephp-template-file)

- .blade.php Code examples:

```
@if ( isset($file_data->main_image) )
   

   

   

   

   

@endif
```

- You can get an image with any width and height. or use the original image.
- Available image variables: $file\_data-&gt;main\_image, $file\_data-&gt;main\_banner, $file\_data-&gt;extra\_image, $file\_data-&gt;extra\_image\_2
- The CMS will resize the image at the first time, then will directly use it afterwards.

How to change the CSS &amp; JS assets of the frontend?
------------------------------------------------------

[](#how-to-change-the-css--js-assets-of-the-frontend)

- The asset files located at public/laravel-cms/&lt;theme\_name&gt;, eg. public/laravel-cms/frontend/css
- Example code to load css or js:

```

...

```

- The default template file will load CSS and js asset with last\_modify\_time parameter to avoid cache from the browser

How to set up a different template theme from the default?
----------------------------------------------------------

[](#how-to-set-up-a-different-template-theme-from-the-default)

- Copy the default theme folder /resources/views/laravel-cms/**frontend** to /resources/views/laravel-cms/**new\_theme**
- Change the frontend\_dir in the settings page to **new\_theme**
- Default value in config/laravel-cms.php

```
    'template' => [
        'frontend_dir'      => 'frontend',
        'backend_dir'       => 'backend',
        'backend_language'  => 'en',
        'frontend_language' => 'en',
    ]
```

- run **php artisan config:cache** to load new config file
- Change template settings for the pages in the backend
- The css/js asset files will locate at public/laravel-cms/**new\_theme**

Set default slug format and suffix for page SEO URL in config/laravel-cms.php
-----------------------------------------------------------------------------

[](#set-default-slug-format-and-suffix-for-page-seo-url-in-configlaravel-cmsphp)

- You can change it in the settings page
- 'slug\_format' can be from\_title, id, pinyin
- 'slug\_suffix' can be anything you want, empty means no suffix

```
    'slug_format'   => 'from_title',
    'slug_suffix'   => '.html',
    'slug_separate' => '-',
```

Use your own PHP class / How to integrate your PHP code into the CMS
--------------------------------------------------------------------

[](#use-your-own-php-class--how-to-integrate-your-php-code-into-the-cms)

- One simple option is to implement a method from your own PHP controller/class by adding it into a cms page. [Tutorial for it.](https://www.laravelcms.tech/Laravel-Advanced-Override-the-page-content-by-your-PHP-Class-method-function.html "Use your PHP class in a Laravel CMS page")
- Another option is to create a CMS plugin for your own project and use it for all pages. [A tutorial is here.](https://www.laravelcms.tech/Laravel-Create-your-own-plugin.html "How to create a Laravel CMS Plugin") You can also publish the plugin if the feature can be used by other websites.

How to upgrade the CMS?
-----------------------

[](#how-to-upgrade-the-cms)

- Run below command in your Laravel project folder
- It will ask whether you want to copy the new view, asset and language files to your project

```
composer require alexstack/laravel-cms && php artisan laravelcms --action=upgrade
```

- Upgrade screenshot

[![image](docs/images/min/laravel-cms-upgrade-min.png)](docs/images/min/laravel-cms-upgrade-min.png)

ReactJS for backend All Pages list
----------------------------------

[](#reactjs-for-backend-all-pages-list)

- Laravel CMS use ReactJS for backend All Pages list, [the ReactJS source code can be found here](https://github.com/AlexStack/Laravel-CMS/tree/alex_dev/src/resources/reactJs)
- The compiled js file is here: /public/laravel-cms/backend/js/reactLaravelCmsBackend.js
- It can be switch to normal Laravel blade page by change the "react\_js": true to false in the setting system.all\_pages

What PHP versions do you support?
---------------------------------

[](#what-php-versions-do-you-support)

- Amila Laravel CMS passed the basic test on PHP 7.1, 7.2, 7.3, 7.4

Laravel versions support
------------------------

[](#laravel-versions-support)

- cms version &gt;= 1.4.4, support all laravel version &gt;= 6.0
- cms version &lt;= 1.4.3: support Laravel 5.x, 6.x, 7.x, 8.x
- Please install version 1.4.3 if the laravel version is 5.x of an existing project

How to use PostgreSQL instead of MySql or MariaDB?
--------------------------------------------------

[](#how-to-use-postgresql-instead-of-mysql-or-mariadb)

- Make sure the .env changed before run the install command line. An example:

```
DB_CONNECTION=pgsql
DB_HOST=topsy.db.elephantsql.com
DB_PORT=5432
DB_DATABASE=oktetra
DB_USERNAME=oktetra
DB_PASSWORD=the-postgresql-password
```

How to store &amp; access files on AWS s3?
------------------------------------------

[](#how-to-store--access-files-on-aws-s3)

- On AWS: Create a s3 bucket and enable it as a Static website hosting, allow all public access and set s3:GetObject Bucket policy, Create an IAM user for api use.
- Laravel .env file, set below variables:

    ```
    AWS_ACCESS_KEY_ID=
    AWS_SECRET_ACCESS_KEY=
    AWS_DEFAULT_REGION=
    AWS_BUCKET=
    FILESYSTEM_DRIVER=s3
    AWS_URL=
    ```
- composer require league/flysystem-aws-s3-v3 ^1.0
- done

How to install laravel/jetstream or other ui instead of laravel/ui?
-------------------------------------------------------------------

[](#how-to-install-laraveljetstream-or-other-ui-instead-of-laravelui)

```
// Step 1: Install Laravel to folder cms
composer create-project laravel/laravel cmsjet && cd cmsjet && composer require laravel/jetstream

// Step 2: install jetstream
php artisan jetstream:install inertia && npm install && npm run dev

// Step 3: install CMS in silent mode
composer require alexstack/laravel-cms && php artisan laravelcms --locale=en --table_prefix=jet_ --silent=yes

// Step 4: Edit routes/web.php
- Remove or comment Auth::routes();
- Change Route::get('/' to Route::get('/welcome'
- Run command: php artisan laravelcms --action=clear

// Step 5: Now, you can access your cms backend via http://127.0.0.1:9321/cmsadmin/
// Default admin username: admin@admin.com  password: admin321
```

How to install it on HeroKu?
----------------------------

[](#how-to-install-it-on-heroku)

- Local: First, install at your localhost and make sure everything works fine
- Local: Create a github repository for the laravelcms folder. eg. cd cms &amp;&amp; git init &amp;&amp; git remote add origin
- Local: Enable gd exif for heroku php: composer require ext-exif ext-gd
- On HeroKu: create a new app from this github repository, enable automatically deploy
- Local: to use Nginx/apache together with PHP, add a file named Procfile on folder cms with content below: ```
    web: vendor/bin/heroku-php-apache2 public/
    ```
- HeroKu: add Dyno formation: web vendor/bin/heroku-php-apache2 public/
- HeroKu: add .env variables to settings -&gt; Config Vars
- Done

License
-------

[](#license)

- The Amila Laravel CMS is open-source software licensed under the MIT license.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity36

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 99.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~19 days

Recently: every ~28 days

Total

34

Last Release

1811d ago

Major Versions

0.22.0 → 1.0.02019-09-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/901cd2118e154c3edde87b308ac1b95ce5b98ee88fedd0be3774d5961e71e389?d=identicon)[AlexStack](/maintainers/AlexStack)

---

Top Contributors

[![AlexStack](https://avatars.githubusercontent.com/u/33879126?v=4)](https://github.com/AlexStack "AlexStack (409 commits)")[![amphetkid](https://avatars.githubusercontent.com/u/675332?v=4)](https://github.com/amphetkid "amphetkid (1 commits)")

---

Tags

bootstrap-cmscmsfree-cmslaravellaravel-6laravel-applicationlaravel-cmslaravel-frameworklaravel-packagelaravel-websitelaravel6laravel8laravelcmsphp-cmsphpcmslaravellaravel 6laravel 7laravel 8cmslaravel bloglaravel6laravel7headless cmsLaravel CMSPHP CMSLaravelCMSamila laravel cmsLaravel WordpressAmila CMSexisting laravel project

### Embed Badge

![Health badge](/badges/alexstack-laravel-cms/health.svg)

```
[![Health](https://phpackages.com/badges/alexstack-laravel-cms/health.svg)](https://phpackages.com/packages/alexstack-laravel-cms)
```

###  Alternatives

[salmanzafar/laravel-mqtt

A simple Laravel Library to connect/publish/subscribe to MQTT broker

106153.1k1](/packages/salmanzafar-laravel-mqtt)[efficiently/jquery-laravel

This package provides jQuery and the jQuery-ujs driver for your Laravel &gt;= 6 application.

1311.0k1](/packages/efficiently-jquery-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
