Настройка клиента
После установки клиентского кабинета проверьте файл src/config.php. В нём остаются только локальные настройки сайта: база данных, адрес публичного API, домен cookies, системные пути и базовые runtime-параметры.
Проектные настройки, меню, серверы, платёжные способы, визуальная тема и модули настраиваются в SaaS-панели и доставляются в клиент автоматически.
База данных
Укажите подключение к базе установленного клиента:
$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. Нужные пути клиент добавляет автоматически:
$config['api']['url'] = 'https://api.mmo-web.dev';
$config['api']['max_connections'] = 3;
$config['api']['timeout'] = 2;
Во время установки клиент безопасно привязывается к выбранному проекту одноразовым кодом из панели. Постоянные ключи обновлений не нужно копировать в src/config.php или вставлять в шаблоны.
Соль клиента
globalSalt создаётся локально установщиком. Она используется для подписи CSRF/cookie-значений и должна быть непустой.
$config['globalSalt'] = '64-character-generated-value';
Не копируйте globalSalt между установками и не заменяйте её вручную без необходимости: это может сбросить активные сессии и CSRF-токены.
Cookies и домен
Настройте cookie-домен под фактический домен кабинета:
$config['cookie'] = [
'prefix' => 'mw_',
'path' => '/',
'domain' => 'cabinet.mmo-web.dev',
];
Локальная админка клиента
Клиентская админка нужна только для технических операций, которые относятся к установленному сайту. Основные настройки проекта выполняются в SaaS-панели.
$config['admin']['enabled'] = true;
$config['admin']['ip'] = '127.0.0.1';
Не оставляйте доступ * на публичном сервере. Ограничьте доступ доверенными IP.
- $config['admin']['ip'] = '*';
+ $config['admin']['ip'] = '127.0.0.1';
Пути и кэш
Оставьте стандартные пути, если структура клиента не менялась:
$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:
{
"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 в настройках проекта. Соединение закрывается после выхода пользователя или истечения сессии.
- "http_headers": ["Cookie", "Origin", "X-Centrifugo-Proxy-Secret"]
+ "http_headers": ["Cookie", "Origin"]
Обновления и перенос сайта
Служебная идентификация установки хранится в защищённой части internal_data и не перезаписывается при штатном обновлении. При переносе сайта перенесите internal_data вместе с остальными пользовательскими данными.
Если служебный файл был потерян, сайт продолжит работать с текущими данными, но обновления клиента и получение новых настроек проекта станут недоступны. Отзовите старую установку в карточке проекта, создайте новый одноразовый код и повторно подключите установку в локальной админке клиента.
Что настраивается в SaaS-панели
- игровые платформы и серверы;
- меню сайта и личного кабинета;
- способы входа, регистрации и восстановления;
- PIN-защита действий;
- платёжные системы, валюты и лимиты;
- визуальная тема кабинета;
- доступность купленных модулей по серверам.