Все настройки хранятся в базе данных в формате key-value (таблица settings). Управлять ими можно через админ-панель → Настройки или программно через tRPC (trpc.admin.settings). При первом запуске настройки заполняются значениями по умолчанию из packages/database/src/schema/common.ts.
Настройки с пометкой публичная доступны на клиенте без авторизации. Остальные — только на сервере.
Категория (category) в базе данных определяет, к какой группе настройка относится для целей доступа и хранения, а не обязательно соответствует разделу в этом справочнике. Например, секретные ключи (S3 access/secret key, секреты платёжных систем, OAuth-секреты) относятся к категории security, хотя описаны рядом с соответствующей функцией.

Общие (general)

КлючТипПо умолчаниюПубличнаяОписание
site.namestringMinecraft CMSдаНазвание сайта.
site.descriptionstringСовременная CMS для Minecraft серверовдаОписание сайта.
download.windowsstringдаСсылка на скачивание лаунчера для Windows.
download.macosstringдаСсылка на скачивание лаунчера для macOS.
download.linuxstringдаСсылка на скачивание лаунчера для Linux.

S3-хранилище

Настройки для подключения к S3-совместимому хранилищу (AWS S3, MinIO, Selectel и др.). Используется для загрузки аватаров, скинов, плащей и вложений.
КлючТипПо умолчаниюПубличнаяОписание
storage.s3.endpointstringнетПользовательский endpoint для S3-совместимого хранилища.
storage.s3.publicUrlstringнетПубличный домен/URL для доступа к файлам S3.
storage.s3.bucketstringнетНазвание bucket для хранения файлов.
storage.s3.regionstringus-east-1нетРегион S3 (по умолчанию us-east-1).
storage.s3.accessKeystringнетAccess Key для доступа к S3.
storage.s3.secretKeystringнетSecret Key для доступа к S3.
storage.s3.forcePathStylebooleantrueнетИспользовать path-style URLs (полезно для MinIO и совместимых сервисов).
storage.s3.useSSLbooleantrueнетИспользовать HTTPS при обращении к S3.
Для MinIO установите storage.s3.forcePathStyle в true и укажите endpoint вашего MinIO-сервера.

Безопасность (security)

КлючТипПо умолчаниюПубличнаяОписание
security.password_hash_algorithmargon2 | bcryptargon2нетАлгоритм хеширования паролей (argon2 или bcrypt). Argon2 рекомендуется как более безопасный.
security.session_lifetime_daysnumber30нетСрок действия сессии в днях.
security.max_login_attemptsnumber5нетМаксимальное количество попыток входа.
security.lockout_duration_minutesnumber15нетДлительность блокировки после превышения попыток входа (минуты).
security.require_email_verificationbooleanfalseдаТребовать обязательное подтверждение email при регистрации.
connections.oauth_state_secretstringнетСекрет для подписи состояния OAuth при подключении внешних аккаунтов.
Смена security.password_hash_algorithm не перехеширует существующие пароли. Новый алгоритм применяется только к новым паролям и при смене пароля.

Email и SMTP (email)

Настройки для отправки писем: подтверждение email, сброс пароля, уведомления.
КлючТипПо умолчаниюПубличнаяОписание
email.smtp_hoststringнетSMTP сервер для отправки email (например, smtp.gmail.com).
email.smtp_portnumber25нетПорт SMTP сервера (25, 587 для STARTTLS, 465 для SSL).
email.smtp_userstringнетЛогин для SMTP авторизации.
email.smtp_passstringнетПароль для SMTP авторизации.
email.from_namestringнетИмя отправителя (если пусто, используется название сайта).
Для Gmail используйте пароль приложения (App Password), а не основной пароль аккаунта.

Платежи (payment)

Настройки платёжных систем. Каждый провайдер настраивается отдельно.
КлючТипПо умолчаниюПубличнаяОписание
payment.client_redirect_urlstringhttp://localhost:3000/paymentнетURL для редиректа после оплаты.
payment.webhook_base_urlstringhttp://localhost:3001нетБазовый URL сервера для вебхуков платёжных систем.
payment.default_currencystringRUBнетВалюта по умолчанию для платежей.
payment.min_amountnumber10даМинимальная сумма пополнения.
payment.max_amountnumber100000даМаксимальная сумма пополнения.

Freekassa

КлючТипПо умолчаниюПубличнаяОписание
payment.freekassa.enabledbooleanfalseдаВключить Freekassa.
payment.freekassa.merchant_idstringнетID магазина Freekassa.
payment.freekassa.secret_keystringнетПервый секретный ключ Freekassa (для создания платежа).
payment.freekassa.secret_key_2stringнетВторой секретный ключ Freekassa (для обработки вебхука).
payment.freekassa.allowed_ipsstring[]список IP FreekassaнетРазрешённые IP-адреса Freekassa для вебхуков.

ЮKassa

