Saltar a contenido

Pterodactyl Control Panel

En este artículo

Información

Pterodactyl es un panel de gestión de servidores de juegos de código abierto gratuito. Permite la gestión centralizada de servidores para Minecraft, CS2, Rust y más de 50 juegos adicionales a través de una interfaz web.

Pterodactyl. Funcionalidades principales

Pterodactyl es una solución moderna de gestión de servidores de juegos que combina:

  • Soporte para más de 50 juegos: Proporciona plantillas prediseñadas para una instalación rápida de servidores de juegos populares. Configura automáticamente el software, las dependencias y los parámetros de inicio, admite la selección de versiones del juego y la adición de plantillas personalizadas.
  • Gestión precisa de recursos: Controla la RAM, CPU, espacio en disco y la asignación de prioridad entre servidores. Evita sobrecargas, asigna recursos mediante cuotas y utiliza memoria SWAP para mayor estabilidad.
  • Copias de seguridad automáticas fiables: Garantiza copias de seguridad programadas flexibles con selección de datos (servidor completo o archivos clave). Almacena las copias de seguridad localmente o en la nube (S3, FTP, GDrive) con cifrado y recuperación instantánea.
  • Capacidad multiserver eficiente: Ejecuta cada servidor en un contenedor Docker aislado. Distribuye automáticamente la carga entre los nodos, asigna puertos sin conflictos y permite agrupar servidores relacionados.
  • Acceso multiusuario flexible: Gestiona los permisos mediante un modelo basado en roles (roles preestablecidos + personalizados) con más de 50 permisos granulares. Admite acceso temporal, auditoría de acciones y autenticación de dos factores.
  • Consola de gestión en tiempo real: Proporciona control total a través de una interfaz web con una terminal interactiva (similar a SSH). Incluye formato de color, historial de comandos, botones de acción rápida y notificaciones de eventos.
  • Monitorización de estadísticas en tiempo real: Muestra gráficos de uso de recursos (CPU, RAM, disco, red) y métricas del juego (jugadores conectados, TPS, ping). Permite crear paneles personalizados, configurar alertas y exportar datos a CSV. | Gestión simplificada de mods/plugins: Ofrece una tienda integrada para la instalación automática de mods, gestión de versiones y dependencias. Incluye un editor de configuración visual con resaltado de sintaxis y notificaciones de actualización.
  • Actualizaciones automáticas: Garantiza el funcionamiento ininterrumpido del sistema. Actualiza los servidores de juegos según el cronograma con modo de prueba y reversión (rollback) en caso de errores. Actualiza el control panel con un solo comando (php artisan p:upgrade), comprobando la compatibilidad y migrando la base de datos sin pérdida de datos. Auto-actualiza el daemon Wings, manteniendo la compatibilidad con diferentes distribuciones de Linux.

Funcionalidades de implementación

ID Nombre del Software SO Compatible VM BM VGPU GPU CPU Mín. (Núcleos) RAM Mín. (GB) HDD/SSD Mín. (GB) Dominio Personalizado Activo
326 Pterodactyl Ubuntu 22.04 + + + + 1 1 - No PEDIR

Componentes principales del sistema:

Componente Propósito
Panel Interfaz de gestión web (PHP/Laravel). Proporciona el panel de administración y la interfaz de usuario para la gestión de servidores
Wings Daemon para el inicio físico del servidor de juegos (Go). Se instala por separado en las máquinas donde se ejecutarán los servidores de juegos
Database MariaDB para almacenar configuraciones, usuarios, servidores y ajustes
Docker Plataforma de contenerización, requerida para la operación de Wings y el aislamiento de los servidores de juegos

Archivos de configuración

