bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación y configuración de P

calendar_month May 24, 2026 schedule 10 min de lectura visibility 39 vistas
Установка и настройка Pterodactyl Panel на VPS: создание игрового хостинга в Docker
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación y configuración de Pterodactyl Panel en un VPS: creación de un hosting de juegos en Docker

TL;DR

En esta guía, analizaremos en detalle el proceso de despliegue de Pterodactyl Panel, el panel de control de servidores de juegos de código abierto más popular basado en Docker. Aprenderá a configurar un stack moderno (PHP 8.3+, MariaDB 11, Redis 7) e instalar Wings (el demonio de gestión de nodos) para ejecutar servidores de juegos con aislamiento total de recursos.

  • Uso de Docker para el aislamiento de procesos de juego y la seguridad del sistema.
  • Configuración de la interfaz web (Panel) basada en Laravel para la gestión de usuarios y servidores.
  • Instalación y configuración de Wings, un demonio de alto rendimiento escrito en Go.
  • Garantía de seguridad mediante certificados SSL (Let's Encrypt) y configuración del firewall.
  • Automatización de copias de seguridad de los datos de los servidores de juegos en almacenamientos externos.
  • Optimización del rendimiento del sistema para una latencia mínima en los juegos.

1. Qué estamos configurando y por qué

Esquema: 1. Qué estamos configurando y por qué
Esquema: 1. Qué estamos configurando y por qué

Pterodactyl no es solo un panel de control, es un ecosistema potente para la gestión de servidores de juegos que se ha convertido de facto en el estándar de la industria del hosting de juegos privado y comercial. A diferencia de las soluciones antiguas que ejecutaban procesos directamente en el sistema operativo, Pterodactyl utiliza contenedores Docker. Esto ofrece tres ventajas críticas: seguridad (el proceso en el contenedor no tiene acceso al sistema principal), aislamiento de recursos (un servidor no puede "comerse" toda la memoria del vecino) y portabilidad (el servidor se puede mover fácilmente entre nodos físicos).

Componentes principales del sistema:

  • Panel: Escrito en Laravel (PHP). Es el "cerebro" del sistema, donde se encuentra la base de datos de usuarios, la configuración de los servidores, la facturación y la API.
  • Wings: Escrito en Go. Es el agente que se instala en cada servidor donde funcionarán físicamente los juegos. Gestiona los contenedores Docker, supervisa su estado y transmite los logs en tiempo real.

Una solución self-hosted en su propio VPS es preferible a los hostings de juegos en la nube, ya que obtiene un control total sobre el hardware, no hay límites en el número de slots y tiene la posibilidad de realizar una configuración fina del kernel del SO para reducir el ping. Es la elección ideal para comunidades, desarrolladores de mods o aquellos que quieran iniciar su propio negocio de alquiler de servidores de juegos.

2. Qué configuración de VPS se necesita para esta tarea

Esquema: 2. Qué configuración de VPS se necesita para esta tarea
Esquema: 2. Qué configuración de VPS se necesita para esta tarea

Los requisitos de recursos dependen en gran medida de los juegos que planee ejecutar. El panel en sí consume recursos mínimos, pero Wings y los contenedores Docker requieren un margen de CPU y RAM.

Componente Mínimo (1-2 servidores ligeros) Recomendado (10+ servidores)
Procesador (CPU) 2 núcleos (alta frecuencia) 4+ núcleos (3.5 GHz+)
Memoria RAM 4 GB 16 GB+ (ECC recomendado)
Disco (Almacenamiento) 40 GB SSD 200 GB+ NVMe
Red 100 Mbps 1 Gbps (protección contra DDoS)

Para el funcionamiento estable de los servidores de juegos, especialmente aquellos que consumen muchos recursos como Minecraft con packs de mods pesados, Rust o ARK, el rendimiento por núcleo del procesador es crítico. La virtualización KVM es obligatoria, ya que Docker no funciona correctamente en entornos OpenVZ/LXC. Puede alquilar un VPS con las características indicadas para asegurar el funcionamiento ininterrumpido de su comunidad de juegos. Si planea un hosting a gran escala con más de 50 servidores, vale la pena considerar el cambio a servidores dedicados para evitar que los vecinos del hipervisor afecten la estabilidad de los FPS.

La ubicación del servidor debe estar lo más cerca posible de su público objetivo. Para los jugadores de Europa, los centros de datos en Alemania o los Países Bajos son óptimos; para la CEI, Moscú o Varsovia. Una latencia (RTT) de más de 50-60 ms ya empieza a notarse en shooters dinámicos.

3. Preparación del servidor

Esquema: 3. Preparación del servidor
Esquema: 3. Preparación del servidor

Utilizaremos Ubuntu 24.04 LTS como la base más actual y estable para 2026. Lo primero es actualizar el sistema y configurar la seguridad básica.


# Actualización de la lista de paquetes y componentes instalados
sudo apt update && sudo apt upgrade -y

# Instalación de las utilidades necesarias
sudo apt install -y software-properties-common curl apt-transport-https ca-certificates gnupg lsb-release htop tar unzip git
    

Configuración del firewall (UFW). Necesitamos abrir los puertos para la web (80, 443) y los puertos para Wings (8080, 2022), así como el rango de puertos para los propios servidores de juegos.


# Permitimos SSH (asegúrese de que el puerto sea el correcto)
sudo ufw allow 22/tcp

# Puertos para la interfaz web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Puertos para la comunicación con Wings
sudo ufw allow 8080/tcp
sudo ufw allow 2022/tcp

# Activamos el firewall
sudo ufw enable
    

También se recomienda configurar Fail2Ban para protegerse contra ataques de fuerza bruta al SSH, ya que los servidores de juegos suelen ser blanco de ataques automatizados de bots.

4. Instalación de Pterodactyl Panel

Esquema: 4. Instalación de Pterodactyl Panel
Esquema: 4. Instalación de Pterodactyl Panel

El panel requiere PHP 8.3 o superior, un servidor web (Nginx) y una base de datos. Añadiremos los repositorios para PHP y MariaDB.


# Adición del repositorio de PHP
sudo add-apt-repository ppa:ondrej/php -y

# Instalación de PHP 8.3 y extensiones
sudo apt install -y php8.3 php8.3-common php8.3-gd php8.3-mysql php8.3-mbstring php8.3-bcmath php8.3-xml php8.3-fpm php8.3-curl php8.3-zip php8.3-intl php8.3-sqlite3 php8.3-tokenizer

# Instalación de MariaDB y Redis
sudo apt install -y mariadb-server redis-server nginx
    

Ahora descargaremos el panel. Crearemos el directorio /var/www/pterodactyl y subiremos allí los archivos de la versión.


# Creación del directorio y acceso a él
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl

# Descarga de la última versión del panel
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
    

Instalación de Composer, el gestor de dependencias de PHP. Es necesario para el despliegue del núcleo de Laravel.


curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
composer install --no-dev --optimize-autoloader
    

5. Configuración de la base de datos y colas

Esquema: 5. Configuración de la base de datos y colas
Esquema: 5. Configuración de la base de datos y colas

Crearemos una base de datos y un usuario para Pterodactyl. En 2026 se recomienda usar MariaDB 11 para un mejor rendimiento en las consultas JSON, que el panel utiliza activamente.


# Entramos en la consola de MySQL
sudo mysql -u root

# Ejecutamos las consultas SQL (reemplace 'your_password' por una contraseña compleja)
CREATE DATABASE ptero_db;
CREATE USER 'ptero_user'@'127.0.0.1' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON ptero_db.* TO 'ptero_user'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
    

Ahora configuraremos el entorno del panel. Copiaremos el ejemplo de configuración y generaremos una clave de cifrado única.


cp .env.example .env
php artisan key:generate --force

# Configuración de los parámetros de la BD en .env
# Edite el archivo mediante nano o use artisan
php artisan p:environment:setup
php artisan p:environment:database
    

Migración de la base de datos (creación de tablas) y creación del primer administrador:


php artisan migrate --seed --force
php artisan p:user:make
    

Un paso importante es la configuración de los permisos de acceso para que el servidor web (www-data) pueda escribir logs y caché.


chown -R www-data:www-data /var/www/pterodactyl/*
    

6. Configuración del servidor web y SSL

Esquema: 6. Configuración del servidor web y SSL
Esquema: 6. Configuración del servidor web y SSL

Para que el panel funcione, necesitamos un archivo de configuración de Nginx. Utilizaremos un enfoque moderno con HTTPS forzado a través de Certbot.


# Instalación de Certbot
sudo apt install -y certbot python3-certbot-nginx

# Obtención del certificado (reemplace panel.example.com por su dominio)
sudo certbot certonly --nginx -d panel.example.com
    

Ejemplo de configuración de Nginx (/etc/nginx/sites-available/pterodactyl.conf):


server {
    listen 80;
    server_name panel.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name panel.example.com;

    root /var/www/pterodactyl/public;
    index index.php;

    access_log /var/log/nginx/pterodactyl.app-access.log;
    error_log  /var/log/nginx/pterodactyl.app-error.log error;

    # SSL (rutas a los certificados de Certbot)
    ssl_certificate /etc/letsencrypt/live/panel.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/panel.example.com/privkey.pem;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
    

Active la configuración y reinicie Nginx:


sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
sudo systemctl restart nginx
    

7. Instalación y configuración de Wings

Esquema: 7. Instalación y configuración de Wings
Esquema: 7. Instalación y configuración de Wings

Wings es el corazón del sistema, que funciona en el lado del nodo. Primero instalaremos Docker, que es necesario para el funcionamiento de Wings.


curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker
    

Ahora descargaremos el archivo binario de Wings y crearemos los directorios necesarios.


sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
sudo chmod +x /usr/local/bin/wings
    

Para vincular Wings con el panel, diríjase a la interfaz web del panel (que configuramos en el paso anterior):

  1. Vaya a la sección Nodes y cree un nuevo nodo.
  2. Especifique la IP de su servidor, los límites de memoria y de disco.
  3. Después de la creación, vaya a la pestaña Configuration de ese nodo.
  4. Copie el contenido (YAML) al archivo /etc/pterodactyl/config.yml en el servidor.

Ejecución de Wings como servicio del sistema (/etc/systemd/system/wings.service):


[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=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

[Install]
WantedBy=multi-user.target
    

sudo systemctl enable --now wings
    

8. Creación del primer servidor de juegos

Esquema: 8. Creación del primer servidor de juegos
Esquema: 8. Creación del primer servidor de juegos

Una vez que el nodo (Node) en el panel se ilumine con un corazón verde (estado "Online"), puede proceder a la creación del servidor de juegos. En Pterodactyl, esto se hace a través de "Nests" (Nidos) y "Eggs" (Huevos).

Nest — es una categoría (por ejemplo, Minecraft o Steam Games).
Egg — es una configuración específica para un juego (por ejemplo, Paper Minecraft o CS2), que contiene la imagen de Docker y los scripts de inicio.

Pasos para crear el servidor:

  • Vaya a Admin -> Servers -> Create New.
  • Seleccione al usuario (propietario).
  • Seleccione el Node en el que se ejecutará el servidor.
  • Configure las Allocations (IP y puerto). Si no hay puertos, créelos primero en la configuración de Node -> Allocations.
  • Especifique los límites: por ejemplo, 4000MB de RAM y 200% de CPU (esto equivale a 2 núcleos completos).
  • Haga clic en Install.

En este momento, Wings recibirá la orden del Panel, descargará la imagen de Docker necesaria (por ejemplo, ghcr.io/pterodactyl/yolks:java_17), cargará los archivos del juego e iniciará el proceso de instalación. Podrá observar esto en la consola del servidor en tiempo real.

9. Respaldos y mantenimiento

Los datos de los juegos son lo más valioso. Pterodactyl cuenta con un sistema de respaldos integrado, pero debe configurarse correctamente. Por defecto, los respaldos se almacenan localmente, lo cual no es seguro en caso de fallo del disco.

Se recomienda utilizar un almacenamiento compatible con S3 (por ejemplo, Minio o AWS S3) para guardar los archivos. En el archivo .env del panel, configure los siguientes parámetros:


BACKUP_DRIVER=s3
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your_bucket
AWS_ENDPOINT=https://s3.example.com
    

Para el mantenimiento del sistema, es importante actualizar regularmente tanto el panel como Wings. El proceso de actualización del panel es el siguiente:


cd /var/www/pterodactyl
php artisan down
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/ bootstrap/cache/
composer install --no-dev --optimize-autoloader
php artisan migrate --seed --force
php artisan up
    

Actualizar Wings es aún más sencillo: descargue el nuevo archivo binario y reinicie el servicio systemctl restart wings.

10. Solución de problemas + FAQ

¿Por qué el estado del Node se muestra como "Heartbeat Last Reported: Never"?

Este es el problema más común. Verifique tres cosas: 1) Si el servicio wings está en ejecución (systemctl status wings). 2) Si el puerto 8080 está abierto en el UFW. 3) Si el FQDN o la IP están correctamente especificados en la configuración del Node en el panel. También asegúrese de que el certificado SSL para Wings sea válido, de lo contrario, el navegador bloqueará la conexión WebSocket debido a Mixed Content.

Error "419 Page Expired" al entrar al panel

Este error suele estar relacionado con las sesiones de PHP o el caché. Intente limpiar el caché del navegador y ejecutar php artisan config:clear y php artisan cache:clear en el directorio del panel. También verifique que los permisos de la carpeta storage/framework/sessions estén configurados correctamente para el usuario www-data.

¿Qué configuración de VPS es la mínima adecuada?

Para el panel en sí y un servidor pequeño de Minecraft (Vanilla), 2 núcleos de CPU y 4 GB de RAM son suficientes. Sin embargo, para jugar cómodamente con amigos (5-10 personas), es mejor apuntar a 8 GB de RAM para evitar el swapping, que reduce instantáneamente los TPS en el juego.

¿Qué elegir: VPS o dedicado para esta tarea?

Si va a ejecutar de 1 a 3 servidores para amigos, un VPS es una opción ideal y económica. Si planea un hosting comercial o ejecutar juegos pesados como Rust, ARK: Survival Evolved o servidores con más de 100 jugadores, necesitará un servidor dedicado (Dedicated). En un VPS, los recursos de CPU son compartidos y los "vecinos ruidosos" pueden causar micro-tirones, críticos para la experiencia de juego.

El contenedor Docker del servidor se reinicia constantemente

Verifique los registros del servidor a través del panel o directamente mediante Docker: docker logs [container_id]. A menudo, el problema es la falta de memoria (Out of Memory) o una versión incorrecta de Java/librerías en el "Egg" seleccionado. Asegúrese de haber asignado suficiente memoria RAM al servidor con un pequeño margen para las necesidades de la propia imagen de Docker.

¿Cómo cambiar los límites de recursos sobre la marcha?

En Pterodactyl, puede cambiar los límites de CPU y RAM en la configuración del servidor en cualquier momento. Wings aplicará automáticamente los cambios al contenedor Docker en ejecución sin necesidad de una reinstalación completa, aunque para algunos cambios puede ser necesario reiniciar el servidor (Restart).

11. Conclusiones y siguientes pasos

Hemos desplegado con éxito un entorno profesional para hosting de juegos. Pterodactyl Panel proporciona una interfaz de gestión cómoda, mientras que Wings garantiza el aislamiento y la estabilidad de los procesos de juego en contenedores Docker.

Ahora que la base está lista, puede seguir adelante:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.