КлючТипПо умолчаниюПубличнаяОписание
payment.yookassa.enabledbooleanfalseдаВключить ЮKassa.
payment.yookassa.shop_idstringнетID магазина ЮKassa.
payment.yookassa.secret_keystringнетСекретный ключ ЮKassa.
payment.yookassa.allowed_ipsstring[]список IP/подсетей ЮKassaнетРазрешённые IP-адреса/подсети ЮKassa для вебхуков.

Тинькофф

КлючТипПо умолчаниюПубличнаяОписание
payment.tinkoff.enabledbooleanfalseдаВключить Тинькофф.
payment.tinkoff.terminal_idstringнетID терминала Тинькофф.
payment.tinkoff.passwordstringнетПароль терминала Тинькофф.

Unitpay

КлючТипПо умолчаниюПубличнаяОписание
payment.unitpay.enabledbooleanfalseдаВключить Unitpay.
payment.unitpay.public_keystringнетПубличный ключ Unitpay.
payment.unitpay.secret_keystringнетСекретный ключ Unitpay.
payment.unitpay.allowed_ipsstring[]список IP UnitpayнетРазрешённые IP-адреса Unitpay для вебхуков.

Anypay

КлючТипПо умолчаниюПубличнаяОписание
payment.anypay.enabledbooleanfalseдаВключить Anypay.
payment.anypay.merchant_idstringнетID магазина Anypay.
payment.anypay.secret_keystringнетСекретный ключ Anypay.
payment.anypay.allowed_ipsstring[]список IP AnypayнетРазрешённые IP-адреса Anypay для вебхуков.

Payok

КлючТипПо умолчаниюПубличнаяОписание
payment.payok.enabledbooleanfalseдаВключить Payok.
payment.payok.shop_idstringнетID магазина Payok.
payment.payok.secret_keystringнетСекретный ключ Payok.

Enot.io

КлючТипПо умолчаниюПубличнаяОписание
payment.enotio.enabledbooleanfalseдаВключить Enot.io.
payment.enotio.shop_idstringнетID магазина Enot.io.
payment.enotio.secret_keystringнетСекретный ключ Enot.io.

Лаунчер (launcher)

Настройки интеграции с лаунчером GravitLauncher и авторизации лаунчера через сайт.
КлючТипПо умолчаниюПубличнаяОписание
launcher.api_secretstringнетСекретный ключ для API авторизации лаунчера GravitLauncher.
launcher.enabledbooleanfalseнетВключить интеграцию с GravitLauncher.
launcher.site_auth.enabledbooleanfalseнетВключить авторизацию лаунчера через сайт.
launcher.site_auth.auto_approvebooleanfalseнетАвтоматически подтверждать запросы авторизации лаунчера для вошедшего пользователя.
launcher.site_auth.token_ttl_hoursnumber24нетСрок действия токена сессии лаунчера, выданного через авторизацию на сайте (часы).
launcher.site_auth.request_ttl_minutesnumber10нетСрок действия запроса авторизации лаунчера до подтверждения (минуты).
launcher.site_auth.poll_interval_secondsnumber3нетРекомендованный интервал опроса статуса авторизации лаунчером (секунды).
launcher.site_auth.delivery_modestringpollнетСпособ доставки токена лаунчеру по умолчанию (poll или redirect).
launcher.site_auth.allowed_redirect_schemesstring[][]нетРазрешённые URI-схемы для доставки токена через deep-link лаунчера.
launcher.site_auth.code_secretstringнетСекрет для подписи одноразового кода авторизации лаунчера через сайт.
launcher.site_auth.bind_ipbooleanfalseнетПривязывать запрос авторизации лаунчера к IP-адресу.
launcher.site_auth.bind_hwidbooleanfalseнетПривязывать запрос авторизации лаунчера к HWID.
launcher.site_auth.branding_textstringЛаунчер запрашивает доступ к вашему аккаунтунетТекст на экране подтверждения авторизации лаунчера.

Minecraft (minecraft)

КлючТипПо умолчаниюПубличнаяОписание
minecraft.default_skinsstring[]2 стандартных скинанетСписок URL дефолтных скинов для новых пользователей.
minecraft.default_capesstring[]1 стандартный плащнетСписок URL дефолтных плащей для новых пользователей.

Внешний вид (appearance)

Настройки оформления сайта, текстов главной страницы и ссылки на социальные сети.
КлючТипПо умолчаниюПубличнаяОписание
appearance.themePresetstringdefaultдаПресет цветовой темы сайта.
appearance.layoutPresetstringfloatingдаПресет расположения блоков на сайте.
hero.titlestringМодовый Minecraft-проект нового поколениядаЗаголовок на главной странице.
hero.descriptionstring(текст по умолчанию)даОписание на главной странице.
footer.descriptionstring(текст по умолчанию)даОписание в футере сайта.
social.discordstringдаСсылка на Discord сервер.
social.telegramstringдаСсылка на Telegram канал/группу.
social.vkstringдаСсылка на группу ВКонтакте.
social.youtubestringдаСсылка на YouTube канал.
social.twitchstringдаСсылка на Twitch канал.