Ruta Propósito
/var/www/pterodactyl/.env Ajustes principales del Panel: conexión a la base de datos, Redis, APP_URL, APP_KEY
/var/www/pterodactyl/storage/logs/laravel.log Registros de operación del Panel (errores de aplicación, peticiones)
/var/log/nginx/pterodactyl.app-error.log Registros del servidor web NGINX para el Panel
/etc/pterodactyl/config.yml Configuración de Wings: token de autorización, URL del Panel, ajustes de Docker. Se crea durante la instalación de Wings
/var/lib/pterodactyl/volumes/ Directorio de datos del servidor de juegos: archivos de mundo, configuraciones, plugins. Se crea tras la instalación de Wings

Qué se instala automáticamente

El playbook instala y configura automáticamente:

  • Pterodactyl Panel - panel de gestión central con interfaz web;
  • MariaDB - base de datos para almacenar todos los datos del sistema;
  • Redis - para caché y colas de tareas;
  • NGINX - servidor web que trabaja en conjunto con un contenedor Docker para la gestión automatizada de certificados SSL (Certbot);
  • PHP + PHP-PM - para el funcionamiento de la aplicación Laravel;
  • Certbot - para la adquisición automática del certificado SSL;
  • Servicios systemd - pteroq (procesamiento de colas), tareas cron (programador).

Qué debe instalarse adicionalmente

Para ejecutar servidores de juegos, necesitas:

  • Wings - daemon que inicia y gestiona físicamente los servidores de juegos en contenedores Docker.

Wings se instala en cada máquina (nodo) donde se planee ejecutar los servidores de juegos. Puede ser el mismo servidor donde está instalado el Panel (configuración "all-in-one") o servidores dedicados separados (arquitectura distribuida).

Requisitos del sistema

Para el Panel (Control Panel)

Requisitos mínimos:

  • Procesador: 2+ núcleos;
  • Memoria: 2 GB de RAM (se recomiendan 4 GB para un funcionamiento estable);
  • Disco: 20 GB SSD (se recomiendan más de 40 GB para logs y copias de seguridad);
  • OS: Ubuntu 22.04 LTS (Jammy) - estrictamente esta versión para la instalación automática.

Software (instalado automáticamente):

  • PHP + PHP-FPM;
  • MariaDB 10.6+;
  • Redis 7.0+;
  • NGINX;
  • Composer 2;
  • Certbot (para SSL);
  • Docker (preinstalado en la imagen).

Requisitos de red:

  • Puertos abiertos: 80 (HTTP), 443 (HTTPS);
  • Dirección IP estática o nombre de dominio; para obtener automáticamente un certificado SSL a través de Let's Encrypt, se requiere un FQDN válido en el dominio hostkey.com;
  • Conexión a Internet estable.

Para el Nodo (Nodos con servidores de juegos)

Para 5-10 servidores de juegos simultáneos:

  • Procesador: 4+ núcleos (se recomiendan 6-8 núcleos para juegos exigentes);
  • Memoria: 8 GB de RAM (se recomiendan 12-16 GB dependiendo de los juegos);
  • Disco: 50 GB SSD (se recomiendan más de 100 GB para múltiples servidores con mods);
  • OS: Ubuntu 20.04/22.04, Debian 10/11, CentOS ⅞ (cualquier Linux con soporte para Docker).
  • Software:
    • Docker (preinstalado en la imagen);
    • Wings (requiere instalación).

Requisitos de red:

  • Puertos abiertos:
    • 8080 - Wings API (comunicación con el Panel);
    • 12333 - Conexión SSL Wings/Daemon;
    • 2022 - SFTP (subida de archivos a los servidores de juegos);
    • 25565-25665 - rango de puertos de juego (configurados individualmente);
  • Conexión a Internet estable con buen ancho de banda;
  • Baja latencia para una experiencia de juego cómoda.

Configuración "All-in-One" (Panel + Wings en un mismo servidor)

Para pruebas o proyectos pequeños, puedes usar un solo servidor:

  • Procesador: 4+ núcleos;
  • Memoria: 8 GB de RAM (mínimo 6 GB);
  • Disco: 60 GB SSD (se recomiendan más de 100 GB);
  • OS: Ubuntu 22.04 LTS.

