Skip to content

0.2.5. Добавление файлового мененджера

Choose a tag to compare

@crazykivi crazykivi released this 07 May 09:16

Ссылка на Wiki

https://outline.nikitaredk0.ru/s/9d2d3ed1-7ddd-485f-acf1-81a405415224/doc/minecraft-server-Vx0adnYoK3

Основные изменения

  1. Добавление файлового менеджера во фронтенде по маршруту /file-manager
  2. Добавление возможности работы без авторизации
  • В файле config.json есть переменная disableFrontendAuth. По дефолту, переменная установлена на false (то есть, работа с авторизацией), но если изменить её на true, то на бекенде и фронтенде отключается проверки авторизации.
  • В config.json добавлена переменная:
    "disableFrontendAuth": false
    • По умолчанию: false — авторизация включена.
    • Если установить в true, проверки авторизации отключаются как на бекенде, так и на фронтенде.
  1. Поддержка работы с удалённых устройств
  • Теперь фронтенд может взаимодействовать с бекендом не только через localhost.
    Для этого добавлена переменная окружения:
    REACT_APP_API_URL=
  • Если переменная не указана, используется значение по умолчанию: http://localhost:3001.
  • Это позволяет запускать фронтенд на одном устройстве и подключаться к API на другом (например, по локальной сети).
    Пример корректной переменной:
    REACT_APP_API_URL=http://192.168.20.184:3001
  1. Добавлен Redis
    Основные задачи Redis:
  • Кэширование логов сервера и команд
    • Логи терминала сохраняются в Redis.
    • Можно отслеживать историю команд и вывода даже между запросами.
  • Мониторинг ресурсов
    • Сохраняются данные о загрузке CPU, памяти, статусе сервера.
    • История хранится 24 часа.
    • Доступна через /history для графиков и диагностики.
  • Рассылка событий в реальном времени
    • Подписчики WebSocket-соединения получают обновления при добавлении новых записей в Redis.
    • Это позволяет динамически обновлять интерфейс без перезагрузок.
  • Файловый менеджер
    • Redis используется для кэширования структуры файлов и папок, а также их размеров — это позволяет значительно ускорить открытие директорий и избежать повторных операций чтения с диска.
  • Удобство и производительность
    • Данные хранятся в оперативной памяти для быстрого доступа к данным приложения.

Краткая инструкция по настройке .env файла

# Путь к базе данных SQLite
DATABASE_PATH=/app/data/users.db

# Секретный ключ для JWT
JWT_SECRET=obyazatelno_input_your_jwt_secret_key

# Настройки Redis (если используется внешний)
# REDIS_HOST=redis
# REDIS_PORT=6379

# Профили запуска:
COMPOSE_PROFILES=all  # Запуск всего (фронтенд + бекенд + redis)

# Альтернативы:
# COMPOSE_PROFILES=local-redis   # Без фронтенда, с Redis
# COMPOSE_PROFILES=frontend      # Без Redis, с фронтендом
# Убрать переменную COMPOSE_PROFILES — запустится только API

# URL бекенда для фронтенда
# Если не задано, используется http://localhost:3001
REACT_APP_API_URL=http://localhost:3001

Файл .env уже создан в корне проекта, для локальной работы можно ничего не менять.

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

Запуск проекта

Для запуска проекта требуется:

  • Доступ к интернету для скачивания Java и серверных файлов.
  • Docker (версии 18.06.0 или выше) и Docker Compose (версии 1.27.0 или выше).

Запуск

  • Склонируйте репозиторий:
git clone https://github.com/crazykivi/minecraft-backend.git
cd minecraft-backend
  • Запустите проект с помощью Docker Compose
docker-compose up -d
  • После, перейдите в любой браузер и перейдите по адресу http://localhost:3000/ или тот адрес, который вы указали в переменной REACT_APP_API_URL

Планы:

  • Добавление Vanilla.
  • Добавление авто выбора Java для сервера.
  • Добавление сборки проекта через Docker.
  • Добавление Forge.
  • Добавление системы настройки логирования.
  • Добавление аутентификации к маршрутам.
  • Добавление маршрута для отправки команд серверу
  • Добавление Fabric.
  • Добавление Paper.
  • Добавление Spigot.
  • Добавление снапшотов и не стабильных версий (a, b и более старых, по возможности).
  • Добавление Purpur, Folia.
  • Добавление Quilt.
  • Добавление Frontend для управления сервером (React).
  • Добавление расширенной возможности управления логированием.
  • Добавление расширенного функционала для Frontend.
  • Добавление возможности запуска нескольких серверов одновременно (под вопросом).
  • Добавить файловый менеджер во Frontend.
  • Вернуть возможность управления Backend без Frontend (по паролю).