0.2.53. Расширение функционала файлового менеджера
Ссылка на Wiki
Основные изменения
1. Расширение функционала файлового менеджера (Frontend)
- Добавление Drag-and-drop для переноса файлов в рабочую панель файлового менеджера
- Реализован выбор папки через кнопку "Выбор папки для загрузки"
- Использован File System Access API (window.showDirectoryPicker()) — позволяет выбрать папку и рекурсивно считать все файлы внутри неё, включая вложенные папки
- Сохранена полная структура каталогов при загрузке
- Поддерживается перезапись существующих файлов , а также автоматическое создание отсутствующих папок
Пример структуры
Если ты выбираешь папку:
test/
├── file.txt
└── images/
└── image.png
На сервере будет создано:
/app/server/test/file.txt
/app/server/test/images/image.png
⚠️ Важно
- Функция работает только в Chromium-браузерах (Chrome, Edge и т.п.)
⚠️ Возможные ошибки
При запуске start.bat возможна ошибка кодировки:

Если у вас такая ошибка, не переживайте, вы можете открыть start.bat через NotePad++ и нажать "Кодировки"-> "Преобразовать в UTF-8".

В будущих версия в скриптах запуска будет убрана кириллица.
2. Улучшения бэкенда
2.1 Обработка relativePath
- Сервер теперь корректно обрабатывает пути, отправленные из фронтенда
- Если на месте новой папки находится файл — он удаляется , чтобы освободить место для директории
- Путь формируется как:
path.join(fullPath, dirStructure)
где fullPath — это /app/server, а dirStructure — структура из relativePath
2.2 Перезапись файлов:
- Если файл уже существует — он перезаписывается без ошибок
Конфигурация
Краткая инструкция по настройке .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
Параметры конфигурации:
DATABASE_PATHотвечает за стандартный путь базы данных (для авторизации используется SQlite)JWT_SECRETиспользуется для шифрования токена (авторизация фронтенда)COMPOSE_PROFILESявляется переменной, отвечающей за возможность сборки Frontend и Backend или просто Backend. Если нет нужды во Frontend, можно оставить перменную пустой:
COMPOSE_PROFILES=В таком случае, Frontend и Redis собираться не будет
- Если нет нужды в Redis (уже есть настроенный), то конфиг к нему также нужно прописать в переменных, а также нужно выбрать профиль
COMPOSE_PROFILES=frontendилиCOMPOSE_PROFILES=(если не требуется Frontend):
REDIS_HOST=redis
REDIS_PORT=6379
Файл .env уже создан в корне проекта, для локальной работы можно ничего не менять.
Краткая инструкция по настройке config.json файла
{
"serverDirectory": "./server",
"javaPath": "./java/jdk/bin/java",
"javaDownloads": {
"linux": {
"base": "https://api.adoptium.net/v3/binary/latest/{version}/ga/linux/x64/jdk/hotspot/normal/adoptium?project=jdk"
}
},
"maxMemory": "2G",
"minMemory": "1G",
"defaultServerType": "vanilla",
"defaultServerVersion": "1.21.5",
"disableFrontendAuth": false
}Параметры конфигурации:
serverDirectory: Путь к папке, где будут храниться файлы сервера.javaPath: Путь к исполняемому файлу Java. Если Java еще не установлена, приложение автоматически скачает её.javaDownloads: Настройки для скачивания Java. Включает базовый URL для Linux.maxMemory: Максимальный объем оперативной памяти, выделяемый серверу (например, 2G).minMemory: Минимальный объем оперативной памяти, выделяемый серверу (например, 1G).defaultServerType: Параметр стандартного типа сервера, если параметр не передан в запросе запуска (vanilla для стандартного сервера Minecraft).defaultServerVersion: Параметр стандартной версии сервера, если параметр не передан в запросе запуска (1.21.5 для стандартного сервера Minecraft).disableFrontendAuth: Параметр для отключения и включения авторизации для Frontend и Backend- По умолчанию — авторизация включена:
false - Проверки авторизации отключаются как на Backend, так и на Frontend:
true
- По умолчанию — авторизация включена:
Краткая инструкция по настройке logger.json файла
{
"logging": {
"enabled": true,
"debug": false,
"java": true,
"commandOutup": true,
"commandError": true,
"commandSent": true,
"minecraftServer": true,
"vanilla": true,
"forge": true,
"fabric": true,
"paper": true,
"spigot": true,
"webSocket": false,
"configLog": false,
"redis": true
}
}Параметры конфигурации:
enabled: Глобальный переключатель логирования.true— все логирование включено /false— всё логирование отключается.
debug: Уровень детализации логов:true— выводятся подробные дебаг-сообщения /false— выключить вывод дебаг сообщений.
java: Логирование событий, связанных с запуском и работой Java:true— включить вывод логов Java /false— выключить вывод логов Java .
commandOutput: Вывод стандартных сообщений команд (stdout).true— включить вывод команд /false— отключить вывод команд.
commandError: Логирование ошибок выполнения команд (stderr).true— выводить ошибки команд /false— не выводить ошибки команд.
commandSent: Логирование отправленных команд на сервер.true— выводить каждую отправленную команду /false— не выводить каждую отправленную команду.
minecraftServer: Общее логирование событий сервера Minecraft.true— включить логи сервера /false— отключить логи сервера.
vanilla: Логирование событий для сервера типаVanilla.true— включено /false— выключено.
forge: Логирование событий для сервера типаForge.true— включено /false— выключено.
fabric: Логирование событий для сервера типаFabric.true— включено /false— выключено.
paper: Логирование событий для сервера типаPaper.true— включено /false— выключено.
spigot: Логирование событий для сервера типаSpigot.true— включено /false— выключено.
webSocket: Логирование событий WebSocket-соединения (например, обмен данными между клиентом и сервером).true— включено /false— выключено.
configLog: Логирование изменений конфигурационных файлов.true— записывать изменения в конфигах /false— не записывать.
redis: Логирование взаимодействия сRedis(кэширование, чтение/запись данных).true— включено /false— выключено.
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания Java и серверных файлов.
- Docker (версии 18.06.0 или выше) и Docker Compose (версии 1.27.0 или выше).
Запуск
- Склонируйте репозиторий:
git clone https://github.com/crazykivi/minecraft-backend.git
cd minecraft-backend- Или скачайте выбранный релиз.
- Запустите скрипт start.bat (для Windows) или для start.sh (для Ubuntu и Debian):
Для Linux (Ubuntu или Debian) нужно сделать файл исполняемым:
chmod +x start.shПосле чего запустите скрипт ./start.sh
- Или запустите проект вручную с помощью Docker Compose
docker compose up -dПланы:
- Добавление Vanilla.
- Добавление авто выбора Java для сервера.
- Добавление сборки проекта через Docker.
- Добавление скриптов для удобного запуска
- Добавление Forge.
- Добавление системы настройки логирования.
- Добавление аутентификации к маршрутам.
- Добавление маршрута для отправки команд серверу
- Добавление Fabric.
- Добавление Paper.
- Добавление Spigot.
- Добавление снапшотов и не стабильных версий (a, b и более старых, по возможности).
- Добавление Purpur, Folia.
- Добавление Quilt.
- Добавление Frontend для управления сервером (React).
- Добавление расширенной возможности управления логированием.
- Добавление расширенного функционала для Frontend.
- Добавление возможности запуска нескольких серверов одновременно (под вопросом).
- Добавить файловый менеджер во Frontend.
- Вернуть возможность управления Backend без Frontend (по паролю).
