Seeroy / kubek-minecraft-dashboard

Kubek - Web Minecraft servers dashboard
http://kubek.seeeroy.ru
GNU General Public License v3.0
93 stars 25 forks source link

Обращение к панели через Bash? #63

Open t-lessy opened 10 months ago

t-lessy commented 10 months ago

Есть ли возможность использовать включённую(!) панель через терминал? Если нет, то прошу попробовать добавить, если возможно. Конкретно свою ситуацию могу решить по-другому, но такой функционал может понадобится и в других ситуациях. Например: ./Kubek-Interface start-server server1 - старт сервера. ./Kubek -onstartup=server1 - старт сервера после загрузки Кубека. ./Kubek-Interface start-server server1 -ram 8192 - старт сервера с указанием лимита оперативной памяти в 8гб в start.sh (что-то похожее встроено в Forge сервера). ./Kubek-Interface execute server1 "/time set 0" - выполнение игровой команды. ./Kubek-Interface serv-prop server1 whitelist="off" - изменение server.properties. ./Kubek-Interface serv-prop server1 port="$[ $RANDOM % 25565 + 1111 ]" - изменение порта на случайный, тобишь костыльный динамический порт, который потом можно прочесть. ./Kubek-Interface return-property server1 port - чтение порта, вместо: grep 'server-port=' server.properties | tr -d 'server\-port=' ./Kubek-Interface return-property server1 available - возврат состояния сервера в булевом виде.

А-ля встроенный терминальный RCON, автоматизация Кубека (допустим, Кубек запускается при запуске как сервис), встроенный редактор конфигов.

Сценарий, в котором понадобилось:

Действие нужного баш скрипта:

  1. Останавливает сервер командой "stop" в RCON. / Через Кубек.
  2. Запускает утилиту очищения мира.
  3. sleep 15m
  4. Запускает сервер через Кубек по приведённому выше примеру.
  5. RCON обращение: /maintenance on - запрет входа игроков
  6. RCON обращение: /backup create - бэкап сервера
  7. sleep 15m
  8. RCON обращение: /maintenance off - разрешение на вход игроков

Напоследок спасибо, дорогой Сирой, за столь прекрасное средство управления сервером! Одновременно легко в использовании, легковесно и приятно в наблюдении за проектом. Постараюсь и далее сообщать о недоработках и предлагать идеи. С лучшими пожеланиями, Лесс! 😉

Seeroy commented 10 months ago

Приветствую. Вообще это автоматизировать можно с помощью API, документации на который пока что к сожалению нет. Возможно такие аргументы добавлю в Kubek, но это будет нескоро

Действие нужного баш скрипта:

Можно реализовать скрипт так:

SERVER="назв_сервера" curl localhost:3000/api/servers/$SERVER/stop sleep 1m # Время на выключение сервера Утилита очищения мира sleep 15m curl localhost:3000/api/servers/$SERVER/start sleep 5m # Время на запуск сервера curl localhost:3000/api/servers/$SERVER/send?cmd=maintenance%20on curl localhost:3000/api/servers/$SERVER/send?cmd=backup%20create sleep 15m curl localhost:3000/api/servers/$SERVER/send?cmd=maintenance%20off

P.S. Скрипт не тестил. Мой ник читается как Серой :)

MeteoraCD2 commented 7 months ago

Когда ожидать описание API?