Документація
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://, щоб закріпити сертифікат.
Ключ має належати адміністратору: створення, зміна та видалення інстансів — усе це адміністраторські маршрути, тож ключ звичайного користувача може читати панель, але нічого не провізіонує. Provibr перевіряє це під час тесту зʼєднання, а не аж при першому замовленні. До того ж це широкий мандат: той самий ключ відкриває файловий менеджер і керування користувачами панелі, і це друга причина дати йому окремого користувача.
Транспорт
MCSManager віддає звичайний HTTP на порту 23333 і не має власного сертифіката. Якщо панель стоїть за reverse proxy з TLS, впишіть відбиток того проксі; агент тоді довіряє саме цьому сертифікату, замість того щоб вимикати перевірку. Прочитати його можна так:
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Залиште поле порожнім, якщо сертифікат виданий публічним центром, а також якщо панель доступна лише по http. Відбиток поруч із http-адресою відхиляється, бо закріплювати нічого. Панель на звичайному http працює, але ключ API й усе, що робить інтеграція, тоді передається без шифрування.
Інстанси
Інстанс MCSManager — це по суті команда запуску та робоча тека. Немає ані egg, ані коду гри, ані шаблону зі змінними, тож Provibr не будує сервер із запису каталогу: команда запуску береться з ігрового тарифу, який ви пишете.
Тарифи
Ігровий тариф несе команду запуску та, якщо серверу це потрібно, спосіб його зупинки. Замовлення йде через тариф: те, що працює, береться з тарифу, а демон, на який потрапляє інстанс, береться з налаштувань інтеграції або обирається автоматично, коли панель має лише один.
- Команда запуску: обовʼязкова. Більше ніщо не визначає, що саме працює, тож, на відміну від панелі з egg, немає значення за замовчуванням, до якого можна відкотитися.
- Команда зупинки: необовʼязкова. Порожнє означає ^C, власне позначення MCSManager для SIGINT і типове значення панелі; сервер Minecraft хоче stop.
- Час очікування зупинки: необовʼязковий. Порожнє означає типове значення панелі, 10 секунд, після яких демон втручається жорстко.
Розміщення
MCSManager перелічує свої демони й повідомляє загальну памʼять кожного, тож рушій розміщення має справжню стелю для впорядкування, більшу, ніж дають PufferPanel і GameAP. На панелі з одним демоном, а це звичайна інсталяція, агент обирає його сам і заповнювати нічого не треба.
Призупинення
MCSManager призупиняє через момент завершення, записаний на інстансі, і панель сама його дотримується: демон відмовляється запускати інстанс, чий строк минув. Саме тому це чесний різновид призупинення: той, хто зайде безпосередньо в інтерфейс MCSManager, не запустить сервер, призупинений Provibr, а в PufferPanel і GameAP це не так.
- Призупинення також зупиняє сервер. Власна перевірка панелі виконується раз на годину, тож без цього другого кроку запущений інстанс працював би ще до шістдесяти хвилин після призупинення.
- Відновлення повертає попередній момент завершення, а не стирає його. Якщо дату завершення вже було задано, стирання тихо перетворило б інстанс на такий, що не завершується ніколи.
Docker
MCSManager запускає інстанс двома способами: як звичайний процес у pty або в контейнері Docker. Будь-яке обмеження ресурсів, яке знає панель, належить до другого: памʼять, процесор, диск. Звичайний процес працює без cgroup, без стелі памʼяті та без квоти диска.
Чого Provibr не робить
Консолі немає, бо термінал MCSManager іде через socket.io з власним heartbeat, а не через звичайний websocket, і адреса демона, яку віддає панель, локальна, тож агент в іншому місці до неї не дістанеться. Немає й графіків споживання: процесор і памʼять є справжніми вимірами, але диск у демоні жорстко зафіксований на нулі, а мережа відсутня зовсім, тож два з чотирьох графіків назавжди лишалися б на нулі. Перевстановлення відхиляється зі зрозумілою причиною, бо MCSManager перевстановлює лише з пресета, а Provibr із пресета не створює. Створення, запуск, зупинка, перезапуск, примусове завершення, читання стану, призупинення, відновлення, видалення та імпорт наявних інстансів працюють усі.