Files
platform/docs/DEPLOYMENT.md

103 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Руководство по развертыванию
## Предварительные требования
Для запуска платформы вам потребуются:
- **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
```