Salta al contenuto

Documentazione

GameAP

Colleghi un pannello GameAP e Provibr vi effettua il provisioning, controlla e importa i server di gioco. Questa pagina illustra ciò che differisce dagli altri pannelli di gioco.

Token API

GameAP si autentica con un unico token API: nessun client OAuth2 e nessuna coppia di chiavi. Ne crei uno nel pannello, poi lo incolli in Provibr insieme all’URL del pannello.

  • Host: l’URL completo del pannello con la porta, per esempio http://panel.example.com:8025. GameAP usa HTTP in chiaro sulla 8025 in modo predefinito, e non c’è porta che Provibr possa aggiungere senza indovinare.
  • Token API: il token Sanctum, nella forma id|secret. Provibr mantiene questa forma id|secret e rifiuta un token incollato senza l’id davanti.
GameAP mostra il token una sola volta e poi ne conserva solo un hash. Lo copi subito: neppure Provibr lo memorizza, quindi rinviare le credenziali significa creare un nuovo token.
Il token deve essere creato da un amministratore e portare il permesso di creazione: un token non amministratore può elencare i server ma non crearli né eliminarli. Provibr lo verifica al test della connessione, non al primo ordine.

Il token non scade, il che ne fa la credenziale a lunga durata più pulita dei pannelli di gioco: l’agente continua a funzionare per mesi senza che nessuno reinserisca una password.

Trasporto

Un GameAP nuovo usa HTTP in chiaro sulla porta 8025, con la 443 chiusa. Non c’è un campo per l’impronta TLS, perché senza TLS non c’è alcun certificato da fissare.

Un pannello in http funziona, ma il token API e tutto ciò che fa l’integrazione viaggiano allora in chiaro. Metta davanti un reverse proxy con TLS per cambiarlo; l’agente convalida allora la catena di certificati come al solito, senza fissaggio.

Il gioco e il suo modello

Un server GameAP nasce da un gioco (un titolo come samp o minecraft) e da un game mod, il suo modello; insieme sono ciò che altrove è un egg di Pterodactyl. Provibr non glieli elenca: il token API viene rifiutato su giochi, mod e nodi del pannello, riservati agli amministratori. Legga il codice di gioco e l’ID del mod nel suo pannello GameAP e li inserisca nel piano.

È la differenza più netta con Pterodactyl e Pelican, che i loro egg glieli elencano. Qui non c’è un elenco di selezione: il piano porta il codice di gioco e l’ID del mod che lei inserisce a mano.

Piani

Un piano di gioco porta il codice di gioco, l’ID del mod e i limiti di risorse. L’ordine passa da un piano: il gioco e il suo modello vengono dal piano, e il nodo viene dalle impostazioni dell’integrazione.

Collocazione

Il token API non può elencare i nodi del pannello, quindi il motore di collocazione non può sceglierne uno. Il nodo viene dall’impostazione dell’integrazione, cioè l’ID di nodo di GameAP, che su un pannello a un solo nodo è 1. Non c’è nemmeno un sistema di assegnazione: l’agente sceglie un terzetto di porte libere da un intervallo che lei imposta, perché GameAP non ne distribuisce di suoi.

Su un pannello a più nodi l’agente non può leggere la capacità di un nodo, quindi il nodo non viene ordinato per spazio libero e un server finisce su quello che lei ha indicato.

Ciclo di vita

Creare, avviare, arrestare, riavviare, reinstallare ed eliminare funzionano tutti. Creare un server e installarlo sono due passi: il pannello scrive prima il record e installa dopo, e Provibr fa entrambi, poi attende che la mansione del daemon finisca.

La risposta HTTP a un’azione indica solo che la mansione è in coda, non che sia riuscita: il daemon la esegue e l’esito della mansione è la verità. Un arresto può di tanto in tanto segnalare un errore per una corsa sull’host, perciò Provibr legge la mansione e non la risposta.

Sospensione

Quando Provibr sospende un server di gioco per far rispettare un limite di licenza, arresta il server e lo contrassegna come bloccato nel pannello.

Il contrassegno di bloccato di GameAP è amministrativo: da solo non arresta un server in esecuzione né rifiuta un avvio. Provibr arresta il server per far rispettare il limite, ma chiunque abbia accesso diretto al pannello GameAP può riavviarlo. Il blocco è tanto un concetto di Provibr quanto del pannello.

Ciò che Provibr non fa

Non c’è console: quella di GameAP passa da un websocket con un token effimero a parte e un proprio protocollo a frame, una via diversa dal tunnel che condividono gli altri pannelli di gioco. Non ci sono nemmeno grafici d’uso, perché GameAP non fornisce CPU, memoria, disco o rete per server. Provibr non gestisce il pannello, i suoi nodi, i file o gli utenti; un server di gioco sul pannello è l’integrazione.