Об этом проекте
# HyperCraft
**Панель управления Minecraft-серверами для самостоятельного хостинга — один бинарный файл, одна машина, любое количество серверов.**
HyperCraft — это легковесный инструмент управления, созданный специально для Minecraft-серверов. Он объединяет сложные задачи администрирования серверов в браузерном интерфейсе, позволяя пользователям легко управлять несколькими игровыми серверными инстансами без глубоких знаний Linux.
## Ключевые возможности
### Минимальное развёртывание
- **Один бинарный файл**: бэкенд и фронтенд упакованы вместе; на целевой машине не требуется устанавливать Go, Node.js, Java или любую другую среду выполнения.
- **Без внешних зависимостей**: не нужна база данных (например, MySQL/PostgreSQL), не нужен Docker — достаточно скачать и распаковать архив.
- **Режим демона**: панель работает как демон; даже если закрыть вкладку браузера, отключить сеть или перезагрузить роутер, серверные процессы продолжают работать.
### Мощное управление несколькими инстансами
- **Любое количество инстансов**: одновременный запуск нескольких Minecraft-серверов (Java Edition или Bedrock Edition) на одной машине.
- **Изящное управление**: поддержка запуска, корректной остановки, перезапуска и принудительного завершения. При корректной остановке сначала отправляется команда `stop` с ожиданием сохранения мира, и только по истечении тайм-аута отправляется сигнал завершения.
- **Автоперезапуск при сбое**: опциональная настройка автоматического восстановления при неожиданном падении сервера.
### Погружение в терминал
- **Настоящая терминальная консоль**: сервер работает на псевдотерминале с поддержкой автодополнения по Tab, цветного вывода и адаптации к ширине окна. Содержимое автодополнения обрабатывается ядром работающего сервера.
- **Переподключение при обрыве связи**: для записи истории вывода используется кольцевой буфер. После переподключения консоль автоматически дополняет пропущенные исторические логи, обеспечивая отсутствие дублирования и пропусков.
### Инструменты автоматизированного администрирования
- **Управление средой Java**: установка Eclipse Temurin JRE/JDK в один клик, поддержка сосуществования нескольких версий (например, одновременный запуск старого сервера 1.12 и последней версии). Панель автоматически определяет и устанавливает необходимую версию Java.
- **Библиотека ядер серверов**: встроенные источники загрузки ядер, таких как Paper, Velocity и других; одна загрузка может быть скопирована для использования любым количеством инстансов.
- **Управление плагинами**: поддержка загрузки плагинов с платформ Modrinth, Hangar, SpigotMC, GitHub Release и других. Предусмотрено два уровня управления — глобальная библиотека и уровень инстанса; каждая версия сохраняется отдельно для возможности отката.
- **Библиотека построек/маркетплейс**: поддержка импорта и разбора файлов `.schem`, возможность просмотра размеров и материалов, а также установка в указанный инстанс в один клик.
### Безопасность и мониторинг
- **Мониторинг ресурсов**: отображение в реальном времени графиков CPU/памяти для каждого инстанса, а также памяти, диска, CPU и сетевого трафика всей машины. Сбор данных выполняется демоном независимо и не зависит от состояния веб-страницы.
- **Безопасные настройки по умолчанию**: хеширование паролей PBKDF2-SHA256, ограничение скорости входа, ограничение одновременных подключений, сессионные cookie с HttpOnly + SameSite и проверка токена устройства.
- **Безопасность файлов**: все пути файловых операций изолированы через `os.Root` и строго ограничены каталогом инстанса, что предотвращает несанкционированный доступ.
### Прочие полезные функции
- **Редактор конфигурационных файлов**: представление `server.properties` в виде формы с сохранением комментариев и порядка ключей, автоматическим экранированием китайских символов и записью только изменённых значений.
- **История конфигураций**: для каждого инстанса ведётся отдельный Git-репозиторий с записями изменений конфигурации, поддерживается просмотр Diff и восстановление (примечание: резервное копирование данных мира не включено).
- **Среда баз данных**: запуск MySQL, PostgreSQL или MongoDB в один клик для плагинов, требующих поддержки баз данных.
- **Локальный терминал**: настоящий Shell машины, на которой работает панель (по умолчанию отключён), для удобного выполнения системных команд.
- **Самообновление панели**: замена бинарного файла и перезапуск на месте по клику в интерфейсе, с автоматическим откатом при неудаче.
## Быстрый старт
Результат сборки — однофайловый бинарник, поддерживающий архитектуры Linux amd64/arm64 и другие.
```bash
# 1. Создание каталога и загрузка
sudo mkdir -p /opt/hypercraft && cd /opt/hypercraft
sudo wget https://github.com/Lanscarlos/HyperCraft/releases/download/v0.4.0/hypercraft-0.4.0-linux-amd64.tar.gz
sudo tar -xzf hypercraft-0.4.0-linux-amd64.tar.gz --strip-components=1
# 2. Установка службы systemd
sudo cp hypercraft.service /etc/systemd/system/
sudo systemctl enable --now hypercraft
# 3. Просмотр начального пароля администратора
sudo journalctl -u hypercraft -f
```
Откройте `http://IP-вашего-сервера:19190` для входа. При первом запуске генерируется случайный пароль администратора и один раз выводится в лог.
> **Предупреждение о безопасности**: по умолчанию панель прослушивает незашифрованный HTTP. Если требуется доступ из публичной сети, обязательно настройте обратный прокси с TLS или используйте SSH-туннель.
## Обзор интерфейса
- **Панель управления**: карточное отображение состояния серверов, возможность прямого включения/выключения, предупреждения о диске закрепляются сверху.
- **Мастер создания инстанса**: пятишаговый процесс с выбором ядра, установкой Java и именованием инстанса.
- **Файловый менеджер**: поддержка загрузки перетаскиванием, докачки при обрыве, онлайн-редактирования конфигурационных файлов.
- **Адаптация для мобильных устройств**: на узких экранах приоритетно отображаются статус, включение/выключение и консоль; боковая панель сворачивается в режим ящика.
## Технические детали
- **Языки**: Go (бэкенд) + Vanilla JS (фронтенд, без зависимостей от UI-фреймворков).
- **Производительность**: постоянная куча панели — около 2 МБ.
- **Сборка**: для сборки из исходного кода требуются Go 1.25+ и Node 20+.
- **Лицензия**: MIT License.
## Известные ограничения и планы на будущее
- **Пока не реализовано**: управление списком игроков/белым списком (требуется ручное редактирование JSON), автоматическое резервное копирование, задачи по расписанию, дополнительные типы ядер (Fabric/Forge), поддержка терминала Windows.
- **Совместимость систем**: Temurin предоставляет только сборки для glibc; на системах с musl (например, Alpine) работа может быть невозможна — панель выполнит проверку и выдаст предупреждение.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.