Files
platform/docs/DEPLOYMENT.md

3.5 KiB
Raw Permalink Blame History

Руководство по развертыванию

Предварительные требования

Для запуска платформы вам потребуются:

  • Docker и Docker Compose
  • Git
  • Сгенерированная пара RSA ключей для подписи профилей (private.pem, public.pem)
  • Доменное имя (для корректной работы SSL и Yggdrasil API)

Структура проекта

Проект использует Git Submodules. После клонирования репозитория необходимо инициализировать подмодули:

git clone --recursive https://git.mrixs.me/minecraft-platform/platform.git
# Или если уже склонировали:
git submodule update --init --recursive

Конфигурация

1. Переменные окружения (.env)

Создайте файл .env в корне проекта на основе примера. Основные переменные:

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:

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):

# Подключение к контейнеру БД
docker-compose exec db psql -U user -d platform

# Внутри psql примените SQL файлы из backend/scripts/migrations/

Примечание: в будущих версиях планируется автоматическая миграция.

Запуск в Docker Compose

Сборка и запуск всех сервисов:

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. Отредактируйте его, указав ваш домен:

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):

git submodule update --remote --merge
docker-compose up -d --build