Documentation · Website · Discord · Marketplace · Русский
Flute is a free, self-hosted CMS designed for game server communities — CS2, CS:GO, TF2, Minecraft, and others. It ships with a modular plugin system, a built-in marketplace, an admin panel, payment integrations, and social auth out of the box. Install it, extend it, make it yours.
Note
Flute is under active development on the early branch. The main branch contains stable releases.
If you'd like to contribute, please see the Contributing section.
- Modular architecture — install modules and themes from the built-in marketplace or develop your own
- Game server integration — native support for Source (CS2, CS:GO, TF2), GoldSrc (CS 1.6), and Minecraft servers via query protocols
- Payment system — built-in shop with 15+ payment gateways through Omnipay (Stripe, PayPal, FreeKassa, and more)
- Admin panel — full management interface with role-based access control, analytics, and one-click updates
- Social authentication — OAuth2 login via Steam, Discord, VK, Google, GitHub, and others through HybridAuth
- REST API — first-class API for external integrations and custom frontends
- Theme engine — Blade templating with SCSS compilation (native dart-sass), theme inheritance, and live preview
- Multilingual — complete i18n system with runtime language switching
- Player stats & bans — integrations with Levels Ranks, IKS Admin, Admin System, and more
- Caching — multi-driver cache layer (Redis, Memcached, APCu, filesystem) with stale-while-revalidate support
- PHP 8.2+ (with
ext-json,ext-mbstring,ext-pdo) - MySQL 5.7+ / MariaDB 10.3+ / PostgreSQL 12+
- Composer 2.x
git clone https://github.com/flute-cms/cms.git
cd cms
composer installOpen your browser and follow the web installer. That's it.
Tip
Docker Compose and Nginx presets are included in the repository. See the deployment guide for details.
Flute is built on PHP 8.2+ with a component-based architecture:
- Routing & HTTP — Symfony Routing, HttpFoundation, HttpKernel
- Database — Cycle ORM with Active Record and auto-migrations
- Templates — Blade (Illuminate View) with SCSS via dart-sass / scssphp
- Authentication — HybridAuth for OAuth2 providers
- Payments — Omnipay for payment gateway abstraction
- Caching — Symfony Cache (Redis, Memcached, APCu, filesystem adapters)
- Logging — Monolog
- DI Container — PHP-DI
- HTTP Client — Guzzle
app/
├── Core/ # Kernel: DI container, router, services, console
│ ├── Database/Entities/ # Cycle ORM entities
│ ├── Modules/ # Built-in modules (Admin, Auth, Payments, …)
│ ├── Services/ # Core services (Cache, Email, Encrypt, …)
│ └── ServiceProviders/ # DI service providers
├── Modules/ # Community / custom modules
├── Themes/ # Installable themes
└── Helpers/ # Global helpers
config/ # Default configuration
config-dev/ # Local overrides (git-ignored)
public/ # Web root — the only exposed directory
storage/ # Cache, logs, uploads (writable)
i18n/ # Localizations
Every module lives in app/Modules/<Name>/ with a consistent structure:
MyModule/
├── module.json # Metadata, version, dependencies
├── Providers/ # Service providers
├── Controllers/ # Route-attributed controllers
├── Services/ # Business logic
├── Resources/
│ ├── views/ # Blade templates
│ └── lang/ # Translations
└── database/migrations/ # Auto-generated migrations
Routes use PHP attributes — no separate route files:
#[Route('/my-module/example', name: 'my-module.example')]
public function example(): Response
{
return view('MyModule::pages.example');
}Full guide → docs.flute-cms.com/en/modules
php flute cache:clear # Clear application cache
php flute cache:warmup # Warm up cache
php flute template:cache:clear # Clear compiled templates
php flute generate:migration # Generate DB migration from entities
php flute generate:module # Scaffold a new module
php flute routes:list # Print all registered routes
php flute cron:run # Execute scheduled tasksWe welcome contributions — bug reports, features, code, docs, and translations.
- Fork the repo and create a branch from
early - Make your changes and ensure
composer testpasses - Submit a pull request
Branches:
main— stable releasesearly— active development (target your PRs here)
Commit convention: imperative, scoped messages:
feat(auth): add OAuth2 authentication
fix(database): resolve connection timeout
core: fix router cache invalidation
module:Shop: add refund hook
See CONTRIBUTING.md for the full guide.
If you discover a security vulnerability, please email flamesworkk@gmail.com instead of using the issue tracker. All security issues will be addressed promptly.
- Discord — live chat and support
- GitHub Issues — bug reports and feature requests
- Documentation — guides and API reference
Flute is open-source software licensed under the GNU General Public License v3.0 or later.
Created by Flames