Saltar al contenido principal

Integración domótica Pterodactyl / Pelican, gratuita y de código abierto

Integración Pterodactyl / Pelican para Gladys Assistant

Servidores de juego Pterodactyl y Pelican: estado, CPU, memoria, arranque/parada, aviso de fallo.

Sus servidores de juego de un panel Pterodactyl (o de su fork Pelican) en Gladys: su estado, CPU, memoria, disco y tiempo en marcha, un interruptor para arrancarlos y detenerlos, eventos de escena cuando un servidor arranca, se detiene o falla, acciones de escena y un widget del panel de control. En casa o en un proveedor de juegos que vende servidores Pterodactyl: la API es la misma.

Probada con un panel Pterodactyl 1.15 y Wings reales (arranque, parada, reinicio, consola, un fallo real reiniciado por Wings). Pelican mantiene la misma API de cliente pero no se ha probado: sus comentarios son bienvenidos en GitHub.

Requisitos​

  • Gladys Assistant 5.1 o posterior.
  • Un panel Pterodactyl (1.8 o posterior) o Pelican al que Gladys pueda acceder.
  • Una clave API de cliente de su cuenta en el panel: Cuenta → Credenciales API → Crear (Account → API Credentials). Empieza por ptlc_. Una clave de aplicación (ptla_, de la administración) no funciona. La clave ve los servidores de los que es propietario y los compartidos con usted; un subusuario necesita los permisos de lo que hace Gladys (leer el servidor, alimentación, consola, actividad).

Configuración​

Panel y clave​

  • Dirección del panel: la dirección que abre en su navegador, p. ej. https://panel.example.com o http://192.168.1.20:8080.
  • Clave API de cliente (ptlc_…): la clave creada arriba.
  • Aceptar un certificado autofirmado: solo para un panel en casa en HTTPS sin certificado público.

Guarde: cada servidor de su cuenta aparece en la pestaña Descubrimiento, listo para añadirse. Probar la conexión lista sus servidores y su estado.

Control​

Arrancar, detener y reiniciar siempre están permitidos, como en el panel. Dos órdenes arriesgadas están desactivadas por defecto:

  • Permitir forzar la detención: mata el proceso al instante, el juego pierde lo que no haya guardado.
  • Permitir comandos de consola: una escena puede entonces escribir cualquier comando en la consola de un servidor, como un administrador.

Lecturas​

  • Intervalo de lectura: 30 segundos por defecto. El panel actualiza las cifras de un servidor cada 20 segundos aproximadamente: leer más rápido no mostraría nada nuevo. Cada lectura cuesta una solicitud para la lista y una por servidor, muy por debajo del límite del panel (720 solicitudes por minuto por defecto).
  • Idioma de los nombres: de las funciones de los dispositivos y de los textos que escribe la integración.

Dispositivos​

Un dispositivo por servidor, con:

  • Encendido: un interruptor. Encendido mientras el servidor está en marcha o arrancando; encenderlo arranca el servidor, apagarlo lo detiene limpiamente (nunca de forma forzada). Tras una orden, el interruptor y el estado la muestran al instante, hasta que el panel la confirma.
  • Estado: En marcha, Arrancando, Deteniéndose, Detenido, Suspendido, Instalando, Inaccesible (el panel no alcanza el nodo).
  • CPU: contada como en el panel, 100 % es un núcleo. El indicador llega hasta el límite de CPU del servidor, o 400 % sin límite.
  • Memoria y Disco: en megabytes.
  • Tiempo en marcha: en horas, 0 cuando está detenido.

La CPU y la memoria se envían a Gladys como mucho una vez por minuto. Los límites del servidor (memoria, disco, CPU) y su nodo están en los parámetros del dispositivo. La insignia del dispositivo distingue un panel en casa de un panel en Internet, y muestra un punto rojo cuando el panel o el nodo no responden.

Widget del panel de control​

Servidores de juego: sin servidor elegido, una casilla con los servidores en marcha y la lista de sus servidores con su estado, CPU y memoria (nueve, y luego un recuento). Con un servidor elegido en la configuración del widget: su estado, CPU, memoria y tiempo en marcha, sus límites, y los botones que corresponden a su estado: Arrancar, o Reiniciar y Detener (con confirmación). Forzar aparece cuando está permitido en la configuración y el servidor se queda bloqueado al detenerse.

Disparadores de escena​

Cada uno puede limitarse a un servidor, y da el nombre del servidor, su nodo y su dispositivo.

  • Un servidor de juego ha arrancado: está en marcha, tras un arranque, un reinicio o un fallo.
  • Un servidor de juego se ha detenido: por una orden, de Gladys, del panel o de su consola (stop, quit, exit…). Con los minutos en marcha.
  • Un servidor de juego ha fallado: se ha detenido sin ninguna orden. Wings suele reiniciarlo al instante: este evento llega entonces primero, y luego Un servidor de juego ha arrancado. Con los minutos en marcha.

