Skip to content

cspamsky/quatrix-cs2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

614 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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.

About

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.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages