Перейти до вмісту

Документація

MCSManager

Підключіть панель MCSManager, і Provibr провізіонує, керує та імпортує на ній ігрові сервери. Ця сторінка описує, чим MCSManager відрізняється від інших ігрових панелей.

Ключ API

MCSManager автентифікується одним ключем API, без клієнта OAuth2 та без пари ключів. Створіть його в панелі під своїм обліковим записом і вставте в Provibr разом із URL панелі.

  • Хост: повна URL панелі з портом, наприклад http://panel.example.com:23333. MCSManager за замовчуванням працює по звичайному HTTP на 23333, і немає порту, який Provibr міг би додати без вгадування.
  • Ключ API: ключ із 32 символів, який створює панель. На кожного користувача панелі припадає один ключ, і створення другого перезаписує перший, тож дайте Provibr окремого користувача панелі, а не той обліковий запис, у якому працюєте щодня.
  • Відбиток TLS (необовʼязково): лише для хоста https://, щоб закріпити сертифікат.
У свіжій інсталяції MCSManager ключі API вимкнені. Доки ви не увімкнете їх у Налаштування → API, кожен виклик відповідає 403 Insufficient Permissions, та сама відповідь, що й на відкликаний ключ, і ніщо в ній не вказує на цей перемикач.

Ключ має належати адміністратору: створення, зміна та видалення інстансів — усе це адміністраторські маршрути, тож ключ звичайного користувача може читати панель, але нічого не провізіонує. Provibr перевіряє це під час тесту зʼєднання, а не аж при першому замовленні. До того ж це широкий мандат: той самий ключ відкриває файловий менеджер і керування користувачами панелі, і це друга причина дати йому окремого користувача.

Транспорт

MCSManager віддає звичайний HTTP на порту 23333 і не має власного сертифіката. Якщо панель стоїть за reverse proxy з TLS, впишіть відбиток того проксі; агент тоді довіряє саме цьому сертифікату, замість того щоб вимикати перевірку. Прочитати його можна так:

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Команди та вивід термінала всюди англійською і в панелі, і на цих сторінках. Один текст, одна правда: те, що ви читаєте тут, ваш хост виведе дослівно так само.

Залиште поле порожнім, якщо сертифікат виданий публічним центром, а також якщо панель доступна лише по http. Відбиток поруч із http-адресою відхиляється, бо закріплювати нічого. Панель на звичайному http працює, але ключ API й усе, що робить інтеграція, тоді передається без шифрування.

Інстанси

Інстанс MCSManager — це по суті команда запуску та робоча тека. Немає ані egg, ані коду гри, ані шаблону зі змінними, тож Provibr не будує сервер із запису каталогу: команда запуску береться з ігрового тарифу, який ви пишете.

Панель справді містить 63 пресети встановлення, але жоден із них не має ідентифікатора. MCSManager шукає пресет за назвою та описом, цілим реченням, назви не унікальні, а обидва значення залежать від мови панелі. Звʼязок, побудований на цьому, ламається щойно хтось перемкне панель на іншу мову, і саме тому Provibr не пропонує їх списком.

Тарифи

Ігровий тариф несе команду запуску та, якщо серверу це потрібно, спосіб його зупинки. Замовлення йде через тариф: те, що працює, береться з тарифу, а демон, на який потрапляє інстанс, береться з налаштувань інтеграції або обирається автоматично, коли панель має лише один.

  • Команда запуску: обовʼязкова. Більше ніщо не визначає, що саме працює, тож, на відміну від панелі з egg, немає значення за замовчуванням, до якого можна відкотитися.
  • Команда зупинки: необовʼязкова. Порожнє означає ^C, власне позначення MCSManager для SIGINT і типове значення панелі; сервер Minecraft хоче stop.
  • Час очікування зупинки: необовʼязковий. Порожнє означає типове значення панелі, 10 секунд, після яких демон втручається жорстко.
Команда запуску не проходить через оболонку. MCSManager ділить її по пробілах і передає частини як аргументи, тож лапки, конвеєри та перенаправлення роблять не те, чого ви очікуєте. Конструкція bash -c повертається помилкою розбору всередині сервера. Покладіть усе, що потребує оболонки, у файл сценарію та запускайте його.

Розміщення

MCSManager перелічує свої демони й повідомляє загальну памʼять кожного, тож рушій розміщення має справжню стелю для впорядкування, більшу, ніж дають PufferPanel і GameAP. На панелі з одним демоном, а це звичайна інсталяція, агент обирає його сам і заповнювати нічого не треба.

Коли демонів кілька, вкажіть типовий у налаштуваннях інтеграції. Якщо поле лишити порожнім, Provibr відмовить у замовленні, замість вгадувати: інстанс потім не перенести на іншу машину.

Призупинення

MCSManager призупиняє через момент завершення, записаний на інстансі, і панель сама його дотримується: демон відмовляється запускати інстанс, чий строк минув. Саме тому це чесний різновид призупинення: той, хто зайде безпосередньо в інтерфейс MCSManager, не запустить сервер, призупинений Provibr, а в PufferPanel і GameAP це не так.

  • Призупинення також зупиняє сервер. Власна перевірка панелі виконується раз на годину, тож без цього другого кроку запущений інстанс працював би ще до шістдесяти хвилин після призупинення.
  • Відновлення повертає попередній момент завершення, а не стирає його. Якщо дату завершення вже було задано, стирання тихо перетворило б інстанс на такий, що не завершується ніколи.
Це поле завершення належить самому MCSManager: його комерційний режим продає через нього інстанси погодинно. Коли цей режим увімкнений, панель пише в те саме поле, що й Provibr, і вони перезаписують роботу одне одного, тому Provibr відмовляє в облікових даних, доки він увімкнений.

Docker

MCSManager запускає інстанс двома способами: як звичайний процес у pty або в контейнері Docker. Будь-яке обмеження ресурсів, яке знає панель, належить до другого: памʼять, процесор, диск. Звичайний процес працює без cgroup, без стелі памʼяті та без квоти диска.

Отже, на панелі без Docker не обмежено нічого. Provibr не відмовляє такій панелі, бо кожна команда на ній працює, але тариф, який обіцяє 2 ГБ памʼяті, обіцяє тоді те, чого панель не дотримується. Переконайтеся, що Docker встановлений, перш ніж продавати там обмежений продукт; Provibr повідомляє про це на інтеграції, коли його бракує.

Чого Provibr не робить

Консолі немає, бо термінал MCSManager іде через socket.io з власним heartbeat, а не через звичайний websocket, і адреса демона, яку віддає панель, локальна, тож агент в іншому місці до неї не дістанеться. Немає й графіків споживання: процесор і памʼять є справжніми вимірами, але диск у демоні жорстко зафіксований на нулі, а мережа відсутня зовсім, тож два з чотирьох графіків назавжди лишалися б на нулі. Перевстановлення відхиляється зі зрозумілою причиною, бо MCSManager перевстановлює лише з пресета, а Provibr із пресета не створює. Створення, запуск, зупинка, перезапуск, примусове завершення, читання стану, призупинення, відновлення, видалення та імпорт наявних інстансів працюють усі.