flute-cms / cms
A flexible and modular CMS tailored for managing game servers.
Requires
- php: ^8.2
- clickfwd/yoyo: ^0.10.1
- composer/composer: ^2.7
- cycle/active-record: ^0.8.0
- cycle/annotated: ^4.1
- cycle/database: 2.15.1
- cycle/entity-behavior: ^1.3
- cycle/migrations: ^4.2
- cycle/orm: ^2.8.0
- cycle/schema-builder: ^2.9
- cycle/schema-migrations-generator: ^2.2
- doctrine/collections: ^2.2
- erusev/parsedown: ^1.7
- guzzlehttp/guzzle: ^7.9
- guzzlehttp/promises: ^2.0
- hassankhan/config: ^3.1
- hybridauth/hybridauth: ^3.11
- illuminate/view: ^9.52
- jenssegers/agent: ^2.6
- jenssegers/blade: ^2.0
- league/glide: ^2.3
- league/omnipay: ^3.2
- madesimple/php-arrays: ^3.0
- matthiasmullie/minify: ^1.3
- monolog/monolog: ^3.0
- nette/schema: ^1.3
- padaliyajay/php-autoprefixer: ^1.4
- paragonie/constant_time_encoding: ^3.1
- peppeocchi/php-cron-scheduler: ^4.0
- perftools/php-profiler: ^1.2
- php-di/php-di: ^7.0
- php-http/guzzle7-adapter: ^1.0
- predis/predis: ^2.3
- psr/log: ^1.1 || ^2.0 || ^3.0
- ramsey/uuid: ^4.7
- rosell-dk/webp-convert: ^2.9
- sabberworm/php-css-parser: ^8.9.0
- scssphp/scssphp: ^1.13
- sebastian/diff: ^6.0.2
- spomky-labs/otphp: ^11.3
- symfony/asset: ^6.4
- symfony/cache: ^6.4
- symfony/config: ^7.0
- symfony/event-dispatcher: ^6.4
- symfony/filesystem: ^6.4
- symfony/http-foundation: ^6.4
- symfony/http-kernel: ^6.4
- symfony/mailer: ^6.4
- symfony/mime: ^6.4
- symfony/process: ^6.4
- symfony/rate-limiter: ^6.4
- symfony/routing: ^6.4
- symfony/scheduler: ^6.4
- symfony/security-csrf: ^6.4
- symfony/stopwatch: ^6.4
- symfony/string: ^6.4
- symfony/translation: ^6.4
- tracy/tracy: ^2.10
- wikimedia/composer-merge-plugin: ^2.1
- xpaw/php-source-query-class: ^4.0
- xpaw/steamid: ^3.0
Requires (Dev)
- carthage-software/mago: ^1.15
- dev-main
- v1.0.1
- v1.0.0
- v0.2.4.2-alpha
- v0.2.4.1-alpha
- v0.2.4-alpha
- v0.2.3.6-alpha
- v0.2.3.5-alpha
- v0.2.3.4-alpha
- v0.2.3.3-alpha
- v0.2.3.2-alpha
- v0.2.3.1-alpha
- v0.2.3-alpha
- v0.2.2.4-alpha
- v0.2.2.3-alpha
- v0.2.2.2-alpha
- v0.2.2.1-alpha
- v0.2.2-alpha
- v0.2.1.3-alpha
- v0.2.1.2-alpha
- v0.2.1.1-alpha
- v0.2.1-alpha
- v0.2.0-alpha
- v0.1.9
- v0.1.8.3
- v0.1.8.2
- 0.1.8.1
- v0.1.8
- v0.1.7.1-beta
- v0.1.7-beta
- v0.1.6.3-beta
- v0.1.6.2-beta
- v0.1.6.1-beta
- v0.1.6-beta
- v0.1.5-beta
- v0.1.4-beta
- v0.1.3.1-alpha
- v0.1.3-beta
- v0.1.3-alpha
- v0.1.2.1-alpha
- v0.1.2-beta
- v0.1.2-alpha
- v0.1.1-beta
- v0.1.1-alpha
- v0.1.0.2-alpha
- v0.1.0.1-alpha
- v0.1.0-beta
- dev-early
- dev-add-claude-github-actions-1774615047692
- dev-dockerhub
- dev-old
- dev-revert-30-patch-1
- dev-cicd
This package is auto-updated.
Last update: 2026-03-27 18:03:30 UTC
README
Open-source CMS for game server communities
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.
Features
- 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
Getting Started
Requirements
- PHP 8.2+ (with
ext-json,ext-mbstring,ext-pdo) - MySQL 5.7+ / MariaDB 10.3+ / PostgreSQL 12+
- Composer 2.x
Installation
git clone https://github.com/flute-cms/cms.git
cd cms
composer install
Open 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.
Tech Stack
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
Project Structure
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
Module Development
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
CLI
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 tasks
Contributing
We 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.
Security
If you discover a security vulnerability, please email flamesworkk@gmail.com instead of using the issue tracker. All security issues will be addressed promptly.
Community
- Discord — live chat and support
- GitHub Issues — bug reports and feature requests
- Documentation — guides and API reference
License
Flute is open-source software licensed under the GNU General Public License v3.0 or later.
Created by Flames