Home
Softono
quatrix-cs2

quatrix-cs2

Open source MIT TypeScript
21
Stars
5
Forks
12
Issues
4
Watchers
3 months
Last Commit

About quatrix-cs2

Open-source CS2 server management panel with real-time RCON, multi-server support, SteamCMD automation and a modern web UI built with Node.js and React.

Platforms

Web Self-hosted

Languages

TypeScript

Links

Quatrix CS2 Server Manager

NOTE: Quatrix panel is still under development.

License: MIT Node.js Version React TypeScript

Quatrix Demo

A web-based management panel for Counter-Strike 2 dedicated servers. Quatrix provides real-time monitoring, RCON console, player management, and multi-instance support through a modern web interface.

Target users: CS2 server administrators running Linux dedicated servers
Scope: Server-side management only (no client modifications or exploits)


Why Quatrix

Quatrix addresses common pain points in CS2 server management:

  • Multi-instance efficiency: Run multiple CS2 server instances without duplicating 60GB+ game files
  • Plugin management: Centralized plugin pool with per-instance configuration
  • Real-time control: WebSocket-based live updates for console, chat, and player data
  • Modern interface: React-based UI with responsive design and dark mode

โœจ Features

Core Functionality

  • Dashboard: Real-time CPU, RAM, and network usage monitoring
  • RCON Console: Interactive command execution with color-coded output and command history
  • Player Management: Live player list with Steam profiles, connection times, and kick/ban controls (Requires SimpleAdmin for admin management)
  • Chat Monitor: Real-time in-game chat with player avatars and filtering
  • File Manager: Web-based config editor (supports .cfg, .json, .txt, .toml)
  • Analytics Dashboard: Historical system performance metrics with customizable time ranges (24h, 7d, 30d)

Instance Management

  • Multi-instance support: Manage multiple CS2 servers from one panel
  • Granular symlinking: Shares game files (.vpk assets) while isolating configs and plugins
  • Plugin pool: Deploy plugins to multiple instances from a central repository
  • Auto-repair: Validates and fixes file structure issues on server start
  • Automated backups: Scheduled database and configuration backups with retention policies

Administration

  • ACL Permission System: Granular access control with permissions like servers.create, servers.update, users.manage
  • Transparent Observer Mode: All users can view all pages, but actions are restricted based on permissions
  • User authentication: JWT-based sessions with optional 2FA (TOTP)
  • Admin system: Integrated with CounterStrikeSharp's ecosystem (compatible with SimpleAdmin for user management)
  • Multi-language: English and Turkish localization (i18next)

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  React UI   โ”‚ โ† WebSocket/REST โ†’ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                     โ”‚  Node.js API โ”‚
                                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                           โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚                      โ”‚                      โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”           โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”
              โ”‚ SQLite DB โ”‚          โ”‚ Plugins โ”‚           โ”‚ CS2 Core  โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  Pool   โ”‚           โ”‚  (60GB+)  โ”‚
                                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜
                                                                 โ”‚
                                                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                                    โ”‚                         โ”‚
                                              โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”
                                              โ”‚ Instance 1 โ”‚          โ”‚ Instance 2 โ”‚
                                              โ”‚ (symlinks) โ”‚          โ”‚ (symlinks) โ”‚
                                              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Stack:

  • Frontend: React 19, Vite 7, Tailwind CSS, Socket.IO client
  • Backend: Node.js 20+, Express, Socket.IO 4.8, better-sqlite3
  • Automation: SteamCMD integration, systemd service management

๐Ÿ“ฆ Installation

Prerequisites

  • Ubuntu 20.04+ or Debian 11+ (64-bit)
  • Root or sudo access
  • At least 70GB free disk space (for CS2 server files)

Automated Installation

curl -sSL https://raw.githubusercontent.com/cspamsky/quatrix/main/install.sh | sudo bash

This script will:

  1. Install Node.js 20, .NET 8 SDK, and required 32-bit libraries
  2. Create a quatrix system user
  3. Clone the repository to /home/quatrix/quatrix
  4. Install dependencies and build the frontend
  5. Configure a systemd service
  6. Set up UFW firewall rules for CS2 ports

Manual Installation

# Install dependencies
sudo apt update
sudo apt install -y curl git build-essential lib32gcc-s1

# Install Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Clone and setup
git clone https://github.com/cspamsky/quatrix.git
cd quatrix
npm install
cd client && npm install && npm run build && cd ..

# Configure environment
cp .env.example .env
# Edit .env with your settings

# Start the server
npm start

Post-Installation

Access the panel at http://your-server-ip:3001

Default credentials are created on first run. Check the console output for login details.


๐ŸŽฎ Usage

