Instalar Pterodactyl Panel en tu VPS

Ayuda
Instala Pterodactyl Panel para que puedas crear servidores de tus juegos favoritos, como por ejemplo Minecraft.
Puedes instalarlo en estos sistemas operativos:
- Ubuntu 20.04 y 22.04
- Debian 11 y 12
- Alma Linux 8 y 9
- Rocky Linux 8 y 9
En estas instrucciones usaremos Ubuntu 22.04, ya que es la distribución que recomendamos.

Antes de empezar, tienes que tener un FQDN apuntado a la IP de tu VPS (por ejemplo panel.dominio.com). Este subdominio NO SE VA A PODER CAMBIAR, por lo que tienes que configurarlo ANTES de empezar.
Si tienes un dominio, crea un subdominio y apúntalo a la IP de tu VPS. Si no tienes un dominio, nosotros podemos entregarte gratuitamente uno del tipo ejemplo.afrovps.com.


1. Ingresa a tu panel de control en vps.afro.cl

2. Selecciona tu servidor y en el menú haz click en Reinstalar OS.
Pterodactyl Panel en Afro VPS

3. Selecciona Ubuntu 22.04 y haz click en Reinstalar.
Pterodactyl Panel en Afro VPS

4. Una vez que haya terminado, debes conectarte a tu VPS vía SSH e ingresar estos comandos:

apt update && apt upgrade -y

Una vez actualizado el sistema operativo, instalamos el panel:

bash <(curl -s https://pterodactyl-installer.se)

Selecciona la opción 2 (Install both [0] and [1] on the same machine) y sigue estos pasos:

Database name (panel): no escribir nada, solo apretar tecla Enter
Database username (pterodactyl): no escribir nada, solo apretar tecla Enter
Password (press enter to use randomly generated password): no escribir nada, solo apretar tecla Enter
Select timezone [Europe/Stockholm]: America/Santiago
Provide the email address that will be used to configure Let's Encrypt and Pterodactyl: Ingresa tu correo
Email address for the initial admin account: Ingresa tu correo
Username for the initial admin account: Ingresa el usuario que va a ser administrador del panel
First name for the initial admin account: Escribe tu nombre
Last name for the initial admin account: Escribe tu apellido
Password for the initial admin account: Escribe la contraseña del administrador del panel
Set the FQDN of this panel (panel.example.com): ejemplo.afrovps.com
Do you want to automatically configure UFW (firewall)? (y/N): y
Do you want to automatically configure HTTPS using Let's Encrypt? (y/N): y
I agree that this HTTPS request is performed (y/N): y
Initial configuration completed. Continue with installation? (y/N): y

Ahora comenzará la instalación del panel, esto puede demorar un poco.

Enable sending anonymous telemetry data? (yes/no) [yes]: no

Please read the Terms of Service at
https://letsencrypt.org/... You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

SI TODO YA RESULTADO BIEN, DEBERÍA MOSTRAR UN MENSAJE COMO ESTE:
##############################################################
* Panel installation completed
*
* Your panel should be accessible from ejemplo.afrovps.com
*
* Installation is using nginx on ubuntu
* Thank you for using this script.
##############################################################
* Installation of panel completed. Do you want to proceed to wings installation? (y/N): y

AHORA VIENE LA INSTALACIÓN DE WINGS:

Do you want to automatically configure UFW (firewall)? (y/N): y
Do you want to automatically configure a user for database hosts? (y/N): y
Do you want to configure MySQL to be accessed externally? (y/N): y
Enter the panel address (blank for any address): no escribir nada, solo apretar tecla Enter
Would you like to allow incoming traffic to port 3306? (y/N): y
Database host username (pterodactyluser): no escribir nada, solo apretar tecla Enter
Database host password: Escribir una contraseña robusta y guardarla
Do you want to automatically configure HTTPS using Let's Encrypt? (y/N): n
Proceed with installation? (y/N): y

Ahora comenzará la instalación de Wings, esto puede demorar un poco.

Ahora que está todo listo, es recomendable reiniciar el servidor:
reboot now

Listo! Una vez reiniciado tu VPS, podrás acceder al panel en la URL del dominio que ingresaste (https://ejemplo.afrovps.com)

Para comenzar con el panel, lo primero es crear una ubicación. Para esto vas a "Locations" y creas una nueva con el botón "Create new".

Luego tienes que crear un nodo. Para esto vas a "Nodes" y creas uno nuevo con el botón "Create new".
En "Total Memory" es recomendable ingresar una cantidad menor a la de tu VPS, por ejemplo si tienes 32 GB, ingresa 30 GB (30720 MiB). Algo similar corre para "Total Disk Space", ya que tienes que dejar espacio para el sistema operativo (idealmente al menos unos 2 GB).
En FQDN tienes que ingresar el mismo dominio del panel (ejemplo.afrovps.com).

Una vez creado el nodo, vas a ver que se abre un sub-menú para asignar IP y puertos. Acá debes asignar la IP de tu VPS y los puertos que vayas a usar, por ejemplo para Minecraft es el 25565.

Ahora tienes que ir al sub-menu "Configuration" (dentro de Nodes) y vas a ver que hay una configuración. Lo más simple es hacer click en el botón "Generate Token", copiar el contenido del popup, e ingresarlo en el terminal del VPS (conectándose vía SSH). Sería algo así:
cd /etc/pterodactyl && sudo wings configure --panel-url https://panel.ejemplo.com --token ptla_VP1ZXWTBgXBalumpzWZ3me725ja3e48VZszkjrV3tq0 --node 1

Una vez ingresado el código en el terminal, se va a crear la configuración del nodo en Wings. Ahora faltaría iniciar Wings para que tome la nueva configuración:
systemctl enable --now wings

Si todo resultó bien, al hacer click en el menú "Nodes" debería aparecer el nombre del nodo con un corazón verde.

Ya está todo funcionando correctamente y el panel está listo para levantar un servidor!

Para crear un servidor de juego, hay que ir al menú "Servers" y crear uno nuevo con el botón "Create new".

Para más detalles sobre como usar Pterodactyl, ingresa a su página oficial: https://pterodactyl.io

Recuerda configurar bien el firewall para que no tengas problemas en un futuro, e instalar Fail2Ban para asegurar tu VPS.

Por defecto se configura UFW para que se permitan todas las conexiones al puerto 3306, esto no es seguro. Para solucionarlo, debes ingresar este comando:

ufw delete 4

Va a preguntar esto:
Deleting:
allow 3306
Proceed with operation (y|n)? y

Luego ingresar este comando:
ufw allow from 172.16.0.0/12 to any port 3306