Подключения и OAuth (integrations)

Настройки OAuth-провайдеров для привязки внешних аккаунтов, а также интеграций уведомлений и LiteBans.
КлючТипПо умолчаниюПубличнаяОписание
connections.client_app_urlstringhttp://localhost:3000нетБазовый URL клиентского приложения для редиректов после авторизации через внешние сервисы.
connections.discord.client_idstringнетИдентификатор приложения Discord для OAuth-подключения аккаунтов.
connections.discord.client_secretstringнетСекрет приложения Discord для OAuth-подключения аккаунтов.
connections.discord.redirect_uristringhttp://localhost:3001/connections/discord/callbackнетRedirect URI, зарегистрированный в приложении Discord.
connections.discord.scopesstring[]['identify', 'email']нетСписок OAuth-скоупов Discord, запрашиваемых при подключении аккаунта.
connections.vk.client_idstringнетИдентификатор приложения VK для OAuth-подключения аккаунтов.
connections.vk.client_secretstringнетСекрет приложения VK для OAuth-подключения аккаунтов.
connections.vk.redirect_uristringhttp://localhost:3001/connections/vk/callbackнетRedirect URI, зарегистрированный в приложении VK.
connections.vk.scopesstring[]['email']нетСписок OAuth-скоупов VK, запрашиваемых при подключении аккаунта.
connections.vk.api_versionstring5.199нетВерсия VK API для запросов.
connections.telegram.bot_tokenstringнетТокен Telegram бота для авторизации через Telegram Login Widget.
connections.telegram.bot_idstringнетID Telegram бота (числовой, можно получить из токена или @userinfobot).
connections.google.client_idstringнетИдентификатор приложения Google для OAuth-подключения аккаунтов.
connections.google.client_secretstringнетСекрет приложения Google для OAuth-подключения аккаунтов.
connections.google.redirect_uristringhttp://localhost:3001/connections/google/callbackнетRedirect URI, зарегистрированный в приложении Google.
connections.google.scopesstring[]scopes profile + emailнетСписок OAuth-скоупов Google, запрашиваемых при подключении аккаунта.
connections.yandex.client_idstringнетИдентификатор приложения Yandex для OAuth-подключения аккаунтов.
connections.yandex.client_secretstringнетСекрет приложения Yandex для OAuth-подключения аккаунтов.
connections.yandex.redirect_uristringhttp://localhost:3001/connections/yandex/callbackнетRedirect URI, зарегистрированный в приложении Yandex.

Уведомления

КлючТипПо умолчаниюПубличнаяОписание
notifications.discord_bot_tokenstringнетТокен Discord бота для отправки уведомлений в ЛС.
notifications.push_vapid_public_keystringдаVAPID публичный ключ для Web Push уведомлений.
notifications.push_vapid_private_keystringнетVAPID приватный ключ для Web Push уведомлений.
notifications.push_vapid_subjectstringmailto:admin@example.comнетVAPID subject (email или URL).

LiteBans

КлючТипПо умолчаниюПубличнаяОписание
punishments.litebans.enabledbooleanfalseнетВключить интеграцию с LiteBans.
punishments.litebans.syncIntervalnumber60нетИнтервал синхронизации с LiteBans (секунды).
Redirect URI для каждого провайдера формируется по шаблону: {API_URL}/connections/{provider}/callback. Например: https://api.myserver.com/connections/discord/callback.

Наказания и платный разбан (security)

КлючТипПо умолчаниюПубличнаяОписание
punishments.enabledbooleantrueнетВключить систему наказаний.
punishments.unban.enabledbooleanfalseдаРазрешить платный разбан в личном кабинете.
punishments.unban.allowedTypesstring[]['ban']нетТипы наказаний, которые можно снять платно (ban, mute, warn).
punishments.unban.allowHwidBansbooleanfalseнетРазрешить платный разбан для HWID-банов.
punishments.unban.allowIpBansbooleantrueнетРазрешить платный разбан для IP-банов.
punishments.unban.basePricenumber100даБазовая цена разбана (в рублях).
punishments.unban.allowRepeatPurchasebooleantrueнетРазрешить повторную покупку разбана.
punishments.unban.repeatPriceFormulastringmultiplyнетФормула цены повторного разбана: multiply (умножение), power (степень), fixed (фиксированная).
punishments.unban.repeatPriceMultipliernumber2нетМножитель/степень для формулы цены повторного разбана.

Логирование (logging)

КлючТипПо умолчаниюПубличнаяОписание
logging.channelsstring[]['console']нетКаналы для отправки логов (console, telegram, discord).
logging.telegram.bot_tokenstringнетТокен Telegram бота для отправки логов.
logging.telegram.chat_idstringнетID чата Telegram для отправки логов.
logging.discord.bot_tokenstringнетТокен Discord бота для отправки логов.
logging.discord.channel_idstringнетID канала Discord для отправки логов.