diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 0000000..d47a766 --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,102 @@ +# Руководство по развертыванию + +## Предварительные требования + +Для запуска платформы вам потребуются: +- **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 +```