En esta configuración, un solo servidor ejecuta:

  • Pterodactyl Panel (interfaz web);
  • Wings (daemon de inicio del servidor);
  • Base de datos y caché;
  • Servidores de juegos en contenedores Docker.

Recomendaciones de recursos para juegos

Requisitos aproximados por servidor de juego:

Juego RAM CPU Disco
Minecraft (Vanilla/Paper) 2-4 GB 2+ núcleos 5-10 GB
Minecraft con mods (Forge/Fabric) 4-8 GB 4+ núcleos 10-20 GB
CS2 / CS:GO 4-6 GB 4+ núcleos 15-20 GB
Rust 8-12 GB 4+ núcleos 20-30 GB
ARK: Survival Evolved 8-16 GB 6+ núcleos 30-50 GB
Terraria 1-2 GB 2+ núcleos 2-5 GB
Valheim 4-6 GB 4+ núcleos 5-10 GB

Primeros pasos tras el despliegue de Pterodactyl

Después de pagar su pedido, recibirá una notificación en el correo electrónico con el que se registró, informándole que su servidor está listo para funcionar. Contendrá la dirección IP del VPS, así como un usuario y contraseña para la conexión. Los clientes de nuestra empresa gestionan el hardware en los servidores y el panel de control APIInvapi.

Los datos de autorización que pueden encontrarse en la pestaña Configuration >> Tags del panel de control del servidor o en el correo electrónico son:

  • Enlace: en la etiqueta webpanel. Para acceder al panel de administración, añada /admin al enlace principal;
  • Login: admin;
  • Password: enviado por correo electrónico a su dirección cuando el servidor esté listo para operar tras el despliegue del software.

Primer inicio de sesión

  1. Abra un navegador web y navegue hasta la dirección de su panel Pterodactyl;
  2. Haga clic en Login:

  3. Tras una autorización exitosa, se le dirigirá a la página principal del panel.

  4. Para acceder al panel de administración, haga clic en el botón :

Creación de un usuario

  1. En el menú de la izquierda del panel de administración, haga clic en el nombre de la sección Users;
  2. Haga clic en el botón Create New en la esquina superior derecha:

  3. Complete los campos requeridos:

    • Username: nombre de usuario;
    • Email: dirección de correo electrónico del usuario;
    • First Name: nombre;
    • Last Name: apellido;
    • Password: contraseña (mínimo 8 caracteres, debe contener letras de diferentes mayúsculas/minúsculas y números);
  4. Si es necesario, seleccione Yes en la línea Administrator para otorgar derechos de administrador;
  5. Haga clic en Create User:

Creación de una Location

Qué es una Location

Una Location es un agrupamiento lógico de nodos por ubicación geográfica o propósito. Se utiliza para organizar servidores, por ejemplo: "EU", "US", "Asia", "Production", "Testing". Los usuarios no ven las Locations directamente; esta es una herramienta administrativa.

  1. En el menú de la izquierda, seleccione Locations;
  2. Haga clic en el botón Create New en la esquina superior derecha:

  3. Complete los campos:

    • Short Code: código corto de ubicación (p. ej., "US1", "EU1");
    • Description: descripción de la ubicación (p. ej., "Data center in the USA");
  4. Haga clic en Create:

Creación de un Nodo

Qué es un Node

Un Node es un servidor físico o virtual en el que se lanzan servidores de juegos a través de Wings. Cada nodo tiene sus propios recursos (CPU, RAM, disco) y puede servir múltiples servidores de juegos simultáneamente.

Preparación antes de crear un Nodo

Antes de crear un nodo, asegúrese de que:

  • Docker esté instalado en el servidor (preinstalado en las imágenes de HOSTKEY);
  • Tenga una dirección IP o nombre de dominio para el nodo;
  • Los puertos 8080 (Wings API) y 12333 (comunicación SSL Wings/Daemon) estén abiertos en el firewall.

