QMLauncher
Кроссплатформенный GUI (Wails + React) для запуска Minecraft с модами и несколькими инстансами (сборка даёт нативный исполняемый файл с встроенным фронтендом). В облачной конфигурации лаунчер опрашивает QMServer за списком серверов, новостями и вспомогательными данными для создания инстанса.
Установка — только нативно (запуск бинарника на ПК пользователя). Образа Docker для лаунчера нет.
Возможности
- Инстансы Minecraft: создание, удаление, запуск
- Загрузчики: Forge, NeoForge, Fabric, Quilt
- Локальные и Microsoft (MSA) аккаунты; Client ID может подставляться с API (
GET /settings/qmlauncher-msa-client-id) - Облачная синхронизация (при настроенном API):
- список серверов и онлайн (
GET /api/v1/servers) - новости (
GET /api/v1/news) - mod-config по выбранному серверу (
GET /api/v1/servers/:id/mod-config) - списки версий для мастера создания инстанса (
/launcher/create-instance/*) - для премиум/админских учёток — CurseForge API key (
GET /launcher/curseforge-api-keyс JWT, если реализовано в клиенте)
- список серверов и онлайн (
- Встроенный терминал в GUI для вывода логов и команд
Инвентарь с игрового сервера в лаунчер этим API не передаётся напрямую; QXSync шлёт данные в QMServer при модуле Minecraft и интеграции QMWeb — см. Синхронизация инвентаря.
Сборка
cd QMLauncher
# Frontend (встраивается в исполняемый файл)
cd frontend && npm install && npm run build && cd ..
# Исполняемый файл для текущей платформы (имя вида build/QMLauncher-<os>-<arch>)
make build
# Кросс-сборка (пример)
make linux
make windows
Интерактивная разработка GUI: см. README_GUI.md в репозитории QMLauncher (wails dev).
Релизы (GitHub)
В репозитории QMLauncher по тегу v* CI (.github/workflows/release-qmlauncher.yml) собирает Linux x86_64: зависимости GTK/WebKit на раннере, npm ci / npm run build во frontend/, затем make linux. В GitHub Release выкладываются QMLauncher-linux-amd64, архив .tar.gz и контрольные суммы. Сборка Windows и macOS в этом workflow не выполняется — их можно собирать локально (Makefile, wails build). Версия в бинарнике задаётся через VERSION и BUILD_STAMP (как в Makefile).
Структура репозитория (ориентиры)
pkg/launcher— логика запуска Minecraftpkg/auth— аккаунтыfrontend/— React GUI (Wails)internal/meta,internal/network,internal/i18n— метаданные MC, сеть, локализация
Детали интеграции с API описаны в QMLauncher/docs/API.md и API_ru.md (при наличии в вашей копии репозитория).
Связь с QMServer
На стороне QMServer должна быть включена интеграция QMLauncher (QMAdmin → Интеграции). Если она выключена, соответствующие маршруты отвечают 404 с detail; лаунчер показывает сообщение, что выбранный API не обслуживает лаунчер. Подробнее — QMServer — интеграции.
| Назначение | Типичный endpoint |
|---|---|
| Статус / проверка связности | GET /api/v1/status |
| Серверы для списка в UI | GET /api/v1/servers |
| Новости | GET /api/v1/news |
| Версии MC / загрузчиков | GET /api/v1/launcher/create-instance/minecraft-versions, loader-versions |
| Конфиг модов сервера | GET /api/v1/servers/:id/mod-config |
| UUID профиля сервера | Из ответа GET /servers — нужен для настройки QXSync на стороне игрового сервера (после релиза мода) |
Базовый URL API задаётся в настройках лаунчера или при сборке (см. документацию репозитория QMLauncher).