PHPackages                             hanoivip/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. [Framework](/categories/framework)
4. /
5. hanoivip/cms

ActiveLibrary[Framework](/categories/framework)

hanoivip/cms
============

Add a CMS to any Laravel apps gain control of: pages, blogs, galleries, events, custom modules, images and more.

00CSSCI failing

Since Sep 4Pushed 6y ago1 watchersCompare

[ Source](https://github.com/hanoivip/cms)[ Packagist](https://packagist.org/packages/hanoivip/cms)[ RSS](/packages/hanoivip-cms/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Quarx - Add a CMS to any Laravel app to gain control of: pages, blogs, galleries, events, custom modules, images and more.
==========================================================================================================================

[](#quarx---add-a-cms-to-any-laravel-app-to-gain-control-of-pages-blogs-galleries-events-custom-modules-images-and-more)

[![Build Status](https://camo.githubusercontent.com/2fda9b458effccef9ac41efc1b9ec3c3a994f76bbb199459a4a5f6806248d54b/68747470733a2f2f7472617669732d63692e6f72672f59414268712f51756172782e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/YABhq/Quarx)[![Packagist](https://camo.githubusercontent.com/f1fb7770aa71708480dbeeb76317cbc08efc84436ecb49e29b5a34f81b6d053f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7961622f71756172782e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/yab/quarx)[![license](https://camo.githubusercontent.com/ee061e6c1798bd95fa104c910010a3119850b186c323a1c848b3abcb029dc764/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6173686170652f6170697374617475732e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/yab/quarx)

Quarx is a full fledged CMS that can be added to any Laravel application. It provides you with full control of things like: pages, menus, links, widgets, blogs, events, faqs etc.

Quarx comes with a module builder for all your custom CMS needs, as well as a module publishing tools. So if you decide to reuse some modules on future projects you can easily publish thier assets seamlessly. If you wish to make your Quarx module into a PHP package, then you will need to have it publish its assets to the `quarx/modules` directory.

### What is simple vs complex setup?

[](#what-is-simple-vs-complex-setup)

Simple setup uses Laracogs as the backbone of an app for you using Laravel, once the setup command has been run you will have a full CMS as an app. Complex setup is specifically for developers who want to add a CMS to their existing app.

Documentation
-------------

[](#documentation)

Yab Newsletter
--------------

[](#yab-newsletter)

[Subscribe](http://eepurl.com/ck7dSv)

Chat Support
------------

[](#chat-support)

[Gitter](https://gitter.im/YABhq/Quarx)

Requirements
------------

[](#requirements)

1. PHP 7+
2. MySQL 5.6+
3. OpenSSL

Recommended
-----------

[](#recommended)

1. MySQL 5.7+

Compatibility Guide
-------------------

[](#compatibility-guide)

Laravel VersionPackage TagSupported5.5.x2.4.xyes5.4.x2.3.xno5.3.x2.0.x - 2.2.xno5.1.x - 5.2.x1.4.xnoInstallation
------------

[](#installation)

Create a new Laravel application, and make a database somewhere and update the .env file.

- Run the following command:

```
composer require yab/quarx
```

- Add the following to your Providers array in your config/app.php file:

```
Yab\Quarx\QuarxProvider::class,
```

- Then run the vendor publish:

```
php artisan vendor:publish --provider="Yab\Quarx\QuarxProvider"
```

> Set your app's timezone config to align the Quarx datepicker UI for your setup

Simple Setup
------------

[](#simple-setup)

If you're looking to do a simple website with a powerful CMS, and the only people logging on to the app are the CMS managers. Then you can run the setup command. Quarx will install everything it needs, run its migrations and give you a login to start with. Take control of your website in seconds.

```
php artisan quarx:setup
```

Setup is now complete. Login, and start building your amazing new website!

Complex Setup
-------------

[](#complex-setup)

If you just want to add Quarx to your existing application the follow these steps:

1. Update your routes provider (app/Providers/RouteServiceProvider.php) by changing the following:

```
->group(base_path('routes/web.php'));
```

Into:

```
->group(function() {
    require base_path('routes/web.php');
    require base_path('routes/quarx.php');
});
```

2. Add the following to your app.scss file, you will want to modify depending on your theme of choice.

```
@import "resources/themes/default/assets/sass/_theme.scss";
```

- Run storage link is set for images &amp; file uploads to work

```
php artisan storage:link
```

3. Then migrate:

```
php artisan migrate
```

4. Add to the Kernel Route Middleware:

```
'quarx' => \App\Http\Middleware\Quarx::class,
'quarx-api' => \App\Http\Middleware\QuarxApi::class,
'quarx-language' => \App\Http\Middleware\QuarxLanguage::class,
'quarx-analytics' => \Yab\Quarx\Middleware\QuarxAnalytics::class,
```

5. In order to have modules load as well please add the following to your composer file under autoload psr-4 object:

```
"Quarx\\": "quarx/",
```

This should be added to the autoloader below the App itself.

Quarx Access
------------

[](#quarx-access)

Route to the administration dashboard is "/quarx/dashboard".

Quarx requires Laracogs to run (only for the FormMaker), but Quarx does not require you to use the Laracogs version of roles. But you will still need to ensure some degree of control for Quarx's access. This is done in the Quarx Middleware, using the gate and the Quarx Policy. If you opt in to the roles system provided by Laracogs, then you can replace 'quarx' with admin to handle the Quarx authorization, if not, you will need to set your own security policy for access to Quarx. To do this simply add the Quarx policy to your `app/Providers/AuthServiceProvider.php` file, and ensure that any rules you wish it to use are in within the policy method. We suggest a policy similar to below.

Possible Quarx Policy:

```
Gate::define('quarx-api', function ($user) {
    return true;
});

Gate::define('quarx', function ($user) {
    return (bool) $user;
});

```

Or Using Laracogs:

```
Gate::define('quarx', function ($user) {
    return ($user->roles->first()->name === 'admin');
});

```

### Fun Route Trick

[](#fun-route-trick)

If you're looking for clean URL pages without having to have the URL preceed with `page` or `p` then you can add this to your routes.

> Make sure you put it at the bottom of the routes or it may conflict with others.

```
Route::get('{url}', function ($url) {
    return app(App\Http\Controllers\Quarx\PagesController::class)->show($url);
})->where('url', '([A-z\d-\/_.]+)?');
```

### Roles &amp; Permissions (simple setup only)

[](#roles--permissions-simple-setup-only)

With the roles middleware you can specify which roles are applicable separating them with pipes: `['middleware' => ['roles:admin|moderator|member']]`.

The Quarx middleware utilizes the roles to ensure that a user is an 'admin'. But you can elaborate on this substantially, you can create multiple roles, and then set their access in your app, using the roles middleware. But, what happens when you want to allow multiple roles to access Quarx but only allow Admins to access your custom modules? You can use permissions for this. Similar to the roles middleware you can set the permissions `['middleware' => ['permissions:admin|quarx']]`. You can set custom permissions in `config/permissions.php`. This means you can set different role permissions for parts of your CMS, giving you even more control.

API Endpoints
-------------

[](#api-endpoints)

Quarx comes with a collection of handy API endpoints if you wish to use them. You can define your own policies for access and customize the middleware as you see fit.

#### Token

[](#token)

The basic Quarx API endpoints must carry the Quarx `apiToken` defined in the config for the app. This can be provided by adding the following to any request:

```
?token={your token}

```

\*\* All published and public facing data will be available via the API by default.

```
/quarx/api/blog
/quarx/api/blog/{id}
/quarx/api/events
/quarx/api/events/{id}
/quarx/api/faqs
/quarx/api/faqs/{id}
/quarx/api/files
/quarx/api/files/{id}
/quarx/api/images
/quarx/api/images/{id}
/quarx/api/pages
/quarx/api/pages/{id}
/quarx/api/widgets
/quarx/api/widgets/{id}

```

Images
------

[](#images)

Images are resized on upload for a better quality response time. They follow the guidelines specified in the `config` under `quarx.max-image-size`.

S3
--

[](#s3)

Regarding S3 bucket usage. You will need to set the permissions accordingly to allow images to be saved to your buckets. Then you need to set your buckets to allow public viewing access. This is an example of such a policy.

```
{
    "Version":"2008-10-17",
    "Statement":[{
        "Sid":"AllowPublicRead",
        "Effect":"Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action":["s3:GetObject"],
        "Resource":["arn:aws:s3:::MY_BUCKET/public/images/*"]
    }]
}

```

Replace `MY_BUCKET` with your bucket name.

#### FileSystem Config

[](#filesystem-config)

If using S3 you will need to add the following line to your filesystem config: `'visibility' => 'public',`

License
-------

[](#license)

Quarx is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

### Bug Reporting and Feature Requests

[](#bug-reporting-and-feature-requests)

Please add as many details as possible regarding submission of issues and feature requests

### Disclaimer

[](#disclaimer)

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a45208b20482235c83ed370f71c352d516693ace0dac53c7ed8244cace45682b?d=identicon)[hanoivip](/maintainers/hanoivip)

### Embed Badge

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

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

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

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