GreyPanel V2 – Полное описание
Что такое GreyPanel V2?
GreyPanel V2 — это современная, модульная и высокопроизводительная панель управления игровыми серверами (CS:GO, CS 1.6, CS2 и другие на движках GoldSource/Source). Она объединяет в себе веб-сайт сообщества, панель администрирования, магазин привилегий, платёжную систему, статистику и аналитику — всё в одном месте.
Содержание
- Общие сведения
- Функционал для игроков
- Административная панель
- Технические особенности
- Технологический стек
- Интеграции
- REST API
- Фоновые задачи (Cron)
- Консольные команды
- Установка и настройка
- Расширяемость и разработка
- Лицензия и контакты
Общие сведения
GreyPanel V2 — это готовое решение для управления игровым сервером и сообществом. Оно подходит как для небольших проектов, так и для крупных кланов, предоставляя все необходимые инструменты для администрирования, монетизации и взаимодействия с игроками.
Ключевые особенности:
- Модульная архитектура – легко расширять и адаптировать.
- Современный стек – PHP 8.4, Symfony Components, Twig, Bootstrap 5, Alpine.js, Vite.
- Безопасность – CSRF, rate limiting, шифрование, защита от XSS.
- Мультиязычность – русский и английский (легко добавить другие).
- Высокая производительность – кеширование, оптимизированные запросы.
- Гибкие интеграции – AmxBans, SourceBans, IKS, AS, FTP, GreyPanel API.
Функционал для игроков
Аутентификация и профиль
- Регистрация с подтверждением email.
- Вход по логину/паролю, восстановление пароля.
- Запоминание сессии (remember token).
- Привязка аккаунтов: Steam, VK, Discord, Telegram.
- Настройка аватара (загрузка, обрезка) и обложки профиля.
- Личные данные: имя, ник, день рождения, подпись, телефон.
- Настройки приватности:
- Кто может писать личные сообщения (все / только друзья).
- Привязка сессии к IP.
- Уведомления на email.
Общение и взаимодействие
- Форум– иерархия: категории → разделы → темы → посты.
- Поддержка Markdown.
- Лайки (вместо «спасибо»).
- Отслеживание прочитанных тем.
- Цитирование, редактирование, удаление (автором или модератором).
- Поиск по форуму.
- Общий чат– на главной странице.
- Отправка сообщений в реальном времени (с эмодзи).
- Просмотр истории.
- Личные сообщения– приватные диалоги.
- Уведомления о новых сообщениях.
- Отметка прочитанных.
- Защита от спама (rate limiting).
- Лента событий– отображение активности:
- Регистрация новых пользователей.
- Создание тем и постов.
- Покупка услуг.
- Подача жалоб.
Новости и контент
- Публикация новостей администраторами.
- Markdown-разметка, автоматическое распознавание ссылок.
- Встраивание видео (YouTube, Rutube).
- Комментарии к новостям (удаление автором или админом).
- Счётчик просмотров.
Магазин услуг (привилегии)
- Каталог услуг с описанием, флагами прав и привязкой к серверам.
- Тарифы – разная длительность (дни) и цена.
- Покупка с баланса пользователя.
- Автоматическая выдача прав на серверы через интеграции (AmxBans, SourceBans, FTP, IKS, AS).
- Отображение активных услуг в профиле (срок действия, статус).
Баланс и платежи
- Внутренний баланс пользователя.
- История пополнений и списаний.
- Пополнение через 13+ платёжных шлюзов:
- ЮMoney, Robokassa, FreeKassa.
- Qiwi (старый и новый API).
- LiqPay, InterKassa, PayAnyWay.
- PayPalych, Paysera, PrimePayments.
- Enot, AnyPay.
- Поддержка разных валют (RUB, USD, EUR и др., в зависимости от шлюза).
- Реферальная программа – игрок получает процент от пополнений приглашённых.
Статистика и рейтинг
- Интеграция с движками статистики:
- CSStats MySQL.
- HLStatsX CE.
- RankMe.
- Levels Ranks.
- Army Ranks Ultimate.
- Таблица рейтинга:
- Убийства, смертность, K/D, HS%.
- Время игры, скилл.
- Профиль статистики – подробная информация по картам, оружию, достижениям.
Бан-лист и муты
- Отображение банов и мутов с серверов (интеграция с AmxBans/SourceBans).
- Поиск по нику или SteamID.
- Заявка на разбан – через тикет-систему (автоматическое создание темы на форуме).
- Платный разбан (если включен в настройках).
- Статусы: активен, истёк, разбанен, куплен разбан.
Тикеты и поддержка
- Категории: общий вопрос, заявка на разбан, ошибка, платежи.
- Переписка с администрацией.
- Уведомления о новых ответах.
- Возможность закрыть тикет пользователем или администратором.
Жалобы на администраторов
- Подача жалобы на администратора:
- Сервер, причина, скриншоты, демо-запись.
- Рассмотрение администрацией: вердикт, наказание (блокировка услуги, удаление администратора).
- Переписка в рамках жалобы.
- Автоматическое уведомление всех сторон.
Административная панель
Управление пользователями
- Просмотр списка пользователей (поиск по нику/email).
- Редактирование: группа, баланс, блокировка, смена пароля.
- Просмотр услуг пользователя, выдача/удаление услуги.
- Просмотр рефералов и заработанных средств.
Управление группами
- Создание/редактирование/удаление групп.
- Назначение флагов прав (a-z) – гибкая система доступа.
- Группа по умолчанию для новых пользователей.
Настройка серверов
- Добавление/редактирование игровых серверов:
- IP, порты (игровой, query, RCON).
- Тип (halflife / source).
- Название, отображаемый адрес, скидка на услуги.
- Включение/отключение отображения в мониторинге.
- Интеграция привилегий: AmxBans, SourceBans, IKS, AS, FTP, GreyPanel API + AmxBans.
- Настройка статистики: движок, подключение к БД, таблица, сортировка.
- Синхронизация администраторов с внешними системами (импорт/экспорт).
Услуги и тарифы
- Создание/редактирование услуг: название, описание, флаги прав.
- Привязка услуги к серверам.
- Ограничение по группе пользователей.
- Добавление тарифов: длительность, цена, активность, порядок сортировки.
Администраторы серверов
- Просмотр администраторов для выбранного сервера.
- Добавление/редактирование:
- Имя (SteamID или ник).
- Пароль, флаги, тип авторизации (ce – SteamID, ca – ник+пароль).
- Активность, пауза.
- Привязка к пользователю сайта (позволяет видеть услуги в профиле).
Баны и муты (администрирование)
- Управление банами/мутами через внешние интеграции:
- Снятие наказания.
- Изменение срока.
- Удаление истекших или всех банов.
- Статистика: всего, активных, перманентных, истекших.
Тикеты и жалобы (администрирование)
- Просмотр всех тикетов/жалоб с фильтрацией по категории/статусу.
- Ответы через админ-панель (с отметкой, что ответ от администрации).
- Закрытие тикетов/жалоб с вердиктом.
- При удовлетворении жалобы – автоматическое наказание администратора (блокировка услуги).
Новости (администрирование)
- Создание/редактирование/удаление новостей.
- Управление публикацией (черновик/опубликовано).
- Просмотр статистики (просмотры).
Темы оформления и редактор
- Список доступных тем (из папки public/themes/).
- Активация/деактивация темы.
- Редактор тем – просмотр и редактирование файлов шаблонов (Twig, CSS, JS) прямо через веб-интерфейс.
- Вставка готовых блоков (виджетов) через модальное окно.
Платежи (настройка)
- Включение/отключение каждого платёжного шлюза.
- Установка ключей API, паролей, идентификаторов.
- Тестовый режим для каждого шлюза.
- Отображение URL для уведомлений (callback) для настройки в личных кабинетах платёжных систем.
Безопасность и SEO
- Безопасность:
- Включение/отключение reCAPTCHA на формах входа/регистрации.
- Установка Site Key и Secret Key.
- SEO:
- Настройка мета-тегов (описание, ключевые слова) для главной страницы.
- Автоматическая генерация sitemap.xml.
- Редактирование robots.txt через админку.
Общие настройки
- Название сайта.
- Протокол (http/https/авто).
- Ручной URL (если автоматическое определение не работает).
- Режим отладки (включение вывода ошибок).
- Время жизни сессии (в секундах).
- Имя cookie сессии.
- Язык по умолчанию.
Технические особенности
- Модульная архитектура – все компоненты легко заменяемы и расширяемы.
- DI-контейнер – управление зависимостями, интерфейсы для сервисов.
- Безопасность:
- CSRF-токены на всех формах.
- Rate limiting – защита от брутфорса и флуда.
- Шифрование конфиденциальных данных (пароли БД, FTP, платежных ключей).
- HTML-санитайзер (защита от XSS).
- Хеширование паролей пользователей (bcrypt).
- Производительность:
- Кеширование (файловое, опционально Redis).
- Оптимизированные SQL-запросы (подготовленные выражения, индексы).
- Vite для сборки фронтенда (быстрая загрузка ресурсов).
- Мультиязычность – встроенные переводы на русский и английский, легко добавить новые.
- REST API – для внешних систем (AMXX-плагин, интеграции).
Технологический стек
| Компонент | Используемая технология |
|---|---|
| PHP | 8.4+ |
| Фреймворк | Symfony Components (HttpFoundation, Cache, Console, Translation, Validator, Lock, RateLimiter, HtmlSanitizer) |
| Роутинг | FastRoute (подготовлен переход на Symfony Routing) |
| Шаблонизатор | Twig 3.x |
| База данных | MySQL / MariaDB (PDO) |
| Фронтенд | Bootstrap 5, Alpine.js, Vite, Chart.js, EasyMDE (Markdown), CodeMirror, emoji-picker |
| Кеширование | Filesystem (опционально Redis) |
| Почта | PHP mail() / SMTP (Symfony Mailer) |
| Очереди | Symfony Messenger (опционально) |
| Инструменты | PHP-CS-Fixer, PHPStan, ESLint, Prettier |
Интеграции
Администраторы
- AmxBans
- SourceBans
- IKS Admin
- AS (Admin System)
- Users.ini (FTP/SFTP)
- GreyPanel API + AmxBans (гибридный режим)
Баны и муты
- AmxBans
- SourceBans
- IKS
- AS
Статистика
- CSStats MySQL
- HLStatsX CE
- RankMe
- Levels Ranks
- Army Ranks Ultimate
Платёжные шлюзы
- ЮMoney, Robokassa, FreeKassa
- Qiwi (старый и новый API)
- LiqPay, InterKassa, PayAnyWay
- PayPalych, Paysera, PrimePayments
- Enot, AnyPay
REST API
Для внешних систем (например, AMXX-плагин) доступны API-эндпоинты:
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/admins/{serverId} | Получить список администраторов сервера |
| POST | /api/admins/{serverId} | Создать/обновить администратора |
| DELETE | /api/admins/{serverId}/{name} | Удалить администратора по имени |
Аутентификация: через заголовок X-API-Key или параметр api_key.
Фоновые задачи (Cron)
Все периодические задачи выполняются через консольную команду cron:run. Рекомендуется запускать каждые 15 минут.
Код:
*/15 * * * * cd /путь/к/проекту && php bin/console cron:run >> /dev/null 2>&1
Что делает cron:run:
- Удаление просроченных услуг.
- Уведомления об истечении услуг (за 5 дней).
- Очистка старых логов (старше 30 дней).
- Удаление неактивированных пользователей (не подтвердивших email, старше 7 дней).
- Обновление мониторинга серверов.
- Очистка истекших токенов подтверждения email и сброса пароля.
Консольные команды
Доступные команды (выполняются из корня проекта):
| Команда | Описание |
|---|---|
| php bin/console cron:run | Запуск всех фоновых задач |
| php bin/console monitor:update | Принудительное обновление мониторинга серверов |
| php bin/console recalculate:reit | Пересчёт рейтинга (reit) всех пользователей |
| php bin/console messenger:consume | Запуск обработчика очереди (если настроен) |
Установка и настройка
Подробная инструкция по установке находится в файле
У вас нет разрешения на просмотр ссылки. Вход или Регистрация
- Клонирование репозитория
Код:git clone https://github.com/ваш-аккаунт/greypanel-v2.git - Установка зависимостей
Код:composer install --no-dev --optimize-autoloader npm install npm run build - Настройка .env
Укажите параметры БД, сгенерируйте ENCRYPTION_KEY.Код:cp .env.example .env - Запуск веб-установщика
Откройтеи следуйте инструкциям.У вас нет разрешения на просмотр ссылки. Вход или Регистрация - Права на запись
Код:chmod -R 775 var/cache var/logs var/lock public/uploads chmod 660 .env - Настройка Cron (см. раздел выше).
Расширяемость и разработка
Добавление нового платёжного шлюза
- Создать класс в src/Merchant/, реализовать MerchantInterface.
- Добавить шаблон настроек в public/themes/admin/tpl/payments/.
- Добавить маршруты в config/routes.php для /payment/{gateway} и /payment/callback/{gateway}.
- Зарегистрировать шлюз в AdminPaymentController.
Добавление новой интеграции (AmxBans, SourceBans и т.д.)
- Создать класс в src/Integration/Admin/, реализовать AdminSystemIntegration.
- Добавить в IntegrationFactory метод getAdminIntegration.
- При необходимости создать аналогичные классы для Ban/Mute/Stats.
Работа с переводами
- Файлы: resources/translations/messages.{lang}.yaml и validators.{lang}.yaml.
- В Twig: {{ trans('key') }}.
- В PHP: $this->translator->trans('key').
Стиль кода
- Запуск PHP-CS-Fixer: composer fix.
- Проверка PHPStan: composer phpstan.
- Линтинг JS: npm run lint.
