A flexible and modular CMS tailored for managing game servers.

Maintainers

Package info

github.com/Flute-CMS/cms

Type:project

pkg:composer/flute-cms/cms

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 120

Open Issues: 0

v1.0.1 2026-03-27 16:24 UTC

README

Flute CMS

Open-source CMS for game server communities

Release License Stars Discord PHP 8.2+

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
  • DatabaseCycle ORM with Active Record and auto-migrations
  • TemplatesBlade (Illuminate View) with SCSS via dart-sass / scssphp
  • AuthenticationHybridAuth for OAuth2 providers
  • PaymentsOmnipay 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.

  1. Fork the repo and create a branch from early
  2. Make your changes and ensure composer test passes
  3. Submit a pull request

Branches:

  • main — stable releases
  • early — 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

License

Flute is open-source software licensed under the GNU General Public License v3.0 or later.

Created by Flames