Releases: crazykivi/MCStack
Release list
0.2.6. Adding a Spigot
⚠️ Disclaimer
This project is still in development. The translation is being handled by mysterious forces (AI), so expect some glitches and weirdness along the way. The original language of this project is Russian.
🔄 Note
This project is still being translated. Currently, only the Wiki documentation is being translated — the backend and frontend parts of the project have not been translated yet.
Show description in English
0.2.6 — Adding a Spigot
Wiki Link
https://outline.nikitaredk0.ru/s/682c860b-97f6-452a-9a91-899b2df5ee63
Main Changes
1. Adding a Spigot
- Spigot has been added to the project.
Requirements
To run the project, you will need:
- Internet access (for downloading Java and server files)
- Docker version 18.06.0 or newer
- Docker Compose version 1.27.0 or newer
How to Run the Project
Option 1: Clone the Repository
git clone https://github.com/crazykivi/MCStack.git
cd MCStackOption 2: Download a Release Archive
You can download ready-made release packages with pre-configured docker-compose.yml, .env, and launch scripts from the Releases page.
Option 3: Manual Setup
Create a file named docker-compose.yml with content from the repository.
Launch Instructions
1. Download the Project
1. Clone the repository:
git clone https://github.com/crazykivi/MCStack
cd MCStack2. Or download one of the archives from releases:
2. Configure the .env File (if needed)
3. Launch the Project
- Use the Launch Script (
start.batorstart.sh)
- For Windows: just run
start.bat - For Linux (Ubuntu or Debian): make the script executable:
chmod +x start.sh
./start.sh- Or start manually via Docker Compose:
docker compose up -dПоказать описание на русском
0.2.6 — Добавление Spigot
Ссылка на Wiki
https://outline.nikitaredk0.ru/s/682c860b-97f6-452a-9a91-899b2df5ee63
Основные изменения
1. Добавление Spigot
- В проект был добавлен Spigot
Требования к запуску
Для работы проекта требуется:
- Доступ к интернету для скачивания Java и серверных файлов.
- Docker (версия 18.06.0 или выше).
- Docker Compose (версия 1.27.0 или выше).
Как запустить проект
Вариант 1: Клонирование репозитория
git clone https://github.com/crazykivi/MCStack.git
cd MCStackВариант 2: Скачать архив из релизов
Вы можете скачать уже подготовленный архив с docker-compose.yml, .env, и скриптами запуска в разделе Releases.
Вариант 3: Ручное создание docker-compose.yml
Создайте файл docker-compose.yml с содержимым из репозитория.
Способы запуска:
-
Скачайте проект
-
Склонируйте репозиторий:
git clone https://github.com/crazykivi/MCStack cd MCStack
-
Или скачайте один из архивов, доступных в релизных версия: Релизные версии
-
-
Настройка .env файла (если требуется)
-
Запустите проект
-
Запустите скрипт (
start.batилиstart.sh)Для Windows: просто запустите
start.batДля Linux (Ubuntu или Debian) нужно сделать файл исполняемым:
chmod +x start.sh
После чего запустите скрипт ./start.sh
-
Или запустите проект вручную с помощью Docker Compose
docker compose up -d
0.2.5311. Transfer to Docker Hub
⚠️ Disclaimer
This project is still in development. The translation is being handled by mysterious forces (AI), so expect some glitches and weirdness along the way. The original language of this project is Russian.
🔄 Note
This project is still being translated. Currently, only the Wiki documentation is being translated — the backend and frontend parts of the project have not been translated yet.
Show description in English
0.2.531 — Migration to Docker Hub
Wiki Link
https://outline.nikitaredk0.ru/s/682c860b-97f6-452a-9a91-899b2df5ee63
Main Changes
1. Encoding Fix
- Project is now fully migrated to Docker Hub for easier deployment.
Requirements
To run the project, you will need:
- Internet access (for downloading Java and server files)
- Docker version 18.06.0 or newer
- Docker Compose version 1.27.0 or newer
How to Run the Project
Option 1: Clone the Repository
git clone https://github.com/crazykivi/MCStack.git
cd MCStackOption 2: Download a Release Archive
You can download ready-made release packages with pre-configured docker-compose.yml, .env, and launch scripts from the Releases page.
Option 3: Manual Setup
Create a file named docker-compose.yml with content from the repository.
Launch Instructions
1. Download the Project
1. Clone the repository:
git clone https://github.com/crazykivi/MCStack
cd MCStack2. Or download one of the archives from releases:
2. Configure the .env File (if needed)
3. Launch the Project
- Use the Launch Script (
start.batorstart.sh)
- For Windows: just run
start.bat - For Linux (Ubuntu or Debian): make the script executable:
chmod +x start.sh
./start.sh- Or start manually via Docker Compose:
docker compose up -dПоказать описание на русском
0.2.531 — Переход на Docker Hub
Ссылка на Wiki
https://outline.nikitaredk0.ru/s/682c860b-97f6-452a-9a91-899b2df5ee63
Основные изменения
1. Исправление кодировки
- Переход на Docker Hub
Требования к запуску
Для работы проекта требуется:
- Доступ к интернету для скачивания Java и серверных файлов.
- Docker (версия 18.06.0 или выше).
- Docker Compose (версия 1.27.0 или выше).
Как запустить проект
Вариант 1: Клонирование репозитория
git clone https://github.com/crazykivi/MCStack.git
cd MCStackВариант 2: Скачать архив из релизов
Вы можете скачать уже подготовленный архив с docker-compose.yml, .env, и скриптами запуска в разделе Releases.
Вариант 3: Ручное создание docker-compose.yml
Создайте файл docker-compose.yml с содержимым из репозитория.
Способы запуска:
-
Скачайте проект
-
Склонируйте репозиторий:
git clone https://github.com/crazykivi/MCStack cd MCStack
-
Или скачайте один из архивов, доступных в релизных версия: Релизные версии
-
-
Настройка .env файла (если требуется)
-
Запустите проект
-
Запустите скрипт (
start.batилиstart.sh)Для Windows: просто запустите
start.batДля Linux (Ubuntu или Debian) нужно сделать файл исполняемым:
chmod +x start.sh
После чего запустите скрипт ./start.sh
-
Или запустите проект вручную с помощью Docker Compose
docker compose up -d
0.2.531. Replace Cyrillic with Latin in Launch Scripts
⚠️ Disclaimer
This project is still in development. The translation is being handled by mysterious forces (AI), so expect some glitches and weirdness along the way. The original language of this project is Russian.
🔄 Note
This project is still being translated. Currently, only the Wiki documentation is being translated — the backend and frontend parts of the project have not been translated yet.
🇬🇧 Show description in English
Link to Wiki
https://outline.nikitaredk0.ru/s/044157a9-2709-426f-8f95-4a4255ce6c48
Main Changes
1. Fixed Cyrillic to Latin Encoding
- One change only: Cyrillic characters were removed because encoding issues caused many errors.
Running the Project
To run the project, you will need:
- Internet access to download Java and server files.
- Docker (version 18.06.0 or higher) and Docker Compose (version 1.27.0 or higher).
How to Run
- Clone the repository:
git clone https://github.com/crazykivi/minecraft-backend.git
cd minecraft-backend-
Or download a release archive of your choice.
-
Run the script
start.bat(for Windows) orstart.sh(for Ubuntu and Debian):
For Linux (Ubuntu or Debian), make the file executable:
chmod +x start.shThen run the script:
./start.sh
- Or manually launch the project using Docker Compose:
docker compose up -d🇷🇺 Показать описание на русском
0.2.531 Замена кириллицы на латиницу в скриптах запуска
Ссылка на Wiki
https://outline.nikitaredk0.ru/s/682c860b-97f6-452a-9a91-899b2df5ee63
Основные изменения
1. Исправление кириллицы на латиницу
- Изменение одно: убрана кириллица, так как из-за кодировки было множество ошибок
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания 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 -d0.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 (по паролю).
0.2.51. Переработка системы запуска
Ссылка на Wiki
Основные изменения
- Написаны файлы
start.shиstart.batскрипты для удобного запуска на Linux (Ubuntu и Debian) и Windows соответственно
start.sh:- Скрипт автоматически проверяет наличие Docker и Docker Compose.
- Если Docker не установлен, то скрипт автоматически предлагает установить их через
apt. - Запуск проекта:
- Поддерживается запуск профилей:
all(запуск всех компонентов),local-redis(запуск backend и redis, без frontend),frontend(запуск backend и frontend, без redis),api(запуск только backend). - Поддерживается остановка контейнеров.
- Поддерживается просмотр логов (
docker compose logs -f). - Поддерживается перезапуск контейнеров (
docker compose restart).
- Поддерживается запуск профилей:
- Также по ходу исправил совместимость с
docker compose, вместо устаревшегоdocker-compose. - Также скрипт может обрабатывать ситуации, есть ли есть поддержки
sudoи дописывает её, если это необходимо.
start.bat:- Скрипт автоматически проверяет наличие Docker Desktop.
- Если Docker не установлен, то скрипт автоматически скачать и установить его.
- Запуск проекта:
- Поддерживается запуск профилей:
all(запуск всех компонентов),local-redis(запуск backend и redis, без frontend),frontend(запуск backend и frontend, без redis),api(запуск только backend). - Поддерживается остановка контейнеров
- Поддерживается просмотр логов (
docker compose logs -f). - Поддерживается перезапуск контейнеров (
docker compose restart).
- Поддерживается запуск профилей:
- Также по ходу исправил совместимость с
docker compose, вместо устаревшегоdocker-compose.
⚠️ Возможные ошибки
При запуске start.bat возможна ошибка кодировки:

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

