Lightweight modular CMS with a forum, blogs, gallery and file downloads.
Fast even on cheap shared hosting.
Rotor is an open source content management system written in PHP. It combines a community platform (forum, guestbook, wall, private messages) with classic site features (news, blogs, photo gallery, downloads, static pages) in a single lightweight package.
The engine is built on Laravel components but stays deliberately small: it installs in minutes, runs comfortably on inexpensive shared hosting, and keeps server load minimal even with a large audience.
| Home page | Forum |
|---|---|
![]() |
![]() |
Live example: visavi.net — the developer community site, always running the latest version of Rotor.
- Forum — categories, topics, voting, moderation
- Blogs and news — articles with comments, categories, RSS
- Photo gallery — albums, comments, watermarks
- Downloads — file archive with categories and moderation
- Community tools — guestbook, user walls, private messages, boards (classifieds), mini-chat
- Users — registration, social auth, groups and permissions, ratings, custom profile fields
- Administration — full admin panel, page editor, style editor, backups, logs, spam/word filters
- Modular architecture — features ship as modules that can be installed, updated and disabled independently
- Performance — aggressive caching, minimal queries, works well without opcache tuning or dedicated servers
- Themes — customizable templates and styles
- PHP 8.3+
- MySQL 5.7.8+, MariaDB 10.2.7+ or PostgreSQL 9.2+
- Any web server: Apache, Nginx, or the built-in PHP server
composer create-project visavi/rotor .Then open the site in a browser — the installer starts automatically and walks you through database setup and creating an admin account.
For the latest development version:
composer create-project --stability=dev visavi/rotor .git clone https://github.com/visavi/rotor.git
cd rotor
cp .env.example .env
composer install
./vendor/bin/sail up -dOpen http://localhost and follow the installer.
- Unpack the archive so that
publicis the web root (not required for Apache — the bundled.htaccesshandles it) - Copy
.env.exampleto.envand fill in the database credentials, admin login/email and mail settings - Make the directories inside
public/uploads,public/assets/modules,bootstrap/cacheandstoragewritable, or runphp artisan app:permission - Open the site's main page — you will be redirected to the installer
git clone https://github.com/visavi/rotor.git
cd rotor
cp .env.example .env # fill in DB credentials, admin login/email, mail settings
composer install
php artisan migrate
php artisan db:seedCreate the database with utf8mb4 encoding beforehand:
CREATE DATABASE rotor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;php artisan serveThen open http://localhost:8000.
* * * * * php /path-to-site/artisan schedule:run >>/dev/null 2>&1
Two layouts work on typical shared hosting:
- Default. Put all files in
public_html. The.htaccessin the site root redirects every request to thepublicdirectory, and the.htaccessinsidepublicroutes them toindex.php. - Split. Put the engine one level above
public_htmland move the contents ofpublicintopublic_html. Uncomment the corresponding code inapp/Providers/AppServiceProvider.phpto point the engine at the new public path. The root.htaccesscan then be removed.
Add to the server section (strips trailing slashes and blocks direct PHP access in upload dirs):
if (!-d $request_filename) {
rewrite ^/(.*)/$ /$1 permanent;
}
location ~* /(assets|themes|uploads)/.*\.php$ {
deny all;
}In location / replace:
try_files $uri $uri/ =404;with:
try_files $uri $uri/ /index.php?$query_string;npm ci
npm run buildphp artisan migrate:status # current migration status
php artisan migrate # run migrations
php artisan migrate:rollback # rollback the last batch
php artisan db:seed # seed the databaseWith APP_ENV=production routes and configuration are cached automatically.
- Forum: visavi.net — questions, modules, themes, announcements
- Telegram: @visavi
- Issues: GitHub Issues — bug reports and feature requests
Contributions are welcome — fork the repository and open a pull request.
Vantuz — visavi.net · admin@visavi.net · Telegram @visavi
Rotor is open-sourced software licensed under the GPL-3.0 license.