Creación de un Nodo en el Panel

  1. En el menú de la izquierda del panel de administración, seleccione Nodes;

  2. Haga clic en el botón Create New en la esquina superior derecha:

  3. Complete los basic settings:

    • Name: nombre único del nodo (p. ej., hostkey-us-node1);
    • Location: seleccione la ubicación creada previamente;
    • Public: marque la casilla si el nodo debe ser visible para los usuarios;
    • FQDN: especifique el nombre de dominio del panel (p. ej., pterodactyl50514.hostkey.in) o la dirección IP;
    • Communicate Over SSL: marque la casilla si el Panel utiliza HTTPS;
    • Behind Proxy: deje deshabilitado si el nodo no está detrás de un proxy.
  4. Configure los resource settings:

    • Daemon Server File Directory: /var/lib/pterodactyl/volumes (no cambie esto);
    • Total Memory: especifique la RAM disponible en MB (p. ej., 4608 para un servidor de 6GB teniendo en cuenta la reserva);
    • Memory Over-Allocation: especifique 0 (sin exceso de asignación);
    • Total Disk Space: especifique el espacio en disco disponible en MB (p. ej., 102400 para un disco de 120GB teniendo en cuenta la reserva);
    • Disk Over-Allocation: especifique 0 (sin exceso de asignación);
    • Daemon Port: 8080 (deje el valor por defecto);
    • Daemon SFTP Port: 2022 (deje el valor por defecto).

  5. Haga clic en el botón Create Node.

Importante al usar HTTPS

Si el Panel opera sobre HTTPS, debe especificar un nombre de dominio en el campo FQDN, no una dirección IP. Especificar una dirección IP con SSL habilitado resultará en un error de validación.

Ejemplo de ajustes para una configuración All-in-One (4 vCore / 6GB RAM / 120GB SSD)

    Name: hostkey-us-node1
    Location: US1
    Public: ☑
    FQDN: pterodactyl50514.hostkey.in
    Communicate Over SSL: ☑
    Behind Proxy: ☐


    Total Memory: 4608 MB (dejando 1.5GB para el sistema)
    Memory Over-Allocation: 0
    Total Disk Space: 102400 MB (dejando 20GB para el sistema)
    Disk Over-Allocation: 0

Configuración de las Allocations

Después de crear un nodo, debe configurar las allocations; estas son combinaciones de direcciones IP y puertos que estarán disponibles para ser asignadas a los servidores de juegos.

  1. Tras crear el nodo, su página se abrirá automáticamente. Navegue hasta la pestaña Allocation;

  2. En la sección Assign New Allocations (lado derecho), complete los campos:

    • IP Address: introduzca la dirección IP del servidor;
    • IP Alias: especifique una descripción (p. ej., Main IP) o déjelo en blanco;
    • Ports: especifique un rango de puertos (p. ej., 25565-25570 para servidores de Minecraft).
  3. Haga clic en el botón verde Submit:

  4. Las allocations creadas aparecerán en la tabla Existing Allocations (lado izquierdo). Cada fila representa una combinación separada de IP:puerto que puede asignarse a un servidor de juegos.

Nota

Sin configurar las allocations, no podrá crear servidores en este nodo. Debe añadir al menos una dirección IP con puertos.

Recomendaciones de puertos

  • Minecraft: 25565-25570 (puerto estándar 25565);
  • CS2/CS:GO: 27015-27020 (puerto estándar 27015);
  • Rust: 28015-28020 (puerto estándar 28015);
  • Valheim: 2456-2460 (puerto estándar 2456).

Instalación de Wings

Crítico para el funcionamiento

Después de crear un nodo y configurar las allocations, debe instalar Wings en el servidor. Sin Wings, el nodo mostrará estado Offline y no podrá iniciar servidores de juegos.

Conéctese al servidor vía SSH y ejecute los siguientes comandos:

Cree un directorio para la configuración:

mkdir -p /etc/pterodactyl
Descargue Wings:

curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
Conceda permisos de ejecución:

chmod u+x /usr/local/bin/wings
Verifique la instalación:

wings version

Debería mostrarse la versión de Wings (p. ej., wings vv1.12.1).

Configuración de Wings mediante Auto-Deploy (Recomendado)

  1. En el panel de administración, vaya a la pestaña Configuration del nodo creado;

  2. En la sección Auto-Deploy (lado derecho), haga clic en el botón Generate Token:

  3. Copie el comando generado. Debería ser algo parecido a esto:

        cd /etc/pterodactyl && wings configure --panel-url https://your-domain.com --token TOKEN --node 1
    

  4. Ejecute el comando copiado en el servidor:

        cd /etc/pterodactyl && wings configure --panel-url https://pterodactyl50514.hostkey.in --token TOKEN --node 1
    

    Debería aparecer el mensaje: Successfully configured wings.

  5. Verifique la configuración creada:

        cat /etc/pterodactyl/config.yml
    

Creación de un servicio systemd

Cree un servicio systemd para el inicio automático de Wings:

cat > /etc/systemd/system/wings.service <<'EOF'
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

Inicio de Wings

Recargue la configuración de systemd:

systemctl daemon-reload
Habilite el inicio automático e inicie Wings:

systemctl enable --now wings
Compruebe el estado:

systemctl status wings

El estado debería mostrar Active: active (running).

Verificación de funcionamiento

Compruebe los logs de Wings:

journalctl -u wings -n 50

Los logs deberían contener mensajes como:

  • fetching list of servers from API - Wings conectado al Panel;
  • configuring internal webserver - El servidor web de Wings se ha iniciado;
  • sftp server listening for connections - El servidor SFTP está funcionando.

Verifique la creación del directorio del servidor:

ls -la /var/lib/pterodactyl/volumes/

Verificación del estado en el Panel de Administración

  1. Abra el panel de administración: https://your-domain.com/admin;
  2. Navegue a: Admin > Nodes > su nodo;
  3. Refresque la página (F5);
  4. El indicador de estado verde Online debería mostrarse en la esquina superior derecha;
  5. En la pestaña About, debe aparecer la información de recursos (CPU, RAM, Disco).

Si el Nodo muestra estado Online

¡El nodo está totalmente configurado y listo para crear servidores de juegos!

Resolución de problemas

El Nodo muestra estado Offline

Compruebe el estado de Wings:

systemctl status wings

Si Wings no se está ejecutando, inícielo:

systemctl start wings

Compruebe los logs en busca de errores:

journalctl -u wings -n 100

Problemas comunes:

  1. Wings no puede conectarse al Panel:

    • Compruebe la URL del panel en la configuración: cat /etc/pterodactyl/config.yml | grep remote;
    • Asegúrese de que el Panel sea accesible: curl -I https://your-domain.com.
  2. El puerto 8080 está bloqueado por el firewall:

    • Compruebe el puerto: netstat -tulpn | grep 8080;
    • Abra el puerto: ufw allow 8080/tcp.
  3. Problemas de SSL:

    • Si el Panel utiliza HTTPS, Wings también debe funcionar con SSL;
    • Compruebe los ajustes de SSL en /etc/pterodactyl/config.yml.

Configuración manual (Método alternativo)

Si el Auto-Deploy no funciona, puede configurar Wings manualmente:

  1. En el panel de administración, vaya a la pestaña Configuration del nodo;
  2. Copie el contenido del archivo de configuración desde el campo de texto de la izquierda;
  3. En el servidor, cree un archivo de configuración:

    nano /etc/pterodactyl/config.yml
    

  4. Pegue la configuración copiada y guarde (Ctrl+X, luego Y, luego Enter);

  5. Reinicie Wings: systemctl restart wings;
  6. Compruebe el estado: systemctl status wings.

Creación de un Nest y adición de un Egg

