Hacé una copia de seguridad del panel antes de empezar (o al menos de los archivos que vas a tocar). Todos los pasos se corren desde la carpeta raíz de tu instalación de Pterodactyl Panel (normalmente /).
1. Copiar los archivos nuevos
Todo lo que está adentro de panel/ va tal cual, respetando la misma ruta relativa que tiene ahí adentro:
app/Http/ Controllers/ Admin/ Nodes/ NodeTrashController. php app/Http/ Controllers/ Api/ Client/ Servers/ TrashController. php app/Http/ Controllers/ Api/ Remote/ TrashSettingsController. php app/Http/ Requests/ Admin/ Node/ NodeTrashFormRequest. php app/Http/ Requests/ Api/ Client/ Servers/ Trash/ GetTrashRequest. php app/Http/ Requests/ Api/ Client/ Servers/ Trash/ PurgeTrashRequest. php app/Http/ Requests/ Api/ Client/ Servers/ Trash/ RestoreTrashRequest. php app/Models/ NodeTrashSetting. php app/Services/ Trash/ WingsTrashClient. php database/migrations/ 2026_ 10_ 01_ 000001_ create_ node_ trash_ settings_ table. php resources/scripts/ api/ server/ trash/ purgeTrashItems. ts resources/scripts/ api/ server/ trash/ restoreTrashItems. ts resources/scripts/ api/ swr/ getServerTrash. ts resources/scripts/ components/ server/ trash/ TrashContainer. tsx resources/scripts/ components/ server/ trash/ TrashRow. tsx resources/views/ admin/ nodes/ view/ trash. blade. php
2. Aplicar los fragmentos sobre archivos existentes
Cada archivo dentro de panel/ corresponde a un archivo que ya existe en tu panel. El nombre indica la ruta (los _ marcan la carpeta final) y arriba de cada bloque hay un comentario DESTINO: con la ruta real y UBICACIÓN: explicando dónde exactamente pegarlo, con el código de "antes" y "después" para que sea un simple reemplazo:
app_→Models_ _ Permission. php app/Models/ Permission. php resources_→scripts_ components_ server_ files_ _ FileManagerContainer. tsx resources/scripts/ components/ server/ files/ FileManagerContainer. tsx resources_→scripts_ components_ server_ files_ _ FileObjectRow. tsx resources/scripts/ components/ server/ files/ FileObjectRow. tsx resources_→views_ admin_ nodes_ view_ _ TABS. blade. php resources/views/ admin/ nodes/ view/ TABS. blade. php routes_→_ admin. php routes/admin. php routes_→_ api- client. php routes/api- client. php routes_→_ api- remote. php routes/api- remote. php
Ningún fragmento reemplaza el archivo completo: son bloques pequeños y puntuales para insertar o reemplazar dentro de un archivo que ya existe.
3. Migrar la base de datos
php artisan migrate
Esto crea la tabla node_, donde vive la configuración de cada nodo (activado/desactivado y días de retención).
4. Reconstruir el frontend
yarn install
yarn build:production
Si el proceso falla con un error de memoria (JavaScript heap out of memory) en un servidor con poca RAM, corré el build con un límite de heap más alto, apoyándote en el swap disponible:
NODE_OPTIONS=--max-old-space-size=1600 yarn build:production
5. Limpiar cachés
php artisan config:clear
php artisan route:clear
Si tenés opcache habilitado en PHP-FPM, reiniciá el servicio para que tome el código nuevo:
systemctl restart php8.2-fpm
Con esto la parte del panel queda lista. Seguí con la instalación en Wings antes de probar nada, porque el panel por sí solo no mueve ningún archivo: esa parte la hace Wings.
Anterior: Requisitos · Siguiente: Instalación en Wings

