0.2.5. Добавление файлового мененджера
Ссылка на Wiki
Основные изменения
- Добавление файлового менеджера во фронтенде по маршруту
/file-manager - Добавление возможности работы без авторизации
- В файле
config.jsonесть переменнаяdisableFrontendAuth. По дефолту, переменная установлена наfalse(то есть, работа с авторизацией), но если изменить её наtrue, то на бекенде и фронтенде отключается проверки авторизации. - В config.json добавлена переменная:
"disableFrontendAuth": false- По умолчанию: false — авторизация включена.
- Если установить в true, проверки авторизации отключаются как на бекенде, так и на фронтенде.
- Поддержка работы с удалённых устройств
- Теперь фронтенд может взаимодействовать с бекендом не только через
localhost.
Для этого добавлена переменная окружения:
REACT_APP_API_URL= - Если переменная не указана, используется значение по умолчанию: http://localhost:3001.
- Это позволяет запускать фронтенд на одном устройстве и подключаться к API на другом (например, по локальной сети).
Пример корректной переменной:
REACT_APP_API_URL=http://192.168.20.184:3001
- Добавлен 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 (по паролю).