PHPackages                             visavi/rotor - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. visavi/rotor

ActiveProject[Utility &amp; Helpers](/categories/utility)

visavi/rotor
============

Rotor

v13.1.0(1mo ago)5721419GPL-3.0-onlyPHPPHP ^8.3CI passing

Since Dec 28Pushed 1mo ago5 watchersCompare

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

READMEChangelog (10)Dependencies (41)Versions (47)Used By (0)

Rotor - mobile cms
==================

[](#rotor---mobile-cms)

[![](/public/assets/img/images/logo.png)](/public/assets/img/images/logo.png)

[Description in Russian](https://github.com/visavi/rotor/blob/master/readme_ru.md)

[![Php Version](https://camo.githubusercontent.com/426224f3724c6feb8798de55641bb749a2aee1e5ecc12dd4ffad2e00a923724c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7669736176692f726f746f72)](https://php.net)[![Latest Stable Version](https://camo.githubusercontent.com/e779a99a2c7c2eeecc34fc68243b386efe709c2795f64c73d21bbb0ef271c980/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f726f746f722f762f737461626c65)](https://packagist.org/packages/visavi/rotor)[![Total Downloads](https://camo.githubusercontent.com/1082d4ac911b7642d601eca0aca5187bdc588507ce398defb7defaf63311f278/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f726f746f722f646f776e6c6f616473)](https://packagist.org/packages/visavi/rotor)[![Latest Unstable Version](https://camo.githubusercontent.com/dc70b7566c73a3ee29cdbf7d73c79c6bd5826080a9a8e669febabb031f144a37/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f726f746f722f762f756e737461626c65)](https://packagist.org/packages/visavi/rotor)[![License](https://camo.githubusercontent.com/0e96a60fc3ea0dd30a541d0bcf96b53cce4f0095b1e15f83788283ebd692f101/68747470733a2f2f706f7365722e707567782e6f72672f7669736176692f726f746f722f6c6963656e7365)](https://packagist.org/packages/visavi/rotor)[![Code Climate](https://camo.githubusercontent.com/6beef303c9808d8c099638591d533d365e3445f5ab453aaa1b85704a553255e7/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f7669736176692f726f746f722f6261646765732f6770612e737667)](https://codeclimate.com/github/visavi/rotor)[![Coverage Status](https://camo.githubusercontent.com/0a208ffaf34c9cab9b8e337a269cbb692380dedbf8be3c8dfee92d54928e54ca/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f7669736176692f726f746f722f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/visavi/rotor?branch=master)

Welcome! We thank you for choosing to use our script for your site. Rotor mobile cms is a functionally complete open source content management system written in PHP. It uses a MySQL database to store the contents of your site.

**Rotor** is a flexible, powerful and intuitive system with minimal hosting requirements, a high level of protection and an excellent choice for building a website of any complexity.

The main feature of Rotor is low load on system resources and high speed, even with a very large audience of the site, the load on the server will be minimal, and you will not experience any problems with displaying information.

### Installing the Rotor engine (From the archive)

[](#installing-the-rotor-engine-from-the-archive)

1. Configure the site so that `public` is the root directory (Not necessary for apache)
2. Unpack the archive
3. Set up the .env configuration file, environment, data for accessing the database, administrator login and email, and data for sending emails, sendmail or smtp.
4. Set write permissions to all directories inside `public/uploads`, `public/assets/modules`, `bootstrap/cache` and `storage`
5. Go to the main page of the site, you will be automatically transferred to the installer
6. Complete all installer conditions

### Installing the Rotor engine (From the repository)

[](#installing-the-rotor-engine-from-the-repository)

1. Configure the site so that `public` is the root directory (Not necessary for apache)
2. Unpack the archive
3. Configure the .env configuration file, the environment, the data for accessing the database, the administrator's login and email, and the data for sending mail, sendmail or smtp. If you install CMS manually, then rename the configuration file .env.example to .env
4. Set write permissions to all directories inside `public/uploads`, `public/assets/modules`, `bootstrap/cache` and `storage` or execute the command `php artisan app:permission`
5. Install and configure the dependency manager [Composer](https://getcomposer.org). or you can download the finished package [composer.phar](https://getcomposer.org/composer.phar)and run it through the command `php composer.phar install`
6. Go to the site directory run the command in the console `composer install`
7. Create a database with utf8mb4 encoding and a user for it from the control panel on your server, during the installation of the script, you will need to enter this data to be connected to the .env file `CREATE DATABASE rotor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;`
8. Migrate using the console command `php artisan migrate`
9. Fill out the database using the command `php artisan db:seed`

### Installation by one command

[](#installation-by-one-command)

To install the stable version, go to the site directory in the console and execute the command

```
composer create-project visavi/rotor .

```

To install the latest version, run the command

```
composer create-project --stability=dev visavi/rotor .

```

### Requirements

[](#requirements)

Minimal PHP version required for PHP 8.3, MySQL 5.7.8, MariaDB 10.2.7 or Postgres 9.2

### Migrations and database seeder

[](#migrations-and-database-seeder)

Current migration status `php artisan migrate:status`

Create migrations `php artisan make:migration CreateTestTable`

Performing migrations `php artisan migrate` or `php artisan migrate --path=/database/migrations/CreateTestTable.php` to migrate to a specific version

Rollback last migration `php artisan migrate:rollback` or `php artisan migrate:rollback --step=1` to rollback all migrations to a specific version

Create seeder `php  artisan make:seeder UsersSeeder`

Performing seeder `php artisan db:seed` or `php artisan db:seed --class=UserSeeder` for a specific seed

### Caching Settings

[](#caching-settings)

If you set `APP_ENV = production`, then routes and project configuration settings will be cached

### Cron settings

[](#cron-settings)

```
* * * * * php /path-to-site/artisan schedule:run >>/dev/null 2>&1

```

### Apache settings

[](#apache-settings)

There are 2 ways to install the engine on a regular hosting

Default. All files are placed in the public\_html directory. htaccess in the root of the site, redirects all requests to the public directory.

.htaccess inside public handles all requests and redirects them to index.php

If method 1 is not suitable or does not work well, then you can place all files on the same level as public\_html, and transfer all files from public to public\_html.

You also need to specify that public\_html will be instead of the public directory, for this you need to uncomment the code in the `app/Providers/AppServiceProvider.php` file.

.htaccess at the root of the engine can be removed.

### Nginx settings

[](#nginx-settings)

For the paths to be processed correctly, you need to configure the site.

Add the following entry to the server section:

```
if (!-d $request_filename) {
    rewrite ^/(.*)/$ /$1 permanent;
}

```

necessary to remove slashes at the end of the path and prohibit viewing php files

```
location ~* /(assets|themes|uploads)/.*\.php$ {
    deny all;
}

```

In the location / section, you must replace the line

```
try_files $uri $uri/ =404

to

try_files $uri $uri/ /index.php?$query_string;

```

### Run without Nginx

[](#run-without-nginx)

If there is no Nginx server on the local machine, it is sufficient to use the built-in PHP server through the console. To raise the server and access the system you need:

1. While in the console, go to the public folder
2. Run the command in the console `php -S localhost:8000` or `php artisan serve`
3. Enter the browser link localhost:8000

If, when the server starts, the console displays information that port 8000 is busy, try port 8080

### Webpack settings

[](#webpack-settings)

To build css and js, you need to install npm and nodejs, then run the commands

```
npm ci
npm run build

```

### Author

[](#author)

Author: Vantuz
Email:
Site:
Telegram: @visavi
Phone: +79167407574

### License

[](#license)

The Rotor is open-sourced software licensed under the [GPL-3.0 license](http://opensource.org/licenses/GPL-3.0)

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance92

Actively maintained with recent releases

Popularity29

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity91

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 86.5% 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 ~92 days

Recently: every ~79 days

Total

38

Last Release

47d ago

Major Versions

v8.5.0 → v9.0.02021-01-09

v9.5.0 → v10.0.02021-07-04

v10.2.0 → v11.0.02022-03-16

v11.1.1 → v12.0.02025-02-04

v12.7.0 → v13.0.02026-05-03

PHP version history (10 changes)v6.0.0PHP &gt;=5.6.4

v7.0.0-betaPHP &gt;=7.1.3

v8.0.0PHP &gt;=7.2.0

v8.2.0PHP ^7.2

v9.0.0PHP &gt;=7.3.0

v10.0.0PHP ^7.3|^8.0

v11.0.0PHP ^8.0.2

v12.0.0PHP ^8.1

v12.1.0PHP ^8.2

v13.0.0PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/826831?v=4)[Alexander Grigorev](/maintainers/visavi)[@visavi](https://github.com/visavi)

---

Top Contributors

[![visavi](https://avatars.githubusercontent.com/u/826831?v=4)](https://github.com/visavi "visavi (3210 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (250 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (201 commits)")[![akimitsu-bm](https://avatars.githubusercontent.com/u/17992146?v=4)](https://github.com/akimitsu-bm "akimitsu-bm (19 commits)")[![Davidnadejdin](https://avatars.githubusercontent.com/u/40993387?v=4)](https://github.com/Davidnadejdin "Davidnadejdin (7 commits)")[![vaninanton](https://avatars.githubusercontent.com/u/3989061?v=4)](https://github.com/vaninanton "vaninanton (5 commits)")[![kavanpancholi](https://avatars.githubusercontent.com/u/5137072?v=4)](https://github.com/kavanpancholi "kavanpancholi (4 commits)")[![Gennnji](https://avatars.githubusercontent.com/u/6366684?v=4)](https://github.com/Gennnji "Gennnji (4 commits)")[![igoshev](https://avatars.githubusercontent.com/u/4621618?v=4)](https://github.com/igoshev "igoshev (4 commits)")[![Marsellkin](https://avatars.githubusercontent.com/u/19184472?v=4)](https://github.com/Marsellkin "Marsellkin (3 commits)")[![rjalfa](https://avatars.githubusercontent.com/u/8337926?v=4)](https://github.com/rjalfa "rjalfa (2 commits)")[![pzhelobtsov](https://avatars.githubusercontent.com/u/59592668?v=4)](https://github.com/pzhelobtsov "pzhelobtsov (1 commits)")[![taktes](https://avatars.githubusercontent.com/u/7054944?v=4)](https://github.com/taktes "taktes (1 commits)")[![naveentata](https://avatars.githubusercontent.com/u/21004581?v=4)](https://github.com/naveentata "naveentata (1 commits)")

---

Tags

cmsenginemobilemobile-cmsmysqlphpwapPHP CMSwap cmsmobile cms

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/visavi-rotor/health.svg)

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

###  Alternatives

[code16/sharp

Laravel Content Management Framework

79164.7k7](/packages/code16-sharp)[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[october/rain

October Rain Library

1601.7M80](/packages/october-rain)[mostafaznv/larupload

Larupload is a ORM based file uploader for laravel to upload image, video, audio and other known files.

75462.1k6](/packages/mostafaznv-larupload)[symfony/ux-cropperjs

Cropper.js integration for Symfony

19346.6k3](/packages/symfony-ux-cropperjs)

PHPackages © 2026

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