Cómo se reconoce un fallo: el servidor está detenido, o su tiempo en marcha ha vuelto a cero, y ni Gladys ni el registro de actividad del panel muestran una parada, una detención forzada o un reinicio desde la lectura anterior. Un servidor apagado desde el juego (un mod, un plugin) cuenta como un fallo. Si la clave no puede leer el registro de actividad (un subusuario sin ese permiso), una parada hecha desde el panel también cuenta como un fallo: Probar la conexión indica en qué caso se encuentra.

Acciones de escena​

  • Arrancar un servidor de juego, Detener un servidor de juego (parada limpia), Reiniciar un servidor de juego.
  • Forzar la detención de un servidor: solo si está permitido en la configuración.
  • Enviar un comando de consola: solo si está permitido en la configuración, a un servidor en marcha, p. ej. say ¡A comer!.
  • Leer un servidor de juego: lo lee ahora y da a los pasos siguientes si está en marcha, su estado, CPU, memoria, disco y tiempo en marcha, p. ej. para un mensaje o un «Continuar solo si» sobre En marcha.

Los jugadores no están en la API del panel: la integración Game Servers (GameDig) (gladys-gamedig) lee quién juega, las llegadas y las salidas, para Minecraft, Valheim y 300 juegos más.

Ejemplos de escenas​

  • El servidor de los niños a la hora de dormir: a las 21 h los días de colegio, Enviar un comando de consola say ¡El servidor se detiene en 5 minutos!, esperar 5 minutos, Detener un servidor de juego.
  • Aviso de fallo: disparador Un servidor de juego ha fallado → enviarme un mensaje con el nombre del servidor y sus minutos en marcha.
  • Listo para jugar: un botón del panel de control arranca el servidor; disparador Un servidor de juego ha arrancado → poner en verde las luces del escritorio y enviar un mensaje con el nombre del servidor.

Solución de problemas​

  • «clave API rechazada»: la clave se ha eliminado, o es una clave de aplicación (ptla_): cree una clave de cliente en Cuenta → Credenciales API.
  • «panel inaccesible»: compruebe la dirección y el puerto desde la máquina de Gladys; un panel detrás de Cloudflare Access o de una página de inicio de sesión no se puede leer.
  • «certificado no reconocido»: active Aceptar un certificado autofirmado, o use la dirección pública del panel.
  • Estado «Inaccesible»: el panel responde pero no alcanza el nodo (Wings) del servidor.
  • Ningún servidor en la pestaña Descubrimiento: la clave no ve ningún servidor; la clave de un subusuario solo ve los servidores compartidos con él.
  • Un servidor muestra Arrancando tras una orden de arranque hasta 90 segundos antes de que el panel la confirme: es la caché del panel.
  • Los registros de la integración (Integraciones → Pterodactyl / Pelican → Registros) indican qué ha fallado; LOG_LEVEL=debug muestra cada lectura.

Límites​

  • Una lectura cada 30 segundos como mucho: un fallo reiniciado por Wings entre dos lecturas se ve en el tiempo en marcha; dos fallos entre dos lecturas cuentan como uno.
  • Hasta 200 servidores por clave.
  • Sin jugadores (vea gladys-gamedig), ni archivos, copias de seguridad, bases de datos o tareas programadas.
  • La salida de la consola no se lee: solo se envían comandos.
  • Sin vínculo con Pterodactyl ni Pelican.

Créditos​

Pterodactyl y Pelican son obra de sus propios equipos. La API se ha leído en su documentación y se ha comprobado con un panel real. Código bajo la licencia Apache 2.0, en el repositorio de la integración.

Parámetros de configuración​

Estos son los parámetros que Pterodactyl / Pelican te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Su panel de juegossectionNoPterodactyl o Pelican, en casa o en un proveedor de juegos. Cada servidor de su cuenta se convierte en un dispositivo: cree una clave API de cliente en Cuenta → Credenciales API del panel.
Dirección del panelstringSíLa dirección que abre en su navegador.
Clave API de cliente (ptlc_…)secretSíCuenta → Credenciales API. No una clave de aplicación (ptla_) de la administración.
Aceptar un certificado autofirmadobooleanNoSolo para un panel en casa en HTTPS sin certificado público.
ControlsectionNoArrancar, detener y reiniciar siempre están permitidos, como en el panel. Las dos órdenes arriesgadas de abajo están desactivadas por defecto.
Permitir forzar la detenciónbooleanNoMata el proceso al instante: el juego pierde lo que no haya guardado.
Permitir comandos de consolabooleanNoUna escena puede entonces escribir cualquier comando en la consola de un servidor, como un administrador.
LecturassectionNo
Intervalo de lecturaselectNoEl panel actualiza las cifras de un servidor cada 20 s aproximadamente.
Idioma de los nombresselectNoDe las funciones de los dispositivos y de los textos que escribe la integración.

Cómo instalar Pterodactyl / Pelican en Gladys​

  1. En Gladys, abre Integraciones: Pterodactyl / Pelican aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-pterodactyl:1.0.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-pterodactyl.

Pterodactyl / Pelican requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Pterodactyl / Pelican es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