PHPackages                             cmsrs/cmsrs3 - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. cmsrs/cmsrs3

ActiveProject[Testing &amp; Quality](/categories/testing)

cmsrs/cmsrs3
============

CMS, gallery, and shop based on Laravel and Vue.js

2.5.4(1mo ago)735[3 issues](https://github.com/cmsrs/cmsrs3/issues)MITPHPPHP ^8.2.0CI failing

Since May 2Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/cmsrs/cmsrs3)[ Packagist](https://packagist.org/packages/cmsrs/cmsrs3)[ RSS](/packages/cmsrs-cmsrs3/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (30)Versions (52)Used By (0)

 [![](https://camo.githubusercontent.com/335480dc3619b53185096798979f0e06fce0c4750b94814a72dfe5eb2b918eeb/687474703a2f2f7777772e636d7372732e706c2f696d616765732f636d732f6c6f676f5f636d7372732e706e67)](https://camo.githubusercontent.com/335480dc3619b53185096798979f0e06fce0c4750b94814a72dfe5eb2b918eeb/687474703a2f2f7777772e636d7372732e706c2f696d616765732f636d732f6c6f676f5f636d7372732e706e67)
 Modern CMS for websites and galleries, and even stores, without the chaos.

[![](https://camo.githubusercontent.com/cda9d81b09b83f65ea5f25339ac506770d55cfa8c7edcb169e5b00ef1345099a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e352d79656c6c6f77677265656e)](https://www.php.net/)[![](https://camo.githubusercontent.com/e48f27e71945bcaa55ddfe3b61d44faef5b84360e5b1873506de35d6d52875f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31332d79656c6c6f77677265656e)](https://github.com/laravel/laravel)[![](https://camo.githubusercontent.com/ae7eec0ad431f08c836a0ab7a2e4074446267add6acc23f692b44c9e54ec414a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d39302532352d79656c6c6f77677265656e)](https://www.cmsrs.pl/en/cms/cmsrs/coverage-test)[![](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](https://github.com/cmsrs/cmsrs3/blob/master/LICENSE)[![](https://camo.githubusercontent.com/8c6fdae37b8a0051580d2c7e1c708e5aa32c77bfac6877c2f92fe737c870afbb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d352d79656c6c6f77677265656e)](#)

 **cmsRS** is a modern, open-source CMS built for developers who value clean code and maintainability. It combines the power of **Laravel** and **Vue.js** into a lightweight, fully-tested framework—offering a refreshing alternative to bloated systems. Whether you need a multi-language site, a gallery, or an online store with PayU integration, cmsRS provides a **transparent and predictable foundation that respects your time**. The architecture is simple, the database schema is logical, and updates are predictable thanks to extensive test coverage.

 [🚀 Install](https://www.cmsrs.pl/en/cms/cmsrs/cmsrs-installation) | [🌐 Demo](https://www.cmsrs.pl/en/cms/cmsrs/demo-version)

 [![admin panel - cmsRS](./rs/intro_imgs/s1.png)](./rs/intro_imgs/s1.png) [![frontend - cmsRS](./rs/intro_imgs/s6.png)](./rs/intro_imgs/s6.png)

REQUIRED PACKAGES
-----------------

[](#required-packages)

`php-cli` – PHP command-line interface

`php-dom` and `php-xml` – for XML parsing (used in layouts and configs)

`php-curl` – for HTTP requests

`php-mysql` – for MySQL database connection

`php-mbstring` – for multibyte string support (required by PHPUnit and some packages)

`php-gd` – for image processing (used in gallery, sliders, etc.)

Make sure all extensions match your installed PHP version (e.g., php8.5-mysql, php8.5-mbstring, etc.)

MANUAL INSTALLATION (RECOMMENDED)
---------------------------------

[](#manual-installation-recommended)

- Download the source code:

```
git clone https://github.com/cmsrs/cmsrs3.git && cd cmsrs3
```

- Install dependencies:

```
composer install
```

- Prepare .env file, and change db connection:

```
cp .env.example .env
```

change db connection in .env file, for example:

```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs
DB_USERNAME=rs
DB_PASSWORD="secret102*"
```

You can create a MySQL user and database using the script: `./rs/go/go_create_user_and_db.sh`

- Set up Laravel and JWT (generate the application key and JWT secrets):

```
php artisan key:generate && php artisan jwt:secret
```

- Create database tables and seed initial data:

    - admin (email/login: , pass: cmsrs123)
    - client (email/login: , pass: cmsrs456)

```
php artisan migrate && php artisan db:seed
```

- (optionally) Set up permission:

```
./rs/go/go_privilege.sh
```

- Start server

```
php artisan serve
```

INSTALLATION (QUICK SETUP)
--------------------------

[](#installation-quick-setup)

Run the following command to create the project:

```
composer create-project cmsrs/cmsrs3
cd cmsrs3 && php artisan serve
```

RUN TESTS
---------

[](#run-tests)

- Prepare .env.testing file, and change db connection:

```
cp  .env .env.testing
```

Change db connection in .env.testing file, for example:

```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs_testing
DB_USERNAME=rs
DB_PASSWORD="secret102*"
```

Attention! DB\_DATABASE should be different than the one in the .env file.

You can create a MySQL database using the script `./rs/go/go_create_test_db.sh`

- (optionally) set permission

```
./rs/go/go_privilege.sh
```

- run tests:

It is recommended to run tests on a clean instance (without images)

```
./vendor/bin/phpunit
```

MANAGMENT
---------

[](#managment)

- Go to the website

    log in as:

    username:

    password: cmsrs123
- Create main page (page type: **main\_page**)
- Add menu
- Add pages

CONFIGURATION .env FILE
-----------------------

[](#configuration-env-file)

**After each change to a configuration value, it is necessary to log in to the admin panel again.**

- Set up langs, the default is 'en,pl':

```
LANGS="en,pl"
```

The first one will be default language. If you don't set up this directive it will be 'en,pl'

- Add api secret, the default is '':

```
API_SECRET=""
```

It must be the same like in the admin config file (see Vue.js). It can be empty string.

- Set available page type that appear in the administration area:

The default page types are:

```
PAGE_TYPES="cms,gallery,shop,contact,main_page,privacy_policy,projects,clear,inner"
```

```
- cms: Displays a WYSIWYG editor in the administration area.
- gallery: A page for showcasing photos.
- shop: A page for displaying products.
- contact: A page with contact information.
- main_page: The main page, which requires writing pure HTML code.
- privacy_policy: A page containing the privacy policy.
- projects: Displays the same content across all languages.
- clear: A page without a WYSIWYG editor; requires writing pure HTML code.
- inner: Represents a text box on an existing page that requires hardcoding in the layout. The key is the short_title. For example, in the code:
    (new PageService)->getPageDataByShortTitleCache('main_page_box1', 'content');
    The following short_title values are predefined:
        - main_page_box1, main_page_box2, main_page_box3: Represent three content boxes on the main page.
        - company_data: Displays company information on the contact page.
        - main_page_slider: Contains images displayed in the slider on the main page, It requires adding a  element to the main page.

```

- Additionally sending an e-mail with information from the contact form. If the value is empty, the text of the message will appear only in the administration panel in the contact tab

```
CONTACT_EMAIL=""
```

- For Google reCAPTCHA v3 in the contact form, set up the following parameters:

```
GOOGLE_RECAPTCHA_PRIV
GOOGLE_RECAPTCHA_PUBLIC
```

- Enable database cache, the default is false:

```
CACHE_ENABLE=false
CACHE_ENABLE_FILE='app/cache_enable.txt'
```

- Set the currency, the default is USD:

```
CURRENCY=USD
```

- Set is\_shop, the default is true:

```
IS_SHOP=true
```

- Set is\_login, the default is true:

```
IS_LOGIN=true
```

- Set is\_register, the default is true:

```
IS_REGISTER=true
```

- Set the allowed file extensions for uploads:

The default file extensions for uploads are:

```
ALLOWED_UPLOAD_EXTENSIONS="jpg,jpeg,png,gif"
```

- PayU integration:

```
#https://merch-prod.snd.payu.com - sandbox
PAYU_URL=https://merch-prod.snd.payu.com
PAYU_POS_ID=123
PAYU_MD5=xxx
PAYU_CLIENT_ID=123
PAYU_CLIENT_SECRET=zzz
NOTIFY_URL=http://domain/home/orders
CUSTOMER_IP="123.123.123.123"
```

- Administrator Credentials

These credentials can be used to create the initial admin user during system installation (database seeding).

```
ADM_EMAIL="adm@cmsrs.pl"
ADM_PASS="cmsrs123"
```

`ADM_EMAIL`: The default email address of the admin account. `ADM_PASS`: The default password for the admin account.

Warning: Do not use the default credentials ( / cmsrs123) in production. Always update them for security reasons before deploying.

- Client Account Credentials

These credentials can be used to create a default client account during system installation (e.g., for seeding or demo purposes).

```
CLIENT_EMAIL="client@cmsrs.pl"
CLIENT_PASS="cmsrs456"

```

`CLIENT_EMAIL`: The default email address for the client account. `CLIENT_PASS`: The default password for the client account.

Warning: Do not use the default client credentials ( / cmsrs456) in production environments. Always change them to secure values before deployment.

- DEMO Mode

Use this variable to enable demo mode, for example at Used to block saving changes or modifying sensitive data on public demo instances.

```
DEMO_STATUS=false
```

Default is false (disabled).

- Pagination

```
PAGINATION=10
```

Number of items per page in the admin panel. The default value is 10.

- Headless Mode

```
IS_HEADLESS=true
```

Enables headless API. The default option is true.

`true`: Enables headless API. Headless mode with Nuxt frontend; pages are not rendered on the server side (Nuxt/SPA mode).

`false`: Disables headless API.

- SSR Mode

```
IS_SSR=true
```

Enables SSR mode. The default option is true.

`true`: Enable traditional SSR (Server-Side Rendering) on the PHP server side.

`false`: Disables SSR (Server-Side Rendering) on the PHP server side

SAMPLE .env CONFIGURATION FOR COMPANY PROFILE PAGE
--------------------------------------------------

[](#sample-env-configuration-for-company-profile-page)

If you want to create a company profile page, I suggest setting the following CMS parameters, for example:

```
IS_SHOP=false
IS_LOGIN=false
IS_REGISTER=false
LANGS="en"
API_SECRET="string123"
PAGE_TYPES="cms,gallery,contact,main_page,privacy_policy,inner"
```

CLI COMMANDS
------------

[](#cli-commands)

- Load test (demo) data:

**I highly recommend running this script to understand how my CMS works. (Remember to leave the default values in the .env file.)**

```
./rs/go/go_clear_and_load_demo.sh
```

- Create sitemap (it is recommended to put this command in the crontab file):

```
php artisan cmsrs:create-site-map
```

- Create client user or edit password for user:

```
php artisan cmsrs:create-client {user} {password}
```

- Change admin password:

```
php artisan cmsrs:change-admin-pass {new-password}
```

DEMO - Frontend
---------------

[](#demo---frontend)

DEMO - Admin Panel
------------------

[](#demo---admin-panel)

TUTORIALS
---------

[](#tutorials)

MORE INFORMATION
----------------

[](#more-information)

ADMIN PANEL - VUE.JS - SOURCE CODE
----------------------------------

[](#admin-panel---vuejs---source-code)

FRONTEND - NUXT - SOURCE CODE
-----------------------------

[](#frontend---nuxt---source-code)

REPORTING ISSUES AND SUGGESTIONS
--------------------------------

[](#reporting-issues-and-suggestions)

If you notice any problems or have ideas to improve the project, please use the [Issues](https://github.com/cmsrs/cmsrs3/issues) section to let me know. If you like it, give it a star! Your support motivates me to keep improving the project. Thank you! :)

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance82

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 100% 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 ~29 days

Recently: every ~10 days

Total

44

Last Release

55d ago

Major Versions

1.0.2 → 2.0.02024-11-28

PHP version history (2 changes)1.0.0PHP ^8.0.2

2.0.0PHP ^8.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/94137c97bde63a2c943aa5c6ec5df88da2e97a09583fd93b70eb9758d53efa7e?d=identicon)[cmsrs](/maintainers/cmsrs)

---

Top Contributors

[![cmsrs](https://avatars.githubusercontent.com/u/5512915?v=4)](https://github.com/cmsrs "cmsrs (918 commits)")

---

Tags

cmsgallery-imageslaravellaravel-frameworknuxtphpphpstanphpunitpiniapintshopvuejslaravelcmsshopgallery

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/cmsrs-cmsrs3/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)[orchestra/workbench

Workbench Companion for Laravel Packages Development

8017.0M43](/packages/orchestra-workbench)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[statamic/statamic

Statamic

824170.4k](/packages/statamic-statamic)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.3k](/packages/typicms-base)[aimeos/aimeos-headless

Aimeos headless ecommerce system

2.5k2.3k](/packages/aimeos-aimeos-headless)

PHPackages © 2026

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