Skip to content

omkality/omkalitycraft

Repository files navigation

OmkalityCraft API

Python Litestar Docker Code style Ruff Types

CDN + API для лаунчера OmkalityCraft.

Требования

  • Python 3.14.2
  • uv
  • Docker и Docker Compose, если запускаете в контейнере

Переменные окружения

.env:

API_HOST=0.0.0.0
API_PORT=8000
WORKERS_NUM=4
HOST_CONTENT_ROOT=./data/content
CONTENT_ROOT=/data/content

Структура контента:

data/content/
  launcher/
    files/
    manifest.json
  instances/
    <instance_id>/
      files/
      manifest.json
      instance_config.json
      launch_profile.json

Запуск через Docker Compose

docker compose up -d --build

Проверка:

curl http://localhost:8000/health
curl http://localhost:8000/version

Остановка:

docker compose down

Виртуальное окружение для разработки

Создать виртуальное окружение и установить зависимости из всех групп:

uv venv --python 3.14.2
uv sync --all-groups

Активировать окружение в PowerShell:

.venv\Scripts\Activate.ps1

Проверка качества кода

Установить pre-commit hooks:

uv run pre-commit install

Запустить все проверки вручную:

uv run pre-commit run --all-files

Подготовка CDN-контента

Собрать data/content из локального лаунчера:

uv run python scripts/stage_launcher_content.py --source-root C:\Users\omka\Projects\omkality_launcher

Скрипт копирует bootstrap-файлы лаунчера, divinejourney2, создаёт instance_config.json, launch_profile.json и генерирует manifest-файлы. Правила берутся из src/settings.

После запуска API можно проверить endpoints:

curl http://localhost:8000/instances
curl http://localhost:8000/launcher/manifest
curl http://localhost:8000/instances/divinejourney2/launch-profile

Текущий CLI-прототип лаунчера лежит в client/launcher.py. Для ручной проверки его можно положить в корень тестовой копии лаунчера и запустить:

$env:OMKALITY_API_URL="http://localhost:8000"
python launcher.py

Генерация манифестов

Манифест лаунчера:

uv run python scripts/generate_manifest.py launcher

Манифест инстанса:

uv run python scripts/generate_manifest.py instance divinejourney2

Настройки manifest, instance_config и launch_profile лежат здесь:

src/settings/launcher/manifest.json
src/settings/instances/divinejourney2/manifest.json
src/settings/instances/divinejourney2/instance_config.json
src/settings/instances/divinejourney2/launch_profile.json

Например, JVM-память меняется в launch_profile.json, а правила игнора и soft-managed файлов — в instance_config.json.

Документация API

После запуска Swagger UI доступен по адресу:

http://localhost:8000/docs

Корневой адрес http://localhost:8000 автоматически перенаправляет на документацию.

About

CDN + API for OmkalityCraft launcher

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors