# Базовая настройка

Основные настройки сервера передаются в него через переменные окружения.

При запуске сервер автоматически их прочитает из файла .env или переменных окружения.

# Пример файла .env

# Настройки БД
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=launcher
DB_PASSWORD=pass
DB_NAME=launcher

# Настройки JWT
JWT_SECRET=iamsecret
JWT_ISSUER=paradox_api

CLIENTS_DIR=clients
INDEXES_DIR=indexes
FILES_DIR=files
OBJECTS_DIR=objects

# Скины/плащи
SKIN_URL=https://warmine.ru/MineCraft/MinecraftSkins/%s.png
CLOAK_URL=https://warmine.ru/MineCraft/MinecraftCloaks/%s.png

# Двухэтапка
VK_WEBHOOK=https://nan0.wtf/api/webhooks/vk
VK_TOKEN=vk1.1234567

TG_WEBHOOK=https://nan0.wtf/api/webhooks/telegram
TG_TOKEN=1234567:AbcdEf_asdf

# Описание настроек:

# База данных

Ключ Описание
DB_HOST Хост базы данных, например localhost
DB_PORT Порт базы данных, для mysql по стандарту 3306
DB_USER Пользователь базы данных
DB_PASSWORD Пароль от пользователя
DB_NAME Название базы данных

# JWT (Авторизация)

Ключ Описание
JWT_SECRET Ключ для генерации JWT токенов, это должна быть длинная, случайная строка которую не выйдет подобрать. ВНИМАНИЕ! Смена этого ключа приведет к сборсу ВСЕХ авторизаций в лаунчере. При утечке ключа в публичный доступ, его нужно поменять как можно быстрее.
JWT_ISSUER Издатель JWT токена, может быть любой строкой, она показывает, кем был выдан токен

# Директории с файлами

Ключ Описание
CLIENTS_DIR Путь до папки, в которой находятся .json файлы с настройками клиентов
INDEXES_DIR Путь до папки, в которой находятся .json файлы с настройками индексов
FILES_DIR Путь до папки, в которой находятся файлы клиентов
OBJECTS_DIR Путь до папки, в которой находятся объекты клиентов

# Скины

Ключ Описание
SKIN_URL Ссылка формата http(s)://domain.ru/path/to/skins/%s.png. %s будет заменен на ник игрока
CLOAK_URL ССылка формата http(s)://domain.ru/path/to/cloaks/%s.png. %s будет заменен на ник игрока

# Двухфакторная авторизация через ботов VK/Telegram

Ключ Описание
VK_WEBHOOK Ссылка на обработчик вебхука (Callback) от ВКонтакте, стандартный обработчик регестрирует сам сервер, так что обычно ссылка должа выглядеть как https://your-domain.ru/api/webhooks/vk
VK_TOKEN Токен от группы ВКонтакте, в которой будет находиться бот, у токена должны быть права на доступ к сообщениям (для самой двухэтапки) и управление группой (для установки вебхука)
TG_WEBHOOK Ссылка на обработчик вебхука телеграма, по аналогии с ВКонтакте, ссылка должна выгледть как https://your-domain.ru/api/webhooks/telegram
TG_TOKEN Токен от бота в Telegram

# Объекты

При хэшировании файлов лаунчер копирует файлы в папку объектов.

Структура папки с объектами выглядит так:

В корне лежат папки:

  • indexes/ - там находятся обработанные индексы клиентов, в них создержатся хэши, размеры и пути до файлов.

  • timestamps/ - там находятся таймштампы (временные метки), они соотвутсвуют времени последнего хэширования клиента. Они нужны для отображения того, что вышло обновление клиента.

  • Файлы клиентов, путь до файла формируется из его хэша. Например, если хэш это abcdef123, то файл будет распологаться по пути ab/cdef123