# Руководство по развертыванию ## Предварительные требования Для запуска платформы вам потребуются: - **Docker** и **Docker Compose** - **Git** - Сгенерированная пара RSA ключей для подписи профилей (private.pem, public.pem) - Доменное имя (для корректной работы SSL и Yggdrasil API) ## Структура проекта Проект использует Git Submodules. После клонирования репозитория необходимо инициализировать подмодули: ```bash git clone --recursive https://git.mrixs.me/minecraft-platform/platform.git # Или если уже склонировали: git submodule update --init --recursive ``` ## Конфигурация ### 1. Переменные окружения (.env) Создайте файл `.env` в корне проекта на основе примера. Основные переменные: ```ini APP_DOMAIN=yourdomain.com DATABASE_URL=postgres://user:password@db:5432/platform?sslmode=disable JWT_SECRET_KEY=super_secret_key_change_me CURSEFORGE_API_KEY=your_curseforge_api_key_here RSA_PRIVATE_KEY_PATH=/app/secrets/private_key.pem MODPACKS_STORAGE_PATH=/app/data/modpacks SKINS_STORAGE_PATH=/app/data/skins ``` ### 2. RSA Ключи Сгенерируйте ключи для подписи профилей Yggdrasil: ```bash mkdir -p secrets openssl genrsa -out secrets/private_key.pem 2048 openssl rsa -in secrets/private_key.pem -pubout -out secrets/public_key.pem ``` Файл `private_key.pem` должен быть доступен бэкенду (см. `docker-compose.yml`). ### 3. База данных При первом запуске необходимо применить миграции. Скрипты миграций находятся в `backend/scripts/migrations/`. Если вы используете Docker Compose, миграции можно применить вручную или добавить init-контейнер. Для ручного применения (пример с `psql`): ```bash # Подключение к контейнеру БД docker-compose exec db psql -U user -d platform # Внутри psql примените SQL файлы из backend/scripts/migrations/ ``` *Примечание: в будущих версиях планируется автоматическая миграция.* ## Запуск в Docker Compose Сборка и запуск всех сервисов: ```bash docker-compose up -d --build ``` Сервисы: - **frontend**: Статика и UI (доступен по http://localhost:80 или через Caddy) - **backend**: API сервер (http://backend:8080) - **db**: PostgreSQL - **caddy**: Reverse Proxy (автоматический HTTPS) ## Настройка Caddy (Reverse Proxy) В корне проекта находится `Caddyfile`. Отредактируйте его, указав ваш домен: ```caddyfile yourdomain.com { reverse_proxy /api/* backend:8080 reverse_proxy /authserver/* backend:8080 reverse_proxy /sessionserver/* backend:8080 # Frontend files root * /srv file_server try_files {path} /index.html } ``` ## Обновление Для обновления версий (после `git pull`): ```bash git submodule update --remote --merge docker-compose up -d --build ```