Skip to content

Commit

Permalink
Небольшой апдейт доки
Browse files Browse the repository at this point in the history
  • Loading branch information
JoCat committed Nov 15, 2023
1 parent a815bf7 commit 11151d0
Show file tree
Hide file tree
Showing 6 changed files with 852 additions and 1,517 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/node_modules
/docs/.vitepress/dist
/docs/.vitepress/cache
34 changes: 10 additions & 24 deletions docs/basic/clients.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,24 @@
# Игровые клиенты

При сборке клиента можно пойти 2-мя путями:
При сборке клиента можно пойти 3-мя путями:

- Сборка вручную
- Скачивание клиента с официального сервера Mojang (по умолчанию) + дополнение модлоадером, например Fabric или Quilt
- Использование готовых клиентов с зеркал
- Сборка вручную

Первый вариант для продвинутых пользователей, описан в статье [Сборка игровых клиентов Minecraft](https://blog.aurora-team.ru/posts/building-minecraft-clients/).
Описание второго вы увидите ниже.

## Скачивание ассетов

Команда: `downloadassets <version> <folder name> <?source type>`

где:

- `version` - версия ассетов
- `folder name` - название папки, в которую будут сохранены ассеты
- `source type` - тип источника (необязательно), возможные варианты: `mojang` (используется по умолчанию), `mirror`

Примеры использования:
`downloadassets 1.12.2 assets1.12.2` - скачать ассеты с официального сервера Mojang
`downloadassets 1.12.2 assets1.12.2 mirror` - найти и скачать ассеты с зеркал, указаных в конфиге
Последний вариант для продвинутых пользователей, описан в статье [Сборка игровых клиентов Minecraft](https://blog.aurora-team.ru/posts/building-minecraft-clients/) (информация немного устарела).

## Скачивание клиента

Команда: `downloadclient <version> <folder name> <?source type>`
Команда: `downloadclient <version> <client name> <?source type>`

где:

- `version` - версия ассетов
- `folder name` - название папки, в которую будет сохранён клиент
- `source type` - тип источника (необязательно), возможные варианты: `mojang` (используется по умолчанию), `fabric`, `mirror`
- `version` - версия клиента или название сборки с зеркала
- `client name` - название папки, в которую будет сохранён клиент
- `source type` - тип источника (необязательно), возможные варианты: `mojang` (используется по умолчанию), `fabric`, `quilt`, `mirror`

Примеры использования:
`downloadclient 1.12.2 TestClient` - скачать клиент с официального сервера Mojang
`downloadclient 1.12.2 TestClient fabric` - скачать клиент с официального сервера Mojang + Fabric
`downloadclient 1.12.2 TestClient mirror` - найти и скачать клиент с зеркал, указаных в конфиге
`downloadclient 1.12.2 TestClient fabric` - скачать клиент с официального сервера Mojang + установить в сборку Fabric
`downloadclient 1.12.2-fabric TestClient mirror` - найти и скачать клиент с зеркал, указаных в конфиге
83 changes: 50 additions & 33 deletions docs/basic/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,68 @@

## Установка и настройка

После того, как вы скачали лаунчер-сервер, расположите его в любой папке и запустите его.
Сервер создаст все нужные для работы папки и файлы.
После чего вы можете выключить сервер и произвести его настройку.
Все настройки хранятся в файле `LauncherServerConfig.json`.
После того, как вы скачали лаунчсервер, расположите его в любой папке и запустите его.
Сервер создаст все нужные для работы папки и файлы и после чего выключится.
После чего вы можете произвести его настройку.
Все настройки хранятся в файле `LauncherServerConfig.hjson`.
Ниже будет представлен его пример с описанием всех настроек.

```json
```hjson
{
"configVersion": 0,
"projectID": "00000000-0000-0000-0000-000000000000",
"lang": "ru",
"env": "dev",
"mirrors": ["https://example.aurora-launcher.ru/"],
"auth": {
"type": "accept"
},
"ws": {
"address": "ws://localhost:1370/",
"ip": "0.0.0.0",
"port": 1370,
"enableListing": true,
"hideListing": false,
"useSSL": false,
"ssl": {
"cert": "/path/to/cert.pem",
"key": "/path/to/key.pem"
configVersion: 0
projectID: c83f8c24-6207-45ce-8df4-671f2cb9e137
lang: ru
branch: stable
env: dev
mirrors: []
auth:
{
type: accept
}
api:
{
addresses:
{
web: http://localhost:1370/
websocket: ws://localhost:1370/ws
}
host: 0.0.0.0
port: 1370
useSSL: false
ssl:
{
cert: /path/to/cert.pem
key: /path/to/key.pem
}
disableListing: false
hideListing: false
injector:
{
skinDomains: []
}
}
}
}
```

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

`configVersion` - версия формата текущего конфига, на данный момент не используется
`projectID` - уникальный ID проекта, генерируется при первом запуске и используется в некоторых местах в коде лаунчера/лаунчер-сервера
`lang` - язык, используемый для вывода информации в лаунчер-сервере. Возможные на данный момент варианты `ru` и `en` для русского и англиского языков соответственно
`env` - режим работы лаунчер-сервера. Возможные варианты: prod, debug и dev. На данный момент не используется
`projectID` - уникальный ID проекта, генерируется при первом запуске и используется в некоторых местах в коде лаунчера/лаунчсервера
`lang` - язык, используемый для вывода информации в лаунчсервере. Возможные на данный момент варианты `ru` и `en` для русского и англиского языков соответственно
`env` - режим работы лаунчсервера. Возможные варианты: prod, debug и dev. На данный момент не используется
`mirrors` - список зеркал, для скачивания файлов игры. Для получения подробной информации смотрите раздел [Загрузка клиентов](clients.md)
`auth` - блок настроек методов авторизации и получения скинов, подробнее в разделе [Настройка авторизации](#)
`ws` - блок настроек подключения к лаунчер-серверу. Содержит следующие настройки:
`api` - блок настроек подключения к лаунчсерверу. Содержит следующие настройки:

- `address` - Внешний адрес, по которому лаунчер-сервер будет доступен из интернета
- `ip` - внутренный IP, с которого лаунчер-сервер будет слушать запросы. Не трогать, если не знаете что это и как работает
- `port` - порт, который будет слушать лаунчер-сервер. Аналогично предыдущему пункту
- `enableListing` - Включить отдачу папок и файлов силами лаунчер-сервера, рекомендуеся отключать при проксировании файлов, например через Nginx
- `addresses` - Список внешних адресов, по которым лаунчсервер будет доступен из интернета
- - `web` - Адрес по которому будет доступен сервер отдачи файлов и взаимодействия с authlib инжектором
- - `websocket` - Адрес по которому будет доступен сервер взаимодействия с лаунчерами
- `ip` - внутренный IP, с которого лаунчсервер будет слушать запросы. Не трогать, если не знаете что это и как работает
- `port` - порт, который будет слушать лаунчсервер. Аналогично предыдущему пункту
- `enableListing` - Включить отдачу папок и файлов силами лаунчсервера, рекомендуеся отключать при проксировании файлов, например через Nginx
- `hideListing` - Отключить вывод списка папок и файлов, не работает если `enableListing` установлен в начении `true`
- `useSSL` - Использовать SSL сертификат для сервера. При использовании сертификата не забудьте поменять в `address` url с `ws` на `wss`
- `ssl` - пути для используемых файлов сертификата в PEM формате. Можно указывать как абсолютный так и относительный (из директории в которой был запущен лаунчер-сервер) путь до файлов. Подробнее о параметрах [cert и key](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)
- `ssl` - пути для используемых файлов сертификата в PEM формате. Можно указывать как абсолютный так и относительный (из директории в которой был запущен лаунчсервер) путь до файлов. Подробнее о параметрах [cert и key](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)

Для работы с защищённым подключением с использованием SSL сертификата рекомендуется вместо настройки `ssl` в лаунчсервере использовать проксирование сервера через Nginx. Данный подход позволяет более удобно настраивать подключение (например с использованием автоматизированных скриптов certbot-a), а также переложить часть нагрузки с Node.js сервера на Nginx.
32 changes: 3 additions & 29 deletions docs/for-developers/api/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,10 @@
Данный раздел в процессе обновления
:::

API для общения лаунчера с лаунчер-сервером реализован посредством клиент-серверного подключения через [WebSocket](https://developer.mozilla.org/ru/docs/Web/API/WebSocket).
Обмен данными осуществляется в формате JSON, используя технологию [RPC](https://ru.wikipedia.org/wiki/Удалённый_вызов_процедур).
Протокол обмена данных основан на спецификации JSON-RPC 2.0.
API для общения лаунчера с лаунчсервером реализован с помощью библиотеки [Aurora RPC](https://rpc.aurora-team.ru).\
Информацию о работе библиотеки и используемом протоколе можно посмотреть [здесь](https://rpc.aurora-team.ru/guide/introduction.html).

Примеры типизации request/response на ЯП Typescript:

```ts
interface Request {
id?: number | string;
method: string;
params: object | array;
}

interface Response {
id: number | string;
result: object | array;
}
```

При возврате ошибки используется следующий тип:

```ts
interface ResponseError {
id: number | string;
error: {
code: number;
message: string;
};
}
```
Ниже будут перечислены методы API, доступные для использования в лаунчере.

## Аутентификация

Expand Down
24 changes: 9 additions & 15 deletions docs/for-developers/mirrors.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,24 @@
При создании своего зеркала нужно придерживаться следущей структуры:

```
assets
└──── 1.7.0.zip
1.12.2.zip
...
1.16.2.zip
clients
└──── 1.7.10.json
1.7.0.zip
1.12.2.json
1.12.2.zip
...
1.16.2.json
1.16.2.zip
1.20.2.json
1.20.2.zip
```

`assets` - папка с архивами ассетов в `zip` формате<br>
`clients` - папка с архивами клиентов в `zip` формате и профилями в формате `json`

При скачивании ассетов/клиента название архива является названием ассетов/клиента.
`clients` - папка с архивами клиентов в `zip` формате и профилями в формате `json`.

Т.е. при скачивании ассетов командой `downloadasset`, например `downloadasset 1.16.2 asset1.16.2`, будут выкачиватся ассеты с архива `1.16.2.zip`.
Каждая сборка сохраняется в отдельном архиве и должна быть укомплектована `json` профилем. Профиль должен соответствовать формату используемому в лаунчсервере.\
Рекомендуется начинать сборку клиента именно с помощью лаунчсервера. Так вы допустите меньше ошибок.

Аналогично и для клиентов, при использовании команды `downloadclient`, например `downloadclient 1.16.2-fabric Test`, будет выкачиваться клиент с архива `1.16.2-fabric.zip`.
При скачивании клиента пользователями название архива является названием клиента.\
Т.е. при скачивании клиента командой `downloadclient`, например `downloadclient 1.20.2-fabric TestClient mirror`, будет выкачиваться клиент с архива `1.20.2-fabric.zip` и профиля `1.20.2-fabric.json`.

Так же рядом можно спокойно класть любые файлы, например сборки серверов, доп. конфиги, установщики java и др.
Названия сборок могут быть какими угодно, на ваше усмотрение. Но для удобства рекомендуется соответствовать формату `<версия игры>-<название сборки>`. И по возможности не содерать пробелы, а также быть уникальными.

Главное не нарушать базовую структуру папок `assets/clients`.
Так же рядом (не в папке `clients`, а уровнем выше) можно спокойно класть любые файлы, например сборки серверов, доп. конфиги, установщики java и др.
Loading

0 comments on commit 11151d0

Please sign in to comment.