Перейти к основному содержимому

Настройка клиента

После установки клиентского кабинета проверьте файл src/config.php. В нём остаются только локальные настройки сайта: база данных, адрес публичного API, домен cookies, системные пути и базовые runtime-параметры.

Проектные настройки, меню, серверы, платёжные способы, визуальная тема и модули настраиваются в SaaS-панели и доставляются в клиент автоматически.

База данных​

Укажите подключение к базе установленного клиента:

src/config.php
$config['db']['host'] = 'MySQL-8.4';
$config['db']['port'] = '3306';
$config['db']['username'] = 'root';
$config['db']['password'] = '';
$config['db']['dbname'] = 'mmoweb_front';
$config['db']['charset'] = 'utf8mb4';

Проверьте подключение в установщике или в разделе проверки соединения после загрузки настроек проекта.

Публичный API​

Укажите базовый адрес API без пути /graphql. Нужные пути клиент добавляет автоматически:

src/config.php
$config['api']['url'] = 'https://api.mmo-web.dev';
$config['api']['max_connections'] = 3;
$config['api']['timeout'] = 2;

Во время установки клиент безопасно привязывается к выбранному проекту одноразовым кодом из панели. Постоянные ключи обновлений не нужно копировать в src/config.php или вставлять в шаблоны.

Соль клиента​

globalSalt создаётся локально установщиком. Она используется для подписи CSRF/cookie-значений и должна быть непустой.

src/config.php
$config['globalSalt'] = '64-character-generated-value';

Не копируйте globalSalt между установками и не заменяйте её вручную без необходимости: это может сбросить активные сессии и CSRF-токены.

Cookies и домен​

Настройте cookie-домен под фактический домен кабинета:

src/config.php
$config['cookie'] = [
'prefix' => 'mw_',
'path' => '/',
'domain' => 'cabinet.mmo-web.dev',
];

Локальная админка клиента​

Клиентская админка нужна только для технических операций, которые относятся к установленному сайту. Основные настройки проекта выполняются в SaaS-панели.

src/config.php
$config['admin']['enabled'] = true;
$config['admin']['ip'] = '127.0.0.1';

Не оставляйте доступ * на публичном сервере. Ограничьте доступ доверенными IP.

src/config.php
- $config['admin']['ip'] = '*';
+ $config['admin']['ip'] = '127.0.0.1';

Пути и кэш​

Оставьте стандартные пути, если структура клиента не менялась:

src/config.php
$config['internalDataPath'] = 'internal_data';
$config['externalDataPath'] = 'data';
$config['templatePath'] = 'template';
$config['cachePath'] = '%s/cache';

Папка internal_data должна быть закрыта от прямого доступа через веб-сервер.

Уведомления в реальном времени​

Если для проекта включён Centrifugo, публикуйте WebSocket через тот же домен, что и кабинет, например wss://cabinet.example.com/connection/websocket. Тогда браузер передаёт HttpOnly cookie сессии без вывода её идентификатора в JavaScript.

В connect и refresh proxy разрешите передачу только исходных заголовков Cookie и Origin. Proxy secret добавляйте отдельным статическим заголовком и не включайте его имя в http_headers или emulated_headers:

centrifugo.json
{
"client": {
"allowed_origins": [
"https://cabinet.example.com"
],
"proxy": {
"connect": {
"enabled": true,
"endpoint": "http://client-app/api/centrifugo/connect",
"timeout": "3s",
"http_headers": [
"Cookie",
"Origin"
],
"http": {
"static_headers": {
"X-Centrifugo-Proxy-Secret": "replace-with-project-proxy-secret"
}
}
},
"refresh": {
"enabled": true,
"endpoint": "http://client-app/api/centrifugo/refresh",
"timeout": "3s",
"http_headers": [
"Cookie",
"Origin"
],
"http": {
"static_headers": {
"X-Centrifugo-Proxy-Secret": "replace-with-project-proxy-secret"
}
}
}
}
}
}

Значение статического заголовка должно совпадать с Proxy Secret в настройках проекта. Соединение закрывается после выхода пользователя или истечения сессии.

centrifugo.json
- "http_headers": ["Cookie", "Origin", "X-Centrifugo-Proxy-Secret"]
+ "http_headers": ["Cookie", "Origin"]

Обновления и перенос сайта​

Служебная идентификация установки хранится в защищённой части internal_data и не перезаписывается при штатном обновлении. При переносе сайта перенесите internal_data вместе с остальными пользовательскими данными.

Если служебный файл был потерян, сайт продолжит работать с текущими данными, но обновления клиента и получение новых настроек проекта станут недоступны. Отзовите старую установку в карточке проекта, создайте новый одноразовый код и повторно подключите установку в локальной админке клиента.

Что настраивается в SaaS-панели​

  • игровые платформы и серверы;
  • меню сайта и личного кабинета;
  • способы входа, регистрации и восстановления;
  • PIN-защита действий;
  • платёжные системы, валюты и лимиты;
  • визуальная тема кабинета;
  • доступность купленных модулей по серверам.