В будущих версия в скриптах запуска будет убрана кириллица.
Конфигурация
Краткая инструкция по настройке .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 (по паролю).
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 (по паролю).
0.2.45. Paper релиз
Основные изменения
- Добавление для сборки Paper
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания 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Планы:
- Добавление Vanilla.
- Добавление автовыбора Java для сервера.
- Добавление сборки проекта через Docker.
- Добавление Forge.
- Добавление системы настройки логирования.
- Добавление аутентификации к маршрутам.
- Добавление маршрута для отправки команд серверу.
- Добавление Frontend для управления сервером (React).
- Расширить функционал Frontend.
- Добавление Fabric.
- Добавление Paper.
- Добавление Spigot.
- Добавление снапшот и не стабильных версий (a, b и более старых, по возможности).
- Добавление Purpur, Folia.
- Добавление Quilt.
0.2.42. Fabric релиз
Основные изменения
- Добавление для сборки Fabric
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания 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Планы:
- Добавление Vanilla.
- Добавление автовыбора Java для сервера.
- Добавление сборки проекта через Docker.
- Добавление Forge.
- Добавление системы настройки логирования.
- Добавление аутентификации к маршрутам.
- Добавление маршрута для отправки команд серверу.
- Добавление Frontend для управления сервером (React).
- Расширить функционал Frontend.
- Добавление Fabric.
- Добавление Paper, Spigot.
- Добавление снапшот и не стабильных версий (a, b и более старых, по возможности).
- Добавление Purpur, Folia.
- Добавление Quilt.
0.2.41. Frontend релиз
Основные изменения
-
Маршрут
/restartтеперь корректно работает с параметромcore:- Добавлена поддержка сохранения параметра
core(например,forge) при перезапуске сервера. - Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
- Добавлена поддержка сохранения параметра
-
Маршруты /start и /stop
- Улучшена логика обработки параметров при запуске и остановке сервера.
- Добавлена проверка корректности переданных параметров (например, версия Java, тип сервера).
- Исправлены ошибки, связанные с некорректным завершением процессов при остановке сервера.
-
Добавление WebSocket
Была добавлена поддержка WebSocket:- Реализовано взаимодействие между фронтендом и бэкендом в реальном времени.
- Добавлены события для отслеживания состояния сервера (запуск, остановка, количество игроков).
-
Добавлен фронтенд
Был добавлен функционал фронтенда:- Добавлен интерфейс для управления сервером через браузер.
- Реализованы кнопки для запуска, остановки и перезапуска сервера.
- Добавлен динамический вывод информации о состоянии сервера (память, игроки, логи).
- Авторизация и регистрация:
Добавлена система авторизации и регистрации на фронтенде:- Администратор может регистрироваться и входить в систему.
- Добавлена защита маршрутов API через JWT-токены.
- Удален устаревший механизм аутентификации через API_PASSWORD.
-
Автосборка фронтенда
Была добавлена автосборка фронтенда.- Фронтенд теперь собирается автоматически вместе с бэкендом через docker-compose.
- Добавлена переменная COMPOSE_PROFILES, позволяющая управлять сборкой фронтенда.
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания 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Планы:
- Добавление Vanilla.
- Добавление автовыбора Java для сервера.
- Добавление сборки проекта через Docker.
- Добавление Forge.
- Добавление системы настройки логирования.
- Добавление аутентификации к маршрутам.
- Добавление маршрута для отправки команд серверу
- Добавление Frontend для управления сервером (React).
- Добавление Fabric.
- Добавление Paper, Spigot.
- Добавление снапшот и не стабильных версий (a, b и более старых, по возможности).
- Добавление Purpur, Folia.
- Добавление Quilt.
0.2.23. Первый релиз
Основные изменения
-
Маршрут
/restartтеперь корректно работает с параметромcore:- Добавлена поддержка сохранения параметра
core(например,forge) при перезапуске сервера. - Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
- Добавлена поддержка сохранения параметра
-
Автоматическое использование последних параметров:
- Теперь маршрут
/restartавтоматически использует последние запущенные параметры (type,version,core), если они не указаны.
- Теперь маршрут
-
Маршруты
/startи/stopмодифицированы:- Логика запуска и остановки сервера вынесена в отдельные функции (
startServerиstopServer). - Параметры сервера (
type,version,core) теперь сохраняются в памяти после запуска.
- Логика запуска и остановки сервера вынесена в отдельные функции (
Улучшения
-
Устранено дублирование кода:
- Логика запуска и остановки сервера теперь переиспользуется в маршрутах
/start,/stopи/restart.
- Логика запуска и остановки сервера теперь переиспользуется в маршрутах
-
Улучшена читаемость кода:
- Маршруты стали компактнее и проще для понимания благодаря вынесению логики в отдельные функции.
-
Исправлены ошибки:
- Устранена проблема с переназначением переменных в маршруте
/restart.
- Устранена проблема с переназначением переменных в маршруте
Пример использования
Запуск сервера
Пример запроса (GET):
curl "http://192.168.20.184:3001/start?type=vanilla&version=1.20.1" \
-H "Authorization: 123"
Логика работы:
- Проверяется наличие необходимой версии Java.
- Скачивается и устанавливается Java, если она отсутствует (при первом запуске контейнера всегда происходит скачивание Java).
- Скачивается JAR-файл сервера Minecraft указанной версии.
- Сервер запускается с указанными параметрами памяти.
Остановка сервера
Пример запроса (GET):
curl "http://192.168.20.184:3001/stop" \
-H "Authorization: 123"
Логика работы:
- Функция stopMinecraftServer отправляет команду stop в консоль сервера и дожидается завершения процесса.
Рестарт сервера
Пример запроса (GET):
curl "http://192.168.20.184:3001/restart?type=vanilla&version=1.20.1" \
-H "Authorization: 123"
Логика работы:
- Выполняется шаг "Остановка сервера".
- Выполняется шаг "Запуск сервера".
- Примечание: В текущей версии необходимо передавать параметры (type и version) при рестарте. В будущем это будет исправлено.
Сохранение мира
Пример запроса:
curl "http://192.168.20.184:3001/start?type=vanilla&version=1.20.1" \
-H "Authorization: 123"
Логика работы:
- На сервере выполнится команда "save-all", которая сохранит мир
Получение информации о сервере
Пример запроса (GET):
curl "http://192.168.20.184:3001/status" \
-H "Authorization: 123"
Логика работы:
- Выполняется функция getMemoryUsage для получения данных об использовании оперативной памяти.
- Выполняется функция getPlayerCount для получения списка игроков на сервере (пока не работает, используется заглушка).
Отправление команд на сервер
Добавил возможность отправить любую команду на маршрут /command
Пример запроса (POST):
curl -X POST http://192.168.20.184:3001/command \
-H "Authorization: 123" \
-H "Content-Type: application/json" \
-d '{"command": "gamemode survival superassa"}'
!Поле command (обязательное): строка, содержащая команду, которую нужно выполнить на сервере.!
Пример: "gamemode survival superassa", "time set day", "say Hello World!".
Запуск проекта
Для запуска проекта требуется:
- Доступ к интернету для скачивания 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Планы:
- Добавление Vanilla.
- Добавление автовыбора Java для сервера.
- Добавление сборки проекта через Docker.
- Добавление Forge.
- Добавление системы настройки логирования.
- Добавление аутентификации к маршрутам.
- Добавление маршрута для отправки команд серверу
- Добавление Fabric.
- Добавление Paper, Spigot.
- Добавление снапшот и не стабильных версий (a, b и более старых, по возможности).
- Добавление Purpur, Folia.
- Добавление Quilt.
- Добавление Frontend для управления сервером (React).