Creación de un Nest

  1. En el menú de la izquierda, seleccione la sección Nests;
  2. Haga clic en el botón Create New en la esquina superior derecha:

  3. Complete los campos:

    • Name: nombre del nest (p. ej., "Minecraft");
    • Description: descripción del nest;
  4. Haga clic en Save:

Descarga de un Egg ya preparado

  1. Abra el sitio web https://pelican-eggs.github.io/;

  2. Busque el juego deseado:

    • En la sección Game Eggs, seleccione una categoría (p. ej., Minecraft);
    • Busque el tipo de servidor deseado (p. ej., Paper, Vanilla, Forge);
  3. Haga clic en el nombre del servidor para abrir la página de GitHub;

  4. Busque el archivo egg-name.json (p. ej., egg-paper.json);

  5. Haga clic en el archivo y luego en el botón Raw en la esquina superior derecha;

  6. Guarde el archivo (Ctrl+S o clic derecho > Save as).

Eggs populares

Importar el Egg al Panel

  1. En el panel de administración, vaya a la sección Nests;

  2. Haga clic en el botón Import Egg en la esquina superior derecha:

  3. Haga clic en Choose File y seleccione el archivo .json descargado;

  4. Haga clic en Import:

El egg se importará con todos los ajustes, imágenes de Docker y variables.

Verificación del Egg importado

  1. En la lista de eggs, busque el importado (p. ej., Paper);

  2. Haga clic en él para ver los ajustes;

  3. Asegúrese de que lo siguiente esté completado:

    • Docker Images: lista de imágenes disponibles;
    • Install Script: script de instalación del servidor;
    • Variables: variables de entorno (versión, ajustes).

Creación de un Servidor

  1. En el menú de la izquierda, seleccione Servers;

  2. Haga clic en el botón Create New en la esquina superior derecha:

  3. Complete el formulario de creación:

Core Details:

  • Server Name: nombre del servidor (p. ej., Test Minecraft Server);
  • Server Owner: seleccione el usuario propietario de la lista;
  • Server Description: descripción (opcional);
  • Start Server when Installed: deje la casilla marcada.

Allocation Management:

  • Node: seleccione el nodo creado;
  • Default Allocation: seleccione IP:puerto de la lista;
  • Additional Allocations: deje en blanco.

Application Feature Limits:

  • Database Limit: 0;
  • Allocation Limit: 0;
  • Backup Limit: 0.

Resource Management:

  • CPU Limit: 0 (sin límites);
  • Memory: 2048 MiB (2GB para empezar);
  • Swap: 0 MiB;
  • Disk Space: 5120 MiB (5GB);
  • Block IO Weight: 500;
  • Enable OOM Killer: deje deshabilitado.

Nest Configuration:

  • Nest: Minecraft;
  • Egg: Paper (¡no Sponge!);
  • Docker Image: Java 21;
  • Service Variables: deje los valores por defecto.

  • Haga clic en Create Server al final de la página;

  • Espere a que se complete la instalación (el estado Installing cambiará a Offline):

Inicio y configuración del servidor

  1. Tras la instalación, abra el servidor desde la lista (Admin > Servers):

  2. Vaya al panel de usuario (sin /admin), inicie sesión como el propietario del servidor;

  3. Haga clic en el botón Start:

  4. En el primer inicio, aparecerá una ventana de aceptación de licencia:

  5. Haga clic en I Accept para aceptar el EULA de Minecraft;

  6. Espere a que el servidor se inicie (el estado cambiará a Running):

Comprobación de rendimiento

Abra en su navegador (reemplace la IP por la suya):

https://api.mcsrvstat.us/3/<Dirección IP>:25565
Si la respuesta muestra "online": true, el servidor está funcionando y es accesible para los jugadores.

Dirección de conexión:

<Dirección IP>:25565

Nota

La información detallada sobre los ajustes principales de Pterodactyl se encuentra en la documentación para desarrolladores.

Pedir un servidor Pterodactyl mediante la API

Para instalar este software utilizando la API, siga estas instrucciones.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×