Skip to content

Releases: crazykivi/MCStack

0.2.6. Adding a Spigot

Choose a tag to compare

@crazykivi crazykivi released this 18 Jun 03:25

3e702509-0e16-41a0-a713-361f6ced69af

⚠️ 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 MCStack

Option 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 MCStack
2. Or download one of the archives from releases:  

GitHub Releases

2. Configure the .env File (if needed)

3. Launch the Project

  1. Use the Launch Script (start.bat or start.sh)
  • For Windows: just run start.bat
  • For Linux (Ubuntu or Debian): make the script executable:
chmod +x start.sh
./start.sh
  1. 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 с содержимым из репозитория.

Способы запуска:

  1. Скачайте проект

    1. Склонируйте репозиторий:

      git clone https://github.com/crazykivi/MCStack
      cd MCStack
    2. Или скачайте один из архивов, доступных в релизных версия: Релизные версии

  2. Настройка .env файла (если требуется)

  3. Запустите проект

  4. Запустите скрипт (start.bat или start.sh)

    Для Windows: просто запустите start.bat

    Для Linux (Ubuntu или Debian) нужно сделать файл исполняемым:

    chmod +x start.sh

    После чего запустите скрипт ./start.sh

  5. Или запустите проект вручную с помощью Docker Compose

    docker compose up -d

0.2.5311. Transfer to Docker Hub

Choose a tag to compare

@crazykivi crazykivi released this 17 Jun 07:46

3e702509-0e16-41a0-a713-361f6ced69af

⚠️ 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 MCStack

Option 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 MCStack
2. Or download one of the archives from releases:  

GitHub Releases

2. Configure the .env File (if needed)

3. Launch the Project

  1. Use the Launch Script (start.bat or start.sh)
  • For Windows: just run start.bat
  • For Linux (Ubuntu or Debian): make the script executable:
chmod +x start.sh
./start.sh
  1. 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 с содержимым из репозитория.

Способы запуска:

  1. Скачайте проект

    1. Склонируйте репозиторий:

      git clone https://github.com/crazykivi/MCStack
      cd MCStack
    2. Или скачайте один из архивов, доступных в релизных версия: Релизные версии

  2. Настройка .env файла (если требуется)

  3. Запустите проект

  4. Запустите скрипт (start.bat или start.sh)

    Для Windows: просто запустите start.bat

    Для Linux (Ubuntu или Debian) нужно сделать файл исполняемым:

    chmod +x start.sh

    После чего запустите скрипт ./start.sh

  5. Или запустите проект вручную с помощью Docker Compose

    docker compose up -d

0.2.531. Replace Cyrillic with Latin in Launch Scripts

Choose a tag to compare

@crazykivi crazykivi released this 26 May 02:26

3e702509-0e16-41a0-a713-361f6ced69af

⚠️ 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) or start.sh (for Ubuntu and Debian):

For Linux (Ubuntu or Debian), make the file executable:

chmod +x start.sh

Then 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 -d

0.2.53. Расширение функционала файлового менеджера

Choose a tag to compare

@crazykivi crazykivi released this 15 May 07:44

3e702509-0e16-41a0-a713-361f6ced69af

Ссылка на Wiki

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

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

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. Переработка системы запуска

Choose a tag to compare

@crazykivi crazykivi released this 14 May 04:27

3e702509-0e16-41a0-a713-361f6ced69af

Ссылка на Wiki

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

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

  1. Написаны файлы 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. Добавление файлового мененджера

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 (по паролю).

0.2.45. Paper релиз

Choose a tag to compare

@crazykivi crazykivi released this 30 Apr 05:08
1ae9731

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

  1. Добавление для сборки 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 релиз

Choose a tag to compare

@crazykivi crazykivi released this 28 Apr 07:32
1ae9731

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

  1. Добавление для сборки 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 релиз

Choose a tag to compare

@crazykivi crazykivi released this 25 Apr 09:34
1ae9731

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

  1. Маршрут /restart теперь корректно работает с параметром core:

    • Добавлена поддержка сохранения параметра core (например, forge) при перезапуске сервера.
    • Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
  2. Маршруты /start и /stop

    • Улучшена логика обработки параметров при запуске и остановке сервера.
    • Добавлена проверка корректности переданных параметров (например, версия Java, тип сервера).
    • Исправлены ошибки, связанные с некорректным завершением процессов при остановке сервера.
  3. Добавление WebSocket
    Была добавлена поддержка WebSocket:

    • Реализовано взаимодействие между фронтендом и бэкендом в реальном времени.
    • Добавлены события для отслеживания состояния сервера (запуск, остановка, количество игроков).
  4. Добавлен фронтенд
    Был добавлен функционал фронтенда:

    • Добавлен интерфейс для управления сервером через браузер.
    • Реализованы кнопки для запуска, остановки и перезапуска сервера.
    • Добавлен динамический вывод информации о состоянии сервера (память, игроки, логи).
    • Авторизация и регистрация:
      Добавлена система авторизации и регистрации на фронтенде:
      • Администратор может регистрироваться и входить в систему.
      • Добавлена защита маршрутов API через JWT-токены.
      • Удален устаревший механизм аутентификации через API_PASSWORD.
  5. Автосборка фронтенда
    Была добавлена автосборка фронтенда.

    • Фронтенд теперь собирается автоматически вместе с бэкендом через 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. Первый релиз

Choose a tag to compare

@crazykivi crazykivi released this 21 Apr 08:58

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

  1. Маршрут /restart теперь корректно работает с параметром core:

    • Добавлена поддержка сохранения параметра core (например, forge) при перезапуске сервера.
    • Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
  2. Автоматическое использование последних параметров:

    • Теперь маршрут /restart автоматически использует последние запущенные параметры (type, version, core), если они не указаны.
  3. Маршруты /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).