Managing Servers

  1. Create an instance: Dashboard โ†’ Instances โ†’ Add New
  2. Configure settings: Set server name, port, game mode, and map
  3. Install plugins: Use the plugin pool to deploy Metamod:Source and CounterStrikeSharp
  4. Start server: Click Start button in the instance card

RCON Console

Execute commands directly from the web interface:

changelevel de_dust2
sv_cheats 1
mp_warmup_end

Plugin Management

  • Upload plugins to the central pool: Plugins โ†’ Upload
  • Deploy to instances: Select plugin โ†’ Choose instances โ†’ Deploy
  • Edit configs: File Manager โ†’ Navigate to plugin folder โ†’ Edit .json/.cfg

User Permissions

Quatrix uses a granular ACL (Access Control List) system. Available permissions:

  • * - Root access (all permissions)
  • servers.create - Create new server instances
  • servers.delete - Delete server instances
  • servers.update - Modify server settings
  • servers.console - Access RCON console
  • servers.files - Manage server files
  • servers.database - Access database management
  • plugins.manage - Install and configure plugins
  • analytics.view - View system analytics
  • users.manage - Manage users and permissions

Users without specific permissions can view pages in read-only mode (Transparent Observer).


๐Ÿ“ Project Structure

quatrix/
โ”œโ”€โ”€ client/              # React frontend (Vite + React 19)
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ components/  # Reusable UI components
โ”‚       โ”œโ”€โ”€ pages/       # Route-based page components
โ”‚       โ”œโ”€โ”€ contexts/    # React context providers
โ”‚       โ”œโ”€โ”€ hooks/       # Custom React hooks
โ”‚       โ”œโ”€โ”€ utils/       # Client-side utilities
โ”‚       โ”œโ”€โ”€ config/      # Frontend configuration
โ”‚       โ”œโ”€โ”€ locales/     # i18n translation files
โ”‚       โ””โ”€โ”€ types/       # TypeScript type definitions
โ”œโ”€โ”€ server/              # Node.js backend (Express + Socket.IO)
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ routes/      # API endpoint definitions
โ”‚       โ”œโ”€โ”€ services/    # Business logic and integrations
โ”‚       โ”œโ”€โ”€ middleware/  # Express middleware (auth, rate limiting)
โ”‚       โ”œโ”€โ”€ utils/       # Server-side utilities
โ”‚       โ”œโ”€โ”€ config/      # Backend configuration
โ”‚       โ””โ”€โ”€ types/       # TypeScript type definitions
โ”œโ”€โ”€ data/                # Application data (database, SteamCMD)
โ””โ”€โ”€ install.sh           # Automated installation script

๐Ÿ—บ๏ธ Roadmap

Completed:

  • โœ… Multi-instance management with symlink optimization
  • โœ… Real-time RCON console and chat monitoring
  • โœ… Steam profile integration (avatars, SteamID conversion)
  • โœ… Plugin pool and deployment system
  • โœ… Web-based file editor
  • โœ… Admin permission management
  • โœ… 2FA authentication
  • โœ… ACL-based permission system (granular access control)
  • โœ… Transparent Observer mode (read-only access for unauthorized users)
  • โœ… System analytics dashboard with historical metrics
  • โœ… Automated backup system for configs and database

Planned:

  • [ ] Workshop map downloader integration
  • [ ] External database support (MySQL/MariaDB) for shared stats
  • [ ] REST API documentation for third-party integrations
  • [ ] Advanced server performance analytics and alerting
  • [ ] Multi-server cluster management

๐Ÿค Contributing

Contributions are welcome. Please follow these guidelines:

  1. Fork the repository and create a feature branch
  2. Follow existing code style: ESLint for JS/TS, Prettier for formatting
  3. Test your changes: Ensure the panel builds and runs without errors
  4. Write clear commit messages: Use conventional commits format
  5. Submit a pull request: Describe what your changes do and why

Development Setup

# Install dependencies
npm install
cd client && npm install && cd ..

# Run in development mode
npm run dev          # Backend (port 3001)
cd client && npm run dev  # Frontend (port 5173)

Reporting Issues

  • Check existing issues before creating a new one
  • Include CS2 server version, OS version, and Node.js version
  • Provide error logs from journalctl -u quatrix or console output

๐Ÿ“„ License

MIT License - see LICENSE file for details.

Author: cspamsky
Repository: github.com/cspamsky/quatrix


โš ๏ธ Disclaimer

This project is not affiliated with Valve Corporation. Counter-Strike 2 is a trademark of Valve Corporation.

Quatrix is designed for legitimate server administration only. Do not use this software for cheating, exploits, or any activities that violate Valve's terms of service.