Ir para o conteúdo

Documentação

GameAP

Ligue um painel GameAP e o Provibr aprovisiona, controla e importa servidores de jogo nele. Esta página cobre o que difere dos outros painéis de jogo.

Token de API

O GameAP autentica-se com um único token de API, sem cliente OAuth2 e sem par de chaves. Crie um no painel e cole-o no Provibr juntamente com a URL do painel.

  • Anfitrião: a URL completa do painel, com a porta, por exemplo http://painel.example.com:8025. O GameAP usa HTTP simples na 8025 por predefinição, e não há porta que o Provibr possa acrescentar sem adivinhar.
  • Token de API: o token Sanctum, na forma id|secret. O Provibr mantém essa forma id|secret e recusa um token colado sem a id à frente.
O GameAP mostra o token uma vez e depois guarda apenas um hash. Copie-o de imediato, porque o Provibr também não o guarda e reenviar as credenciais significa criar um token novo.
O token tem de ser criado por um administrador e levar a permissão de criação: um token sem permissões de administrador consegue listar servidores, mas não criá-los nem eliminá-los. O Provibr verifica isto ao testar a ligação, não na primeira encomenda.

O token não expira, o que faz dele a credencial de longa duração mais limpa dos painéis de jogo: o agente continua a trabalhar durante meses sem que ninguém volte a escrever uma palavra-passe.

Transporte

Um GameAP novo usa HTTP simples na porta 8025, com a 443 fechada. Não há campo de impressão digital TLS, porque sem TLS não há certificado a fixar.

Um painel em http simples funciona, mas o token de API e tudo o que a integração faz viajam então sem cifra. Coloque à frente um reverse proxy com TLS para mudar isso; o agente valida então a cadeia de certificados como de costume, sem fixação.

O jogo e o seu modelo

Um servidor GameAP nasce de um jogo e de um game mod: um título como samp ou minecraft, mais o seu modelo. Juntos são o que noutros painéis é um egg de Pterodactyl. O Provibr não os lista por si: o token de API é recusado nos jogos, nos mods e nos nós do painel, que são só de administrador. Leia o código de jogo e o ID do mod no seu próprio painel GameAP e introduza-os no plano.

Esta é a diferença mais nítida em relação ao Pterodactyl e ao Pelican, que listam os seus eggs por si. Aqui não há lista de seleção: o plano leva o código de jogo e o ID do mod que introduz à mão.

Planos

Um plano de jogo leva o código de jogo, o ID do mod e os limites de recursos. A encomenda passa por um plano: o jogo e o seu modelo vêm do plano, e o nó vem das definições da integração.

Colocação

O token de API não consegue listar os nós do painel, por isso o motor de colocação não pode escolher nenhum. O nó vem da definição da integração: o ID de nó do GameAP, que num painel de um só nó é 1. Também não há sistema de atribuição: o agente escolhe um trio de portas livres de um intervalo à sua escolha, porque o GameAP não distribui nenhuma própria.

Num painel de vários nós, o agente não consegue ler a capacidade de um nó, pelo que este não é ordenado por espaço livre e um servidor aterra no nó que indicou.

Ciclo de vida

Criar, iniciar, parar, reiniciar, reinstalar e eliminar funcionam todos. Criar um servidor e instalá-lo são dois passos: o painel escreve primeiro o registo e instala depois, e o Provibr faz ambos e depois espera que a tarefa do daemon termine.

A resposta HTTP a uma ação só indica que a tarefa está em fila, não que teve êxito. O daemon executa-a, e o resultado da tarefa é a verdade. Uma paragem pode de vez em quando dar um erro por uma corrida no anfitrião, por isso o Provibr lê a tarefa e não a resposta.

Suspensão

Quando o Provibr suspende um servidor de jogo para fazer cumprir um limite de licença, o servidor é parado e fica marcado como bloqueado no painel.

A marca de bloqueado do GameAP é administrativa: por si só não para um servidor em execução nem recusa um arranque. O Provibr para o servidor para fazer cumprir o limite, mas qualquer pessoa com acesso direto ao painel GameAP pode voltar a iniciá-lo. O bloqueio é tanto um conceito do Provibr como do painel.

O que o Provibr não faz

Não há consola: a do GameAP vai por um websocket com um token efémero à parte e o seu próprio protocolo de tramas, uma via diferente do túnel que os outros painéis de jogo partilham. Também não há gráficos de uso, porque o GameAP não dá CPU, memória, disco nem rede por servidor. O Provibr não gere o painel, os seus nós, ficheiros nem utilizadores; um servidor de jogo no painel